diff --git a/pr-preview/pr-186/.nojekyll b/pr-preview/pr-186/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/pr-preview/pr-186/404.html b/pr-preview/pr-186/404.html new file mode 100644 index 000000000..2d4f4c13a --- /dev/null +++ b/pr-preview/pr-186/404.html @@ -0,0 +1,14 @@ + + + + + +Page Not Found | Architecture Center + + + + + +
Skip to main content

We are sorry...

We could not find anything related to what you were looking for.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/assets/css/styles.8a86a6a3.css b/pr-preview/pr-186/assets/css/styles.8a86a6a3.css new file mode 100644 index 000000000..918301035 --- /dev/null +++ b/pr-preview/pr-186/assets/css/styles.8a86a6a3.css @@ -0,0 +1,5 @@ +.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)}:root,html[data-theme=light]{--telekom-shadow-raised-hover:0px 16px 64px 0px #0000001a,0px 8px 16px 0px #0000001a}:root,[data-mode=dark]{--telekom-color-text-and-icon-primary-standard:#e20074;--telekom-color-text-and-icon-white-standard:#fff;--telekom-color-text-and-icon-white-additional:#ffffffa6;--telekom-color-text-and-icon-black-standard:#000;--telekom-color-text-and-icon-black-additional:#000000a6;--telekom-color-primary-standard:#e20074;--telekom-color-primary-hovered:#c00063;--telekom-color-primary-pressed:#9e0051;--telekom-color-ui-white:#fff;--telekom-color-ui-black:#000;--telekom-color-functional-informational-standard:#2238df;--telekom-color-functional-success-standard:#00b367;--telekom-color-functional-danger-standard:#e82010;--telekom-color-functional-warning-standard:#f97012}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}: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:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--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 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--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:#0000;--ifm-table-stripe-background:#00000008;--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}.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:#0000}*{box-sizing:border-box}html{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);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}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,.tabItem_LNqP{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 #0000001a;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,.tabList__CuJ{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_Gvgb,.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{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--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:#ebedf026;--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:#00a40026;--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:#54c7ec26;--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:#ffba0026;--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:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__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:#0000;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}html[data-theme=dark] .footer__link-item,html[data-theme=dark] .scale-telekom-footer span,html[data-theme=dark] .scale-telekom-footer ul li a{color:#fff}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.tabItem_Ymn6>:last-child{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{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:"";filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;top:0;visibility:hidden;left:0}.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:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--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{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);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)}html[data-theme=dark],html[data-theme=light]{--ifm-font-family-base:"TeleNeoWeb";--telekom-shadow-raised-standard:none;--telekom-radius-large:2rem}.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 #0000;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)}.navbar--discord-link,.navbar--discourse-link,.navbar--github-link,.navbar--terminal-link{border-radius:50%;height:36px;margin-right:6px;padding:6px;transition:background var(--ifm-transition-fast);width:36px;margin-left:6px}.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:#ffffff0d;--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:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--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;--ifm-color-primary:#ff2796;--ifm-color-primary-dark:#5977f7;--ifm-color-primary-darker:#4768f7;--ifm-color-primary-darkest:#123cf4;--ifm-color-primary-light:#a1b1fb;--ifm-color-primary-lighter:#b3c0fb;--ifm-color-primary-lightest:#e8ecfe;--ifm-background-color:#0e0e0f;--ifm-background-surface-color:var(--telekom-color-background-surface);--telekom-shadow-raised-hover:0px 16px 64px 0px #e20074,0px 8px 16px 0px #e20074;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}:root,html{display:none}html[data-mode]{display:block}html[data-theme=light]{--ifm-color-primary:#e20074;--ifm-color-primary-dark:#cb0068;--ifm-color-primary-darker:#c00063;--ifm-color-primary-darkest:#9e0051;--ifm-color-primary-light:#f90080;--ifm-color-primary-lighter:#ff0585;--ifm-color-primary-lightest:#ff2796;--ifm-footer-background-color:var(--background-footer);--ifm-footer-link-color:#000;--ifm-code-font-size:95%;--ifm-background-color:#fbfbfb;--ifm-background-surface-color:var(--telekom-color-background-surface)}.scale-telekom-footer{--background-footer-minimal:#fff;--font-color:#000}html[data-theme=dark] .scale-telekom-footer{--background-footer-minimal:#1b1b1d;--font-color:#fff}.footer{background-color:#fff}html[data-theme=dark] .footer{background-color:#1b1b1d}.footer__title{color:#1b1b1d;font-weight:bolder}html[data-theme=dark] .footer__title{color:#fff;font-weight:bolder}.footer__link-item{color:#1b1b1d}.footer__link-item:hover{color:unset;color:var(--ifm-link-color);text-decoration:none}html[data-theme=dark] .footer__link-item:hover{color:#ff2796;text-decoration:none}.navbar__link{font-weight:700}.navbar--discord-link:hover{background:var(--ifm-color-emphasis-200)}.navbar--discord-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M20.992 20.163a2.884 2.884 0 0 1-2.695-3.03v.007a2.867 2.867 0 0 1 2.687-3.023h.008a2.85 2.85 0 0 1 2.695 3.031v-.008a2.859 2.859 0 0 1-2.688 3.022h-.008zm-9.966 0a2.884 2.884 0 0 1-2.695-3.03v.007a2.867 2.867 0 0 1 2.687-3.023h.008a2.85 2.85 0 0 1 2.695 3.031v-.008q.005.074.005.161a2.867 2.867 0 0 1-2.692 2.862zM26.393 6.465c-1.763-.832-3.811-1.49-5.955-1.871l-.149-.022-.017-.002a.09.09 0 0 0-.081.047c-.234.411-.488.924-.717 1.45l-.043.111a23.042 23.042 0 0 0-6.985.016l.129-.017c-.27-.63-.528-1.142-.813-1.638l.041.077a.1.1 0 0 0-.083-.047l-.016.001h.001a24.6 24.6 0 0 0-6.256 1.957l.151-.064a.1.1 0 0 0-.04.034C2.706 10.538.998 15.566.998 20.993q0 1.36.141 2.684l-.009-.11a.1.1 0 0 0 .039.07 24.6 24.6 0 0 0 7.313 3.738l.176.048a.1.1 0 0 0 .028.004q.05-.002.077-.038a17.5 17.5 0 0 0 1.485-2.392l.047-.1a.096.096 0 0 0-.052-.132h-.001a16 16 0 0 1-2.417-1.157l.077.042a.1.1 0 0 1-.048-.083c0-.031.015-.059.038-.076.157-.118.315-.24.465-.364a.1.1 0 0 1 .097-.013h-.001c2.208 1.061 4.8 1.681 7.536 1.681s5.329-.62 7.643-1.727l-.107.046a.094.094 0 0 1 .099.012q.226.188.466.365a.1.1 0 0 1 .038.077.1.1 0 0 1-.046.082c-.661.395-1.432.769-2.235 1.078l-.105.036a.1.1 0 0 0-.062.089q0 .024.011.044v-.001c.501.96 1.009 1.775 1.571 2.548l-.04-.057a.1.1 0 0 0 .106.036h-.001c2.865-.892 5.358-2.182 7.566-3.832l-.065.047a.1.1 0 0 0 .039-.069c.087-.784.136-1.694.136-2.615 0-5.415-1.712-10.43-4.623-14.534l.052.078a.08.08 0 0 0-.038-.036z'/%3E%3C/svg%3E");content:"";display:block;height:100%}html[data-theme=dark] .navbar--discord-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid' viewBox='0 -28.5 256 256'%3E%3Cpath fill='%23fff' d='M216.856 16.597A208.5 208.5 0 0 0 164.042 0c-2.275 4.113-4.933 9.645-6.766 14.046q-29.538-4.442-58.533 0c-1.832-4.4-4.55-9.933-6.846-14.046a207.8 207.8 0 0 0-52.855 16.638C5.618 67.147-3.443 116.4 1.087 164.956c22.169 16.555 43.653 26.612 64.775 33.193A161 161 0 0 0 79.735 175.3a136.4 136.4 0 0 1-21.846-10.632 109 109 0 0 0 5.356-4.237c42.122 19.702 87.89 19.702 129.51 0a132 132 0 0 0 5.355 4.237 136 136 0 0 1-21.886 10.653c4.006 8.02 8.638 15.67 13.873 22.848 21.142-6.58 42.646-16.637 64.815-33.213 5.316-56.288-9.08-105.09-38.056-148.36M85.474 135.095c-12.645 0-23.015-11.805-23.015-26.18s10.149-26.2 23.015-26.2 23.236 11.804 23.015 26.2c.02 14.375-10.148 26.18-23.015 26.18m85.051 0c-12.645 0-23.014-11.805-23.014-26.18s10.148-26.2 23.014-26.2c12.867 0 23.236 11.804 23.015 26.2 0 14.375-10.148 26.18-23.015 26.18'/%3E%3C/svg%3E")}.navbar--github-link:hover{background:var(--ifm-color-emphasis-200)}.navbar--github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' viewBox='0 0 25 25'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat;content:"";display:block;height:100%}html[data-theme=dark] .navbar--github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' viewBox='0 0 25 25'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat}.navbar--terminal-link:hover{background:var(--ifm-color-emphasis-200)}.navbar--terminal-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' viewBox='0 0 1792 1792'%3E%3Cpath d='m649 983-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393L87 567q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23m1079 457v64q0 14-9 23t-23 9H736q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h960q14 0 23 9t9 23'/%3E%3C/svg%3E") no-repeat;content:"";display:block;height:100%}html[data-theme=dark] .navbar--terminal-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' viewBox='0 0 1792 1792'%3E%3Cpath fill='%23fff' d='m649 983-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393L87 567q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23m1079 457v64q0 14-9 23t-23 9H736q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h960q14 0 23 9t9 23'/%3E%3C/svg%3E")}.navbar--discourse-link:hover,.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.navbar--discourse-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='23' viewBox='0 36 448 512'%3E%3Cpath d='M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9S348.6 32 225.9 32M224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128'/%3E%3C/svg%3E") no-repeat;content:"";display:block;height:100%}html[data-theme=dark] .navbar--discourse-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' viewBox='0 36 448 512'%3E%3Cpath fill='%23fff' d='M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9S348.6 32 225.9 32M224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128'/%3E%3C/svg%3E")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:normal;font-weight:900;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-a9366b2b35f46d5e87cc8d923d22363d.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-74c0413bfee11522f66f9ef31ecd6fe8.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-967530afc6f0e386b57a879a834b4c34.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:italic;font-weight:900;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-adbabf3d2906401e0ed73e5147c6fe4e.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-8ac213441645987235cd1df05d6e4ee1.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-e366be7fbdd0d4c9534ce8f3e910ddab.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:normal;font-weight:800;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-13f1b21743fdd12d5c8d58254fbb28cc.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-12c4d77df70f6decab600dd2c388aaf6.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-dc803ca4dbfd9f03283b8f7b174c92c5.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:italic;font-weight:800;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-481868b81b522585fad4f85b084bbc6d.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-29679120106c4188c036d05737659e90.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-af77bf595192df4831219ba01376a8f1.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:normal;font-weight:700;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-92d5e35267df221341eac83dad76425b.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-2e3311c410e163c2f75df9023f1358aa.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-846f45468e83736fc49d4f4ac4339f17.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:italic;font-weight:700;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-4079eefcffba1971dd1b273b393fe67d.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-bfca3377a246fb623a56787558464443.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-a5f6a0fc65e3a6588c3e478c135d7bfb.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:normal;font-weight:500;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-4f455a692d1e9189a61de68c92a81cf1.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-c49c55590d786173785cfaccabc37bef.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-936614df2a299d4674cbfd2cca01a2a3.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:italic;font-weight:500;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-be799e7d956fcc3f658116c8e0213c3b.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-a0c44bc7502d40d44c56b273ad5d0c0a.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-8e5ec653a7a1dc4149bffd2080fc25b7.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:normal;font-weight:400;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-4abdde0a08016d7d01e1c682a6d410f9.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-30f5f23cfdebbcc7eaa4ef33f2702b35.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-edb0e1fdea9c72b180ede6590b58c7b7.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:italic;font-weight:400;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ddb7d295acc69d6d69ca083f86ad0978.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ecb7629001bbd5f1f2979fcb5c804dec.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-739251107122f8a9d4b28be5cd425b49.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:normal;font-weight:200;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-512f7b3a1b88410963a74fb1e6733280.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-4a55918bda7715adff5b337a397bddd4.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-2f2dac3656379ce30aa62d06c7c2af40.woff2) format("woff2")}@font-face{font-display:swap;font-family:TeleNeoWeb;font-style:italic;font-weight:200;src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-66300dad8f3be822016dab0e8a3129c2.eot);src:url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-058364e1af8c7274e8e25cab7d6a61b3.woff) format("woff"),url(/docs-next/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-78b9bf68d33abe17087e25d132b2dd42.woff2) format("woff2")}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);font-family:TeleNeoWeb,sans-serif;--scl-spacing-1:0.0625rem;--scl-spacing-2:0.125rem;--scl-spacing-4:0.25rem;--scl-spacing-8:0.5rem;--scl-spacing-12:0.75rem;--scl-spacing-16:1rem;--scl-spacing-24:1.5rem;--scl-spacing-32:2rem;--scl-spacing-40:2.5rem;--scl-spacing-48:3rem;--scl-spacing-64:4rem;--scl-spacing-80:5rem;--scl-font-family-sans:TeleNeoWeb,sans-serif;--scl-font-family-mono:monospace;--scl-font-size-10:0.625rem;--scl-font-size-12:0.75rem;--scl-font-size-14:0.875rem;--scl-font-size-16:1rem;--scl-font-size-20:1.25rem;--scl-font-size-24:1.5rem;--scl-font-size-32:2rem;--scl-font-size-40:2.5rem;--scl-font-size-56:3.5rem;--scl-font-weight-thin:200;--scl-font-weight-regular:400;--scl-font-weight-medium:500;--scl-font-weight-bold:700;--scl-font-weight-extrabold:800;--scl-font-line-height-114:114%;--scl-font-line-height-120:120%;--scl-font-line-height-125:125%;--scl-font-line-height-133:133%;--scl-font-line-height-150:150%;--scl-font-line-height-160:160%;--scl-font-variant-body-family:TeleNeoWeb,sans-serif;--scl-font-variant-body-size:1rem;--scl-font-variant-body-weight:500;--scl-font-variant-body-line-height:150%;--scl-font-variant-body-letter-spacing:normal;--scl-font-variant-body-short-family:TeleNeoWeb,sans-serif;--scl-font-variant-body-short-size:1rem;--scl-font-variant-body-short-weight:500;--scl-font-variant-body-short-line-height:125%;--scl-font-variant-body-short-letter-spacing:normal;--scl-font-variant-body-large-family:TeleNeoWeb,sans-serif;--scl-font-variant-body-large-size:1.25rem;--scl-font-variant-body-large-weight:500;--scl-font-variant-body-large-line-height:160%;--scl-font-variant-body-large-letter-spacing:normal;--scl-font-variant-smaller-family:TeleNeoWeb,sans-serif;--scl-font-variant-smaller-size:0.75rem;--scl-font-variant-smaller-weight:500;--scl-font-variant-smaller-line-height:125%;--scl-font-variant-smaller-letter-spacing:normal;--scl-font-variant-label-family:TeleNeoWeb,sans-serif;--scl-font-variant-label-size:0.75rem;--scl-font-variant-label-weight:500;--scl-font-variant-label-line-height:120%;--scl-font-variant-label-letter-spacing:normal;--scl-font-variant-caption-family:TeleNeoWeb,sans-serif;--scl-font-variant-caption-size:0.75rem;--scl-font-variant-caption-weight:500;--scl-font-variant-caption-line-height:133%;--scl-font-variant-caption-letter-spacing:normal;--scl-font-variant-heading-6-family:TeleNeoWeb,sans-serif;--scl-font-variant-heading-6-size:1rem;--scl-font-variant-heading-6-weight:700;--scl-font-variant-heading-6-line-height:150%;--scl-font-variant-heading-6-letter-spacing:normal;--scl-font-variant-heading-5-family:TeleNeoWeb,sans-serif;--scl-font-variant-heading-5-size:1.25rem;--scl-font-variant-heading-5-weight:800;--scl-font-variant-heading-5-line-height:125%;--scl-font-variant-heading-5-letter-spacing:normal;--scl-font-variant-heading-4-family:TeleNeoWeb,sans-serif;--scl-font-variant-heading-4-size:1.5rem;--scl-font-variant-heading-4-weight:800;--scl-font-variant-heading-4-line-height:133%;--scl-font-variant-heading-4-letter-spacing:normal;--scl-font-variant-heading-3-family:TeleNeoWeb,sans-serif;--scl-font-variant-heading-3-size:2rem;--scl-font-variant-heading-3-weight:800;--scl-font-variant-heading-3-line-height:125%;--scl-font-variant-heading-3-letter-spacing:normal;--scl-font-variant-heading-2-family:TeleNeoWeb,sans-serif;--scl-font-variant-heading-2-size:2.5rem;--scl-font-variant-heading-2-weight:800;--scl-font-variant-heading-2-line-height:120%;--scl-font-variant-heading-2-letter-spacing:normal;--scl-font-variant-heading-1-family:TeleNeoWeb,sans-serif;--scl-font-variant-heading-1-size:3.5rem;--scl-font-variant-heading-1-weight:800;--scl-font-variant-heading-1-line-height:114%;--scl-font-variant-heading-1-letter-spacing:normal;--scl-color-primary:#e20074;--scl-color-black:#000;--scl-color-white:#fff;--scl-color-grey-0:#f2f2f2;--scl-color-grey-10:#e5e5e5;--scl-color-grey-20:#ccc;--scl-color-grey-30:#b2b2b2;--scl-color-grey-40:#999;--scl-color-grey-50:#7f7f7f;--scl-color-grey-60:#666;--scl-color-grey-70:#4c4c4c;--scl-color-grey-80:#333;--scl-color-grey-90:#191919;--scl-color-grey-100:#000;--scl-color-orange-0:#fffcdf;--scl-color-orange-10:#fff4c6;--scl-color-orange-20:#ffe9ae;--scl-color-orange-30:#ffda97;--scl-color-orange-40:#ffc780;--scl-color-orange-50:#ffb26a;--scl-color-orange-60:#fc9a55;--scl-color-orange-70:#df6d3f;--scl-color-orange-80:#ae461c;--scl-color-orange-90:#973209;--scl-color-orange-100:#7d1f09;--scl-color-red-0:#ffc5cb;--scl-color-red-10:#ffaab6;--scl-color-red-20:#fe94a5;--scl-color-red-30:#f98093;--scl-color-red-40:#f36a80;--scl-color-red-50:#ef556e;--scl-color-red-60:#ed425b;--scl-color-red-70:#d82a48;--scl-color-red-80:#c31c3b;--scl-color-red-90:#ad0f31;--scl-color-red-100:#990024;--scl-color-blue-0:#d6f8ff;--scl-color-blue-10:#b5ebff;--scl-color-blue-20:#95daff;--scl-color-blue-30:#77c4ff;--scl-color-blue-40:#59aaff;--scl-color-blue-50:#3d8cff;--scl-color-blue-60:#216bff;--scl-color-blue-70:#0d39df;--scl-color-blue-80:#000bbf;--scl-color-blue-90:#03009f;--scl-color-blue-100:#140080;--scl-color-teal-0:#d7f6f4;--scl-color-teal-10:#b7edec;--scl-color-teal-20:#98e4e4;--scl-color-teal-30:#79d9db;--scl-color-teal-40:#5cccd0;--scl-color-teal-50:#3ebdc5;--scl-color-teal-60:#22adb9;--scl-color-teal-70:#129ca3;--scl-color-teal-80:#068788;--scl-color-teal-90:#006967;--scl-color-teal-100:#005651;--scl-color-green-0:#f0f7e0;--scl-color-green-10:#e0efc7;--scl-color-green-20:#cfe8af;--scl-color-green-30:#bbdf98;--scl-color-green-40:#a4d681;--scl-color-green-50:#8dcd6a;--scl-color-green-60:#73c354;--scl-color-green-70:#52b342;--scl-color-green-80:#32a032;--scl-color-green-90:#248b31;--scl-color-green-100:#187431;--scl-color-clay-0:#f2e4df;--scl-color-clay-10:#edd8ce;--scl-color-clay-20:#e9cdbe;--scl-color-clay-30:#e3c2af;--scl-color-clay-40:#deb7a0;--scl-color-clay-50:#d9ad92;--scl-color-clay-60:#d2a483;--scl-color-clay-70:#bb8c6f;--scl-color-clay-80:#a3765d;--scl-color-clay-90:#87604e;--scl-color-clay-100:#6a4d40;--scl-color-rose-0:#f6e5eb;--scl-color-rose-10:#eed1da;--scl-color-rose-20:#e6bcc9;--scl-color-rose-30:#dda8b8;--scl-color-rose-40:#d495a6;--scl-color-rose-50:#cb8293;--scl-color-rose-60:#c16f81;--scl-color-rose-70:#a5566a;--scl-color-rose-80:#864054;--scl-color-rose-90:#652b3e;--scl-color-rose-100:#511f31;--scl-color-lilac-0:#f7eff6;--scl-color-lilac-10:#efe3ed;--scl-color-lilac-20:#ead9e7;--scl-color-lilac-30:#e4cce0;--scl-color-lilac-40:#d5b4d5;--scl-color-lilac-50:#c59bca;--scl-color-lilac-60:#b682bd;--scl-color-lilac-70:#9e6ba5;--scl-color-lilac-80:#84558a;--scl-color-lilac-90:#6a3e71;--scl-color-lilac-100:#502857;--scl-color-pigeon-0:#e9ecf6;--scl-color-pigeon-10:#d7dcef;--scl-color-pigeon-20:#c5cce7;--scl-color-pigeon-30:#b4bcde;--scl-color-pigeon-40:#a3abd6;--scl-color-pigeon-50:#929bcd;--scl-color-pigeon-60:#828ac4;--scl-color-pigeon-70:#6d6eb0;--scl-color-pigeon-80:#5f5a9b;--scl-color-pigeon-90:#534785;--scl-color-pigeon-100:#46366d;--scl-color-neptune-0:#deedec;--scl-color-neptune-10:#cde5e5;--scl-color-neptune-20:#bbdedd;--scl-color-neptune-30:#a9d5d5;--scl-color-neptune-40:#98cbcd;--scl-color-neptune-50:#88c0c4;--scl-color-neptune-60:#77b6bb;--scl-color-neptune-70:#66a5a8;--scl-color-neptune-80:#579292;--scl-color-neptune-90:#4a7b7a;--scl-color-neptune-100:#3f6160;--scl-color-olive-0:#ecf3e7;--scl-color-olive-10:#dce8d4;--scl-color-olive-20:#ccdec2;--scl-color-olive-30:#bbd3af;--scl-color-olive-40:#aac89d;--scl-color-olive-50:#99bd8b;--scl-color-olive-60:#88b179;--scl-color-olive-70:#709660;--scl-color-olive-80:#597949;--scl-color-olive-90:#425b33;--scl-color-olive-100:#314724;--scl-color-primary-hover:#f90984;--scl-color-primary-active:#cb0068;--scl-color-focus:#3d8cff;--scl-color-text-standard:#191919;--scl-color-text-additional:#666;--scl-color-text-link:#0d39df;--scl-color-text-link-hover:#000bbf;--scl-color-text-link-active:#216bff;--scl-color-text-link-visited:#0d39df;--scl-color-text-info:#0d39df;--scl-color-text-disabled:#7f7f7f;--scl-color-text-success:#187431;--scl-color-text-error:#d82a48;--scl-color-background-standard:#fff;--scl-color-background-light:#f2f2f2;--scl-color-background-darker:#ccc;--scl-color-background-overlay:#6c6c6cb3;--scl-color-background-disabled:#ccc;--scl-color-background-success:#187431;--scl-color-background-error:#d82a48;--scl-color-functional-red:#d82a48;--scl-color-functional-green:#187431;--scl-color-functional-blue:#0d39df;--scl-shadow-level-0:0px 2px 8px 0px #0000001a,0px 1px 2px 0px #0000001a;--scl-shadow-level-1:0px 4px 16px 0px #0000001a,0px 2px 4px 0px #0000001a;--scl-shadow-level-2:0px 8px 32px 0px #0000001a,0px 4px 8px 0px #0000001a;--scl-shadow-level-3:0px 12px 48px 0px #0000001a,0px 6px 12px 0px #0000001a;--scl-shadow-level-4:0px 16px 64px 0px #0000001a,0px 8px 16px 0px #0000001a;--scl-shadow-level-5:0px 20px 80px 0px #0000001a,0px 10px 20px 0px #0000001a;--scl-shadow-level-1-hover:0px 6px 24px 0px #0000001a,0px 3px 6px 0px #0000001a;--scl-shadow-level-1-active:0px 2px 8px 0px #0000001a,0px 1px 2px 0px #0000001a;--scl-shadow-level-2-hover:0px 10px 40px 0px #0000001a,0px 5px 10px 0px #0000001a;--scl-shadow-level-2-active:0px 6px 24px 0px #0000001a,0px 3px 6px 0px #0000001a;--scl-shadow-level-3-hover:0px 14px 56px 0px #0000001a,0px 7px 14px 0px #0000001a;--scl-shadow-level-3-active:0px 10px 40px 0px #0000001a,0px 5px 10px 0px #0000001a;--scl-shadow-level-4-hover:0px 18px 72px 0px #0000001a,0px 9px 18px 0px #0000001a;--scl-shadow-level-4-active:0px 14px 56px 0px #0000001a,0px 7px 14px 0px #0000001a;--scl-shadow-level-5-hover:0px 22px 88px 0px #0000001a,0px 11px 22px 0px #0000001a;--scl-shadow-level-5-active:0px 18px 72px 0px #0000001a,0px 9px 18px 0px #0000001a;--scl-radius-1:1px;--scl-radius-2:2px;--scl-radius-4:4px;--scl-radius-8:8px;--scl-radius-12:12px;--scl-opacity-50:0.5;--scl-motion-duration-immediate:100ms;--scl-motion-duration-fast:200ms;--scl-motion-duration-slower:600ms;--scl-motion-duration-deliberate:800ms;--scl-motion-easing-standard:cubic-bezier(0.42,0,0.58,1);--scl-motion-easing-enter:cubic-bezier(0.39,0.575,0.565,1);--telekom-color-text-and-icon-standard:#000;--telekom-color-text-and-icon-additional:#000000a6;--telekom-color-text-and-icon-disabled:#0006;--telekom-color-text-and-icon-link-standard:#2238df;--telekom-color-text-and-icon-link-hovered:#0819bd;--telekom-color-text-and-icon-link-visited:#6c3bdb;--telekom-color-text-and-icon-link-active:#000d99;--telekom-color-text-and-icon-primary-hovered:#c00063;--telekom-color-text-and-icon-primary-pressed:#9e0051;--telekom-color-text-and-icon-inverted-standard:#fff;--telekom-color-text-and-icon-inverted-additional:#ffffffa6;--telekom-color-text-and-icon-functional-informational:#2238df;--telekom-color-text-and-icon-functional-success:#008653;--telekom-color-text-and-icon-functional-danger:#d91308;--telekom-color-text-and-icon-functional-warning:#b63d00;--telekom-color-text-and-icon-on-subtle-informational:#2238df;--telekom-color-text-and-icon-on-subtle-success:#00774b;--telekom-color-text-and-icon-on-subtle-danger:#c30a03;--telekom-color-text-and-icon-on-subtle-warning:#b63d00;--telekom-color-text-and-icon-on-subtle-violet:#6c3bdb;--telekom-color-text-and-icon-on-subtle-blue:#2238df;--telekom-color-text-and-icon-on-subtle-cyan:#00738a;--telekom-color-text-and-icon-on-subtle-teal:#177364;--telekom-color-text-and-icon-on-subtle-green:#00774b;--telekom-color-text-and-icon-on-subtle-olive:#557317;--telekom-color-text-and-icon-on-subtle-brown:#82581c;--telekom-color-text-and-icon-on-subtle-yellow:#ac5600;--telekom-color-text-and-icon-on-subtle-orange:#b63d00;--telekom-color-text-and-icon-on-subtle-red:#c30a03;--telekom-color-background-canvas:#fff;--telekom-color-background-canvas-subtle:#fbfbfb;--telekom-color-background-backdrop:#00000080;--telekom-color-background-surface:#fff;--telekom-color-background-surface-subtle:#efeff0;--telekom-color-background-surface-highlight:#242426;--telekom-color-ui-base:#fff;--telekom-color-ui-subtle:#efeff0;--telekom-color-ui-faint:#dfdfe1;--telekom-color-ui-regular:#929296;--telekom-color-ui-strong:#747478;--telekom-color-ui-extra-strong:#242426;--telekom-color-ui-disabled:#d0d0d2;--telekom-color-ui-border-standard:#00000070;--telekom-color-ui-border-hovered:#000000b5;--telekom-color-ui-border-pressed:#000000b5;--telekom-color-ui-border-disabled:#00000024;--telekom-color-ui-state-fill-standard:#0000;--telekom-color-ui-state-fill-hovered:#00000012;--telekom-color-ui-state-fill-pressed:#00000036;--telekom-color-ui-state-fill-hovered-inverted:#ffffff24;--telekom-color-ui-state-fill-pressed-inverted:#ffffff36;--telekom-color-functional-focus-standard:#2238df;--telekom-color-functional-focus-inverted:#7d94f9;--telekom-color-functional-focus-on-dark-background:#7d94f9;--telekom-color-functional-focus-on-light-background:#2238df;--telekom-color-functional-informational-hovered:#1326cf;--telekom-color-functional-informational-pressed:#0819bd;--telekom-color-functional-informational-subtle:#d3d7f9;--telekom-color-functional-success-hovered:#00a461;--telekom-color-functional-success-pressed:#00955a;--telekom-color-functional-success-subtle:#ccf0e1;--telekom-color-functional-danger-hovered:#d91308;--telekom-color-functional-danger-pressed:#c30a03;--telekom-color-functional-danger-subtle:#fad2cf;--telekom-color-functional-warning-hovered:#f46409;--telekom-color-functional-warning-pressed:#e65703;--telekom-color-functional-warning-subtle:#fee2d0;--telekom-color-additional-violet-0:#e2d9ff;--telekom-color-additional-violet-100:#c8b5fd;--telekom-color-additional-violet-200:#af93fb;--telekom-color-additional-violet-300:#9a75f8;--telekom-color-additional-violet-400:#885df2;--telekom-color-additional-violet-500:#794ae9;--telekom-color-additional-violet-600:#6c3bdb;--telekom-color-additional-violet-700:#5e2ec6;--telekom-color-additional-violet-800:#5024ab;--telekom-color-additional-violet-900:#411c8c;--telekom-color-additional-violet-subtle:#e4dbfb;--telekom-color-additional-blue-0:#d9e2ff;--telekom-color-additional-blue-100:#aabcfd;--telekom-color-additional-blue-200:#7d94f9;--telekom-color-additional-blue-300:#576ff3;--telekom-color-additional-blue-400:#3950ea;--telekom-color-additional-blue-500:#2238df;--telekom-color-additional-blue-600:#1326cf;--telekom-color-additional-blue-700:#0819bd;--telekom-color-additional-blue-800:#0311ab;--telekom-color-additional-blue-900:#000d99;--telekom-color-additional-blue-subtle:#d3d7f9;--telekom-color-additional-cyan-0:#d9fcff;--telekom-color-additional-cyan-100:#a4ecf4;--telekom-color-additional-cyan-200:#75dbe8;--telekom-color-additional-cyan-300:#4fcadd;--telekom-color-additional-cyan-400:#33bbd2;--telekom-color-additional-cyan-500:#1eadc6;--telekom-color-additional-cyan-600:#11a0bb;--telekom-color-additional-cyan-700:#0894b0;--telekom-color-additional-cyan-800:#038aa4;--telekom-color-additional-cyan-900:#008099;--telekom-color-additional-cyan-subtle:#d2eff4;--telekom-color-additional-teal-0:#d9fff2;--telekom-color-additional-teal-100:#acf1dc;--telekom-color-additional-teal-200:#85e3ca;--telekom-color-additional-teal-300:#65d5ba;--telekom-color-additional-teal-400:#4cc6ac;--telekom-color-additional-teal-500:#3ab89f;--telekom-color-additional-teal-600:#2eaa93;--telekom-color-additional-teal-700:#259c87;--telekom-color-additional-teal-800:#1e8e7b;--telekom-color-additional-teal-900:#19806f;--telekom-color-additional-teal-subtle:#d8f1ec;--telekom-color-additional-green-0:#dbffed;--telekom-color-additional-green-100:#8ff0c1;--telekom-color-additional-green-200:#4ee19c;--telekom-color-additional-green-300:#1bd27f;--telekom-color-additional-green-400:#00c26d;--telekom-color-additional-green-500:#00b367;--telekom-color-additional-green-600:#00a461;--telekom-color-additional-green-700:#00955a;--telekom-color-additional-green-800:#008653;--telekom-color-additional-green-900:#00774b;--telekom-color-additional-green-subtle:#ccf0e1;--telekom-color-additional-olive-0:#f2ffd9;--telekom-color-additional-olive-100:#daf1ac;--telekom-color-additional-olive-200:#c3e385;--telekom-color-additional-olive-300:#afd565;--telekom-color-additional-olive-400:#9ec64c;--telekom-color-additional-olive-500:#8eb83a;--telekom-color-additional-olive-600:#81aa2e;--telekom-color-additional-olive-700:#749c25;--telekom-color-additional-olive-800:#688e1e;--telekom-color-additional-olive-900:#5e8019;--telekom-color-additional-olive-subtle:#e8f1d8;--telekom-color-additional-brown-0:#ffefd9;--telekom-color-additional-brown-100:#efd3ab;--telekom-color-additional-brown-200:#e0b983;--telekom-color-additional-brown-300:#d0a363;--telekom-color-additional-brown-400:#c18f4a;--telekom-color-additional-brown-500:#b17f38;--telekom-color-additional-brown-600:#a2702b;--telekom-color-additional-brown-700:#926322;--telekom-color-additional-brown-800:#82581c;--telekom-color-additional-brown-900:#734d17;--telekom-color-additional-brown-subtle:#efe5d7;--telekom-color-additional-yellow-0:#fffcd9;--telekom-color-additional-yellow-100:#fcf1aa;--telekom-color-additional-yellow-200:#f9e47e;--telekom-color-additional-yellow-300:#f7d358;--telekom-color-additional-yellow-400:#f4c23b;--telekom-color-additional-yellow-500:#f1b125;--telekom-color-additional-yellow-600:#eea015;--telekom-color-additional-yellow-700:#eb900b;--telekom-color-additional-yellow-800:#e88104;--telekom-color-additional-yellow-900:#e67300;--telekom-color-additional-yellow-subtle:#fcefd3;--telekom-color-additional-orange-0:#ffe6cc;--telekom-color-additional-orange-100:#ffc48e;--telekom-color-additional-orange-200:#fea75b;--telekom-color-additional-orange-300:#fd9038;--telekom-color-additional-orange-400:#fc7e21;--telekom-color-additional-orange-500:#f97012;--telekom-color-additional-orange-600:#f46409;--telekom-color-additional-orange-700:#e65703;--telekom-color-additional-orange-800:#cd4901;--telekom-color-additional-orange-900:#b63d00;--telekom-color-additional-orange-subtle:#fee2d0;--telekom-color-additional-red-0:#ffcabf;--telekom-color-additional-red-100:#fd9684;--telekom-color-additional-red-200:#fb6a55;--telekom-color-additional-red-300:#f84934;--telekom-color-additional-red-400:#f2321e;--telekom-color-additional-red-500:#e82010;--telekom-color-additional-red-600:#d91308;--telekom-color-additional-red-700:#c30a03;--telekom-color-additional-red-800:#a70401;--telekom-color-additional-red-900:#870000;--telekom-color-additional-red-subtle:#fad2cf;--telekom-radius-none:0rem;--telekom-radius-extra-small:0.125rem;--telekom-radius-small:0.25rem;--telekom-radius-medium-small:0.375rem;--telekom-radius-standard:0.5rem;--telekom-radius-large:0.75rem;--telekom-radius-pill:62.4375rem;--telekom-radius-circle:50%;--telekom-size-icon-extra-small:0.75rem;--telekom-size-icon-small:1rem;--telekom-size-icon-medium:1.25rem;--telekom-size-icon-large:1.5rem;--telekom-size-icon-extra-large:3rem;--telekom-size-form-element-height-small:2rem;--telekom-size-form-element-height-standard:2.75rem;--telekom-size-generic-size-01:0.25rem;--telekom-size-generic-size-02:0.375rem;--telekom-size-generic-size-03:0.5rem;--telekom-size-generic-size-04:0.75rem;--telekom-size-generic-size-05:1rem;--telekom-size-generic-size-06:1.25rem;--telekom-size-generic-size-07:1.5rem;--telekom-size-generic-size-08:1.75rem;--telekom-size-generic-size-09:2rem;--telekom-size-generic-size-10:2.25rem;--telekom-size-generic-size-11:2.5rem;--telekom-size-generic-size-12:2.75rem;--telekom-size-generic-size-13:3rem;--telekom-size-generic-size-14:3.25rem;--telekom-size-generic-size-15:3.5rem;--telekom-size-generic-size-16:4rem;--telekom-size-generic-size-17:4.5rem;--telekom-size-generic-size-18:5rem;--telekom-size-generic-size-19:6rem;--telekom-size-generic-size-20:8rem;--telekom-size-generic-size-21:12rem;--telekom-size-generic-size-22:16rem;--telekom-size-generic-size-23:20rem;--telekom-size-generic-size-24:28rem;--telekom-size-generic-size-25:36rem;--telekom-line-weight-standard:0.0625rem;--telekom-line-weight-highlight:0.125rem;--telekom-line-weight-bold:0.25rem;--telekom-motion-duration-instant:0ms;--telekom-motion-duration-immediate:100ms;--telekom-motion-duration-transition:200ms;--telekom-motion-duration-animation:600ms;--telekom-motion-duration-animation-deliberate:800ms;--telekom-motion-easing-standard:cubic-bezier(0.4,0,0.6,1);--telekom-motion-easing-enter:cubic-bezier(0.4,0.6,0.6,1);--telekom-motion-easing-leave:cubic-bezier(0.4,0,1,1);--telekom-opacity-invisible:0;--telekom-opacity-transparent:0.35;--telekom-opacity-semi-transparent:0.5;--telekom-opacity-translucent:0.75;--telekom-opacity-semi-translucent:0.85;--telekom-opacity-solid:1;--telekom-shadow-raised-standard:0px 8px 32px 0px #0000001a,0px 4px 8px 0px #0000001a;--telekom-shadow-raised-pressed:0px 4px 16px 0px #0000001a,0px 2px 4px 0px #0000001a;--telekom-shadow-floating-standard:0px 12px 48px 0px #0000001a,0px 6px 12px 0px #0000001a;--telekom-shadow-floating-hover:0px 24px 96px 0px #0000001a,0px 12px 24px 0px #0000001a;--telekom-shadow-floating-pressed:0px 8px 32px 0px #0000001a,0px 4px 8px 0px #0000001a;--telekom-shadow-top:0px 16px 64px 0px #0000001a,0px 8px 16px 0px #0000001a;--telekom-shadow-overlay:0px 24px 96px 0px #0000001a,0px 12px 24px 0px #0000001a;--telekom-shadow-intense:0px 0px 2px 0px #0000003d,0px 2px 4px 0px #0000003d,0px 4px 12px 0px #00000042;--telekom-shadow-app-bar-top-raised:0px 1px 0px 0px #0000000d,0px 2px 8px 0px #0000000d;--telekom-shadow-app-bar-top-flat:0px 1px 0px 0px #0000001a;--telekom-shadow-app-bar-bottom-raised:0px -1px 0px 0px #0000000d,0px -2px 8px 0px #0000000d;--telekom-shadow-app-bar-bottom-flat:0px -1px 0px 0px #0000001a;--telekom-spacing-composition-space-00:0rem;--telekom-spacing-composition-space-01:0.0625rem;--telekom-spacing-composition-space-02:0.125rem;--telekom-spacing-composition-space-03:0.25rem;--telekom-spacing-composition-space-04:0.5rem;--telekom-spacing-composition-space-05:0.75rem;--telekom-spacing-composition-space-06:1rem;--telekom-spacing-composition-space-07:1.25rem;--telekom-spacing-composition-space-08:1.5rem;--telekom-spacing-composition-space-09:1.75rem;--telekom-spacing-composition-space-10:2rem;--telekom-spacing-composition-space-11:2.25rem;--telekom-spacing-composition-space-12:2.5rem;--telekom-spacing-composition-space-13:2.75rem;--telekom-spacing-composition-space-14:3rem;--telekom-spacing-composition-space-15:3.25rem;--telekom-spacing-composition-space-16:3.5rem;--telekom-spacing-composition-space-17:4rem;--telekom-spacing-composition-space-18:4.5rem;--telekom-spacing-composition-space-19:5rem;--telekom-spacing-composition-space-20:5.5rem;--telekom-spacing-composition-space-21:6rem;--telekom-spacing-baseline-space-00:0rem;--telekom-spacing-baseline-space-01:0.25rem;--telekom-spacing-baseline-space-02:0.5rem;--telekom-spacing-baseline-space-03:0.75rem;--telekom-spacing-baseline-space-04:1rem;--telekom-spacing-baseline-space-05:1.5rem;--telekom-spacing-baseline-space-06:2rem;--telekom-spacing-baseline-space-07:3rem;--telekom-spacing-baseline-space-08:4rem;--telekom-spacing-baseline-space-09:6rem;--telekom-spacing-baseline-space-10:8rem;--telekom-spacing-baseline-space-11:12rem;--telekom-spacing-baseline-space-12:16rem;--telekom-spacing-baseline-space-13:24rem;--telekom-spacing-baseline-space-14:32rem;--telekom-spacing-baseline-space-15:64rem;--telekom-text-style-badge:400 0.625rem/1.2 TeleNeoWeb,sans-serif;--telekom-text-style-small:500 0.75rem/1.35 TeleNeoWeb,sans-serif;--telekom-text-style-small-bold:700 0.75rem/1.35 TeleNeoWeb,sans-serif;--telekom-text-style-caption:400 0.875rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-caption-bold:700 0.875rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-body:400 1rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-body-bold:700 1rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-ui:500 1rem/1 TeleNeoWeb,sans-serif;--telekom-text-style-ui-bold:700 1rem/1 TeleNeoWeb,sans-serif;--telekom-text-style-lead-text:400 1.25rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-heading-6:700 1rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-heading-5:800 1.25rem/1.4 TeleNeoWeb,sans-serif;--telekom-text-style-heading-4:800 1.5rem/1.35 TeleNeoWeb,sans-serif;--telekom-text-style-heading-3:800 2rem/1.25 TeleNeoWeb,sans-serif;--telekom-text-style-heading-2:800 2.625rem/1.15 TeleNeoWeb,sans-serif;--telekom-text-style-heading-1:800 3.375rem/1.2 TeleNeoWeb,sans-serif;--telekom-text-style-title-2:800 4.25rem/1.15 TeleNeoWeb,sans-serif;--telekom-text-style-title-1:800 4.75rem/1.15 TeleNeoWeb,sans-serif;--telekom-typography-font-size-badge:0.625rem;--telekom-typography-font-size-small:0.75rem;--telekom-typography-font-size-caption:0.875rem;--telekom-typography-font-size-body:1rem;--telekom-typography-font-size-callout:1.25rem;--telekom-typography-font-size-headline-3:1.5rem;--telekom-typography-font-size-headline-2:2rem;--telekom-typography-font-size-headline-1:2.625rem;--telekom-typography-font-size-title-3:3.375rem;--telekom-typography-font-size-title-2:4.25rem;--telekom-typography-font-size-title-1:4.75rem;--telekom-typography-font-family-sans:TeleNeoWeb,sans-serif;--telekom-typography-font-family-mono:monospace;--telekom-typography-font-weight-thin:200;--telekom-typography-font-weight-regular:400;--telekom-typography-font-weight-medium:500;--telekom-typography-font-weight-bold:700;--telekom-typography-font-weight-extra-bold:800;--telekom-typography-font-weight-ultra:900;--telekom-typography-line-spacing-none:1;--telekom-typography-line-spacing-extra-tight:1.15;--telekom-typography-line-spacing-tight:1.25;--telekom-typography-line-spacing-moderate:1.35;--telekom-typography-line-spacing-standard:1.4;--telekom-typography-line-spacing-loose:1.5;--telekom-typography-letter-spacing-standard:0;--telekom-spacing-unit-base:0.25rem;--telekom-spacing-unit-x0:calc(var(--telekom-spacing-unit-base)*0);--telekom-spacing-unit-x025:calc(var(--telekom-spacing-unit-base)*0.25);--telekom-spacing-unit-x05:calc(var(--telekom-spacing-unit-base)*0.5);--telekom-spacing-unit-x1:calc(var(--telekom-spacing-unit-base)*1);--telekom-spacing-unit-x2:calc(var(--telekom-spacing-unit-base)*2);--telekom-spacing-unit-x3:calc(var(--telekom-spacing-unit-base)*3);--telekom-spacing-unit-x4:calc(var(--telekom-spacing-unit-base)*4);--telekom-spacing-unit-x5:calc(var(--telekom-spacing-unit-base)*5);--telekom-spacing-unit-x6:calc(var(--telekom-spacing-unit-base)*6);--telekom-spacing-unit-x7:calc(var(--telekom-spacing-unit-base)*7);--telekom-spacing-unit-x8:calc(var(--telekom-spacing-unit-base)*8);--telekom-spacing-unit-x9:calc(var(--telekom-spacing-unit-base)*9);--telekom-spacing-unit-x10:calc(var(--telekom-spacing-unit-base)*10);--telekom-spacing-unit-x11:calc(var(--telekom-spacing-unit-base)*11);--telekom-spacing-unit-x12:calc(var(--telekom-spacing-unit-base)*12);--telekom-spacing-unit-x13:calc(var(--telekom-spacing-unit-base)*13);--telekom-spacing-unit-x14:calc(var(--telekom-spacing-unit-base)*14);--telekom-spacing-unit-x15:calc(var(--telekom-spacing-unit-base)*15);--telekom-spacing-unit-x16:calc(var(--telekom-spacing-unit-base)*16);--telekom-spacing-unit-x17:calc(var(--telekom-spacing-unit-base)*17);--telekom-spacing-unit-x18:calc(var(--telekom-spacing-unit-base)*18);--telekom-spacing-unit-x19:calc(var(--telekom-spacing-unit-base)*19);--telekom-spacing-unit-x20:calc(var(--telekom-spacing-unit-base)*20);--scl-grid-max-width:1504px;--scl-z-index-10:10;--scl-z-index-20:20;--scl-z-index-30:30;--scl-z-index-40:40;--scl-z-index-50:50;--scl-z-index-60:60;--scl-z-index-70:70;color-scheme:light dark;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#1035bc;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#1035bc;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.scl-font-variant-body{font-family:var(--scl-font-variant-body-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-body-size,1rem);font-weight:var(--scl-font-variant-body-weight,500);letter-spacing:var(--scl-font-variant-body-letter-spacing,normal);line-height:var(--scl-font-variant-body-line-height,150%)}.scl-font-variant-body-short{font-family:var( + --scl-font-variant-body-short-family,TeleNeoWeb,sans-serif + );font-size:var(--scl-font-variant-body-short-size,1rem);font-weight:var(--scl-font-variant-body-short-weight,500);letter-spacing:var(--scl-font-variant-body-short-letter-spacing,normal);line-height:var(--scl-font-variant-body-short-line-height,125%)}.scl-font-variant-body-large{font-family:var( + --scl-font-variant-body-large-family,TeleNeoWeb,sans-serif + );font-size:var(--scl-font-variant-body-large-size,1.25rem);font-weight:var(--scl-font-variant-body-large-weight,500);letter-spacing:var(--scl-font-variant-body-large-letter-spacing,normal);line-height:var(--scl-font-variant-body-large-line-height,160%)}.scl-font-variant-smaller{font-family:var(--scl-font-variant-smaller-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-smaller-size,.75rem);font-weight:var(--scl-font-variant-smaller-weight,500);letter-spacing:var(--scl-font-variant-smaller-letter-spacing,normal);line-height:var(--scl-font-variant-smaller-line-height,125%)}.scl-font-variant-label{font-family:var(--scl-font-variant-label-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-label-size,.75rem);font-weight:var(--scl-font-variant-label-weight,500);letter-spacing:var(--scl-font-variant-label-letter-spacing,normal);line-height:var(--scl-font-variant-label-line-height,120%)}.scl-font-variant-caption{font-family:var(--scl-font-variant-caption-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-caption-size,.75rem);font-weight:var(--scl-font-variant-caption-weight,500);letter-spacing:var(--scl-font-variant-caption-letter-spacing,normal);line-height:var(--scl-font-variant-caption-line-height,133%)}.scl-font-variant-heading-6{font-family:var(--scl-font-variant-heading-6-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-heading-6-size,1rem);font-weight:var(--scl-font-variant-heading-6-weight,700);letter-spacing:var(--scl-font-variant-heading-6-letter-spacing,normal);line-height:var(--scl-font-variant-heading-6-line-height,150%)}.scl-font-variant-heading-5{font-family:var(--scl-font-variant-heading-5-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-heading-5-size,1.25rem);font-weight:var(--scl-font-variant-heading-5-weight,800);letter-spacing:var(--scl-font-variant-heading-5-letter-spacing,normal);line-height:var(--scl-font-variant-heading-5-line-height,125%)}.scl-font-variant-heading-4{font-family:var(--scl-font-variant-heading-4-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-heading-4-size,1.5rem);font-weight:var(--scl-font-variant-heading-4-weight,800);letter-spacing:var(--scl-font-variant-heading-4-letter-spacing,normal);line-height:var(--scl-font-variant-heading-4-line-height,133%)}.scl-font-variant-heading-3{font-family:var(--scl-font-variant-heading-3-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-heading-3-size,2rem);font-weight:var(--scl-font-variant-heading-3-weight,800);letter-spacing:var(--scl-font-variant-heading-3-letter-spacing,normal);line-height:var(--scl-font-variant-heading-3-line-height,125%)}.scl-font-variant-heading-2{font-family:var(--scl-font-variant-heading-2-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-heading-2-size,2.5rem);font-weight:var(--scl-font-variant-heading-2-weight,800);letter-spacing:var(--scl-font-variant-heading-2-letter-spacing,normal);line-height:var(--scl-font-variant-heading-2-line-height,120%)}.scl-font-variant-heading-1{font-family:var(--scl-font-variant-heading-1-family,TeleNeoWeb,sans-serif);font-size:var(--scl-font-variant-heading-1-size,3.5rem);font-weight:var(--scl-font-variant-heading-1-weight,800);letter-spacing:var(--scl-font-variant-heading-1-letter-spacing,normal);line-height:var(--scl-font-variant-heading-1-line-height,114%)}[data-mode=dark]{--telekom-color-text-and-icon-standard:#fff;--telekom-color-text-and-icon-additional:#ffffffa6;--telekom-color-text-and-icon-disabled:#ffffff4d;--telekom-color-text-and-icon-link-standard:#7d94f9;--telekom-color-text-and-icon-link-hovered:#aabcfd;--telekom-color-text-and-icon-link-visited:#9a75f8;--telekom-color-text-and-icon-link-active:#d9e2ff;--telekom-color-text-and-icon-primary-hovered:#ec59a5;--telekom-color-text-and-icon-primary-pressed:#f080ba;--telekom-color-text-and-icon-inverted-standard:#000;--telekom-color-text-and-icon-inverted-additional:#000000a6;--telekom-color-text-and-icon-functional-informational:#7d94f9;--telekom-color-text-and-icon-functional-success:#00b367;--telekom-color-text-and-icon-functional-danger:#f84934;--telekom-color-text-and-icon-functional-warning:#f97012;--telekom-color-text-and-icon-on-subtle-informational:#7d94f9;--telekom-color-text-and-icon-on-subtle-success:#1bd27f;--telekom-color-text-and-icon-on-subtle-danger:#fb6a55;--telekom-color-text-and-icon-on-subtle-warning:#fd9038;--telekom-color-text-and-icon-on-subtle-violet:#af93fb;--telekom-color-text-and-icon-on-subtle-blue:#7d94f9;--telekom-color-text-and-icon-on-subtle-cyan:#33bbd2;--telekom-color-text-and-icon-on-subtle-teal:#4cc6ac;--telekom-color-text-and-icon-on-subtle-green:#1bd27f;--telekom-color-text-and-icon-on-subtle-olive:#9ec64c;--telekom-color-text-and-icon-on-subtle-brown:#d0a363;--telekom-color-text-and-icon-on-subtle-yellow:#f1b125;--telekom-color-text-and-icon-on-subtle-orange:#fd9038;--telekom-color-text-and-icon-on-subtle-red:#fb6a55;--telekom-color-background-canvas:#000;--telekom-color-background-canvas-subtle:#0e0e0f;--telekom-color-background-backdrop:#000000a6;--telekom-color-background-surface:#1c1c1e;--telekom-color-background-surface-subtle:#242426;--telekom-color-background-surface-highlight:#48484b;--telekom-color-ui-base:#0e0e0f;--telekom-color-ui-subtle:#1c1c1e;--telekom-color-ui-faint:#39393c;--telekom-color-ui-regular:#656569;--telekom-color-ui-strong:#929296;--telekom-color-ui-extra-strong:#efeff0;--telekom-color-ui-disabled:#2b2b2d;--telekom-color-ui-border-standard:#fff6;--telekom-color-ui-border-hovered:#ffffff8a;--telekom-color-ui-border-pressed:#fffffff0;--telekom-color-ui-border-disabled:#ffffff36;--telekom-color-ui-state-fill-standard:#fff0;--telekom-color-ui-state-fill-hovered:#ffffff24;--telekom-color-ui-state-fill-pressed:#ffffff45;--telekom-color-ui-state-fill-hovered-inverted:#00000012;--telekom-color-ui-state-fill-pressed-inverted:#00000036;--telekom-color-functional-focus-standard:#7d94f9;--telekom-color-functional-focus-inverted:#2238df;--telekom-color-functional-informational-hovered:#3950ea;--telekom-color-functional-informational-pressed:#576ff3;--telekom-color-functional-informational-subtle:#131f7b;--telekom-color-functional-success-hovered:#00c26d;--telekom-color-functional-success-pressed:#1bd27f;--telekom-color-functional-success-subtle:#004829;--telekom-color-functional-danger-hovered:#f2321e;--telekom-color-functional-danger-pressed:#f84934;--telekom-color-functional-danger-subtle:#5d0d06;--telekom-color-functional-warning-hovered:#fc7e21;--telekom-color-functional-warning-pressed:#fd9038;--telekom-color-functional-warning-subtle:#642d07;--telekom-color-additional-violet-subtle:#301e5d;--telekom-color-additional-blue-subtle:#131f7b;--telekom-color-additional-cyan-subtle:#0c454f;--telekom-color-additional-teal-subtle:#174a40;--telekom-color-additional-green-subtle:#004829;--telekom-color-additional-olive-subtle:#394a17;--telekom-color-additional-brown-subtle:#473316;--telekom-color-additional-yellow-subtle:#60470f;--telekom-color-additional-orange-subtle:#642d07;--telekom-color-additional-red-subtle:#5d0d06;color-scheme:dark}.scl-font-variant-body,.scl-font-variant-body-short{font:var(--telekom-text-style-body)}.scl-font-variant-body-short{line-height:var(--telekom-typography-line-spacing-tight)}.scl-font-variant-body-large{font:var(--telekom-text-style-lead-text)}.scl-font-variant-label,.scl-font-variant-smaller{font:var(--telekom-text-style-small)}.scl-font-variant-caption{font:var(--telekom-text-style-caption)}.scl-font-variant-heading-6{font:var(--telekom-text-style-heading-6)}.scl-font-variant-heading-5{font:var(--telekom-text-style-heading-5)}.scl-font-variant-heading-4{font:var(--telekom-text-style-heading-4)}.scl-font-variant-heading-3{font:var(--telekom-text-style-heading-3)}.scl-font-variant-heading-2{font:var(--telekom-text-style-heading-2)}.scl-font-variant-heading-1{font:var(--telekom-text-style-heading-1)}.scl-grid,scale-grid{--spacing-md:var(--spacing-sm);--spacing-lg:var(--spacing-md);--spacing-xl:var(--spacing-lg);--spacing-xxl:var(--spacing-xl);--gutter-y-md:var(--gutter-y-sm);--gutter-y-lg:var(--gutter-y-md);--gutter-y-xl:var(--gutter-y-lg);--gutter-y-xxl:var(--gutter-y-xl);--gutter-x-md:var(--gutter-x-sm);--gutter-x-lg:var(--gutter-x-md);--gutter-x-xl:var(--gutter-x-lg);--gutter-x-xxl:var(--gutter-x-xl);--columns-md:var(--columns-sm);--columns-lg:var(--columns-md);--columns-xl:var(--columns-lg);--columns-xxl:var(--columns-xl);box-sizing:initial;column-gap:var(--gutter-y-sm,var(--telekom-spacing-unit-x8,2em));display:grid;grid-template-columns:repeat(var(--columns-sm,4),minmax(0,1fr));margin-left:auto;margin-right:auto;max-width:none;padding-left:var(--spacing-sm,var(--telekom-spacing-unit-x4,1em));padding-right:var(--spacing-sm,var(--telekom-spacing-unit-x4,1em));row-gap:var(--gutter-x-sm,var(--telekom-spacing-unit-x8,2em))}.scl-grid-item,scale-grid-item{--size-md:var(--size-sm);--size-lg:var(--size-md);--size-xl:var(--size-lg);--size-xxl:var(--size-xl);--offset-md:var(--offset-sm);--offset-lg:var(--offset-md);--offset-xl:var(--offset-lg);--offset-xxl:var(--offset-xl);grid-column:var(--offset-sm,auto)/span var(--size-sm,4)}.scl-toast-stack{display:flex;flex-direction:column;gap:var(--telekom-spacing-composition-space-04);inset-inline-end:var(--telekom-spacing-composition-space-06);max-height:100%;overflow:visible;position:fixed;top:var(--telekom-spacing-composition-space-06);z-index:var(--scl-z-index-70);z-index:100}[data-mode=light]{color-scheme:light}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_knG7 a{text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards a;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.tocCollapsibleContent_vkbj a{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.item__inner_Hj0M div,.item__inner_Ogs7 div,.item__inner_gIwH div,.item__inner_nV1L div{padding:3rem}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key,.item__inner_Hj0M,.item__inner_Ogs7,.item__inner_gIwH,.item__inner_gwIE,.item__inner_nV1L{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.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}.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}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_Q0Zn:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_dCNk:not(:has(>*)){display:none}}.navbarHideable_jvwV{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_nLSi{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_DDai{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_DDai:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.iwnupRKjsS84xS8RH6vv{background-color:var(--telekom-color-background-surface-subtle);position:relative}.Nzy2BPLDAUyOKj5KtfIx{align-items:center;display:flex;font-size:smaller;font-weight:400;margin-bottom:0}.vnZIe1dhsQtxsLbXkPRN{height:1.25rem;margin-right:.5rem;width:1.25rem}.udXcO7FKTl0t9o202z5z{font-size:small}.udXcO7FKTl0t9o202z5z,.udXcO7FKTl0t9o202z5z:hover{color:inherit;text-decoration:none}.iNvuBjzLIoxJhY0ghemo{background:var(--ifm-color-primary);height:.5rem;margin-top:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:0}.iwnupRKjsS84xS8RH6vv:hover .iNvuBjzLIoxJhY0ghemo{width:100%}.X_5ZqS0EQNYC2IkdMq7Q{background-color:#ebedf0;box-shadow:unset}html[data-theme=dark] .X_5ZqS0EQNYC2IkdMq7Q{background-color:var(--telekom-color-background-surface-subtle);box-shadow:unset}.p4vAg2lXdcQ3cM0pmQ8P{border-radius:.375rem;box-shadow:0 2px 6px var(--ifm-background-surface-color-dark)}.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:"#"}.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%}.item_BTEg,.item_FxE2,.item_MunO,.item_XzKz,.item_lCGg{box-shadow:0 1px 3px gray;color:#000}.item_lCGg,html[data-theme=dark] .item_lCGg{background-color:var(--ifm-background-color);border-radius:2rem;overflow:hidden}.item_BTEg,.item_FxE2,.item_XzKz,html[data-theme=dark] .item_BTEg,html[data-theme=dark] .item_FxE2,html[data-theme=dark] .item_XzKz{background-color:var(--telekom-color-background-surface);border-radius:2rem;overflow:hidden}html[data-theme=dark] .item_BTEg,html[data-theme=dark] .item_FxE2,html[data-theme=dark] .item_MunO,html[data-theme=dark] .item_XzKz,html[data-theme=dark] .item_lCGg{box-shadow:0 1px 3px var(--ifm-color-primary);color:#fff}.item__title_AWTr span,.item__title_PhZl span,.item__title_c5Dj span,.item__title_fqBy span,.item__title_n8Sg span{display:block;font-size:1.25rem}.features_t9lD{align-items:center;display:flex;padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.item_FxE2,.item_XzKz,html[data-theme=dark] .item_FxE2,html[data-theme=dark] .item_XzKz{height:100%}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.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;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.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)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.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}.mdxPageWrapper_j9I6{justify-content:center}.item_MunO,html[data-theme=dark] .item_MunO{background-color:var(--ifm-background-color);border-radius:.5rem;overflow:hidden}.item__inner_gwIE div{padding:1.5rem}@media screen and (min-width:640px){.scl-grid,scale-grid{column-gap:var(--gutter-y-md,var(--telekom-spacing-unit-x8,2em));grid-template-columns:repeat(var(--columns-md,8),minmax(0,1fr));padding-left:var(--spacing-md,var(--telekom-spacing-unit-x4,1em));padding-right:var(--spacing-md,var(--telekom-spacing-unit-x4,1em));row-gap:var(--gutter-x-md,var(--telekom-spacing-unit-x8,2em))}.scl-grid-item,scale-grid-item{grid-column:var(--offset-md,auto)/span var(--size-md,4)}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG: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_TmdG{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_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);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_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_dCNk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media screen and (min-width:997px){:root{--ifm-font-size-base:19px;font-weight:400}article header h1{font-size:2rem!important;font-weight:700}}@media screen and (min-width:1040px){.scl-grid,scale-grid{column-gap:var(--gutter-y-lg,var(--telekom-spacing-unit-x8,2em));grid-template-columns:repeat(var(--columns-lg,16),minmax(0,1fr));padding-left:var(--spacing-lg,var(--telekom-spacing-unit-x6,1.5em));padding-right:var(--spacing-lg,var(--telekom-spacing-unit-x6,1.5em));row-gap:var(--gutter-x-lg,var(--telekom-spacing-unit-x8,2em))}.scl-grid-item,scale-grid-item{grid-column:var(--offset-lg,auto)/span var(--size-lg,4)}}@media screen and (min-width:1296px){.scl-grid,scale-grid{column-gap:var(--gutter-y-xl,var(--telekom-spacing-unit-x8,2em));grid-template-columns:repeat(var(--columns-xl,16),minmax(0,1fr));padding-left:var(--spacing-xl,var(--telekom-spacing-unit-x6,1.5em));padding-right:var(--spacing-xl,var(--telekom-spacing-unit-x6,1.5em));row-gap:var(--gutter-x-xl,var(--telekom-spacing-unit-x8,2em))}.scl-grid-item,scale-grid-item{grid-column:var(--offset-xl,auto)/span var(--size-xl,4)}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media screen and (min-width:1680px){.scl-grid,scale-grid{column-gap:var(--gutter-y-xxl,var(--telekom-spacing-unit-x8,2em));grid-template-columns:repeat(var(--columns-xxl,16),minmax(0,1fr));max-width:var(--max-width,var(--scl-grid-max-width));padding-left:var(--spacing-xxl,var(--telekom-spacing-unit-x6,1.5em));padding-right:var(--spacing-xxl,var(--telekom-spacing-unit-x6,1.5em));row-gap:var(--gutter-x-xxl,var(--telekom-spacing-unit-x8,2em))}.scl-grid-item,scale-grid-item{grid-column:var(--offset-xxl,auto)/span var(--size-xxl,4)}}@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_x44X,.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}.navbarSearchContainer_dCNk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.item_FxE2{margin-top:2rem}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:996px){:root{--ifm-font-size-base:18px}article header h1{font-size:1.5rem!important;font-weight:700}.hero .hero__title{font-size:2.5rem;font-weight:700}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@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)}}@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 (prefers-color-scheme:dark){:root,[data-mode=light]{--telekom-color-text-and-icon-primary-standard:#e20074;--telekom-color-text-and-icon-white-standard:#fff;--telekom-color-text-and-icon-white-additional:#ffffffa6;--telekom-color-text-and-icon-black-standard:#000;--telekom-color-text-and-icon-black-additional:#000000a6;--telekom-color-primary-standard:#e20074;--telekom-color-primary-hovered:#c00063;--telekom-color-primary-pressed:#9e0051;--telekom-color-ui-white:#fff;--telekom-color-ui-black:#000;--telekom-color-functional-informational-standard:#2238df;--telekom-color-functional-success-standard:#00b367;--telekom-color-functional-danger-standard:#e82010;--telekom-color-functional-warning-standard:#f97012}:root{--telekom-color-text-and-icon-standard:#fff;--telekom-color-text-and-icon-additional:#ffffffa6;--telekom-color-text-and-icon-disabled:#ffffff4d;--telekom-color-text-and-icon-link-standard:#7d94f9;--telekom-color-text-and-icon-link-hovered:#aabcfd;--telekom-color-text-and-icon-link-visited:#9a75f8;--telekom-color-text-and-icon-link-active:#d9e2ff;--telekom-color-text-and-icon-primary-hovered:#ec59a5;--telekom-color-text-and-icon-primary-pressed:#f080ba;--telekom-color-text-and-icon-inverted-standard:#000;--telekom-color-text-and-icon-inverted-additional:#000000a6;--telekom-color-text-and-icon-functional-informational:#7d94f9;--telekom-color-text-and-icon-functional-success:#00b367;--telekom-color-text-and-icon-functional-danger:#f84934;--telekom-color-text-and-icon-functional-warning:#f97012;--telekom-color-text-and-icon-on-subtle-informational:#7d94f9;--telekom-color-text-and-icon-on-subtle-success:#1bd27f;--telekom-color-text-and-icon-on-subtle-danger:#fb6a55;--telekom-color-text-and-icon-on-subtle-warning:#fd9038;--telekom-color-text-and-icon-on-subtle-violet:#af93fb;--telekom-color-text-and-icon-on-subtle-blue:#7d94f9;--telekom-color-text-and-icon-on-subtle-cyan:#33bbd2;--telekom-color-text-and-icon-on-subtle-teal:#4cc6ac;--telekom-color-text-and-icon-on-subtle-green:#1bd27f;--telekom-color-text-and-icon-on-subtle-olive:#9ec64c;--telekom-color-text-and-icon-on-subtle-brown:#d0a363;--telekom-color-text-and-icon-on-subtle-yellow:#f1b125;--telekom-color-text-and-icon-on-subtle-orange:#fd9038;--telekom-color-text-and-icon-on-subtle-red:#fb6a55;--telekom-color-background-canvas:#000;--telekom-color-background-canvas-subtle:#0e0e0f;--telekom-color-background-backdrop:#000000a6;--telekom-color-background-surface:#1c1c1e;--telekom-color-background-surface-subtle:#242426;--telekom-color-background-surface-highlight:#48484b;--telekom-color-ui-base:#0e0e0f;--telekom-color-ui-subtle:#1c1c1e;--telekom-color-ui-faint:#39393c;--telekom-color-ui-regular:#656569;--telekom-color-ui-strong:#929296;--telekom-color-ui-extra-strong:#efeff0;--telekom-color-ui-disabled:#2b2b2d;--telekom-color-ui-border-standard:#fff6;--telekom-color-ui-border-hovered:#ffffff8a;--telekom-color-ui-border-pressed:#fffffff0;--telekom-color-ui-border-disabled:#ffffff36;--telekom-color-ui-state-fill-standard:#fff0;--telekom-color-ui-state-fill-hovered:#ffffff24;--telekom-color-ui-state-fill-pressed:#ffffff45;--telekom-color-ui-state-fill-hovered-inverted:#00000012;--telekom-color-ui-state-fill-pressed-inverted:#00000036;--telekom-color-functional-focus-standard:#7d94f9;--telekom-color-functional-focus-inverted:#2238df;--telekom-color-functional-informational-hovered:#3950ea;--telekom-color-functional-informational-pressed:#576ff3;--telekom-color-functional-informational-subtle:#131f7b;--telekom-color-functional-success-hovered:#00c26d;--telekom-color-functional-success-pressed:#1bd27f;--telekom-color-functional-success-subtle:#004829;--telekom-color-functional-danger-hovered:#f2321e;--telekom-color-functional-danger-pressed:#f84934;--telekom-color-functional-danger-subtle:#5d0d06;--telekom-color-functional-warning-hovered:#fc7e21;--telekom-color-functional-warning-pressed:#fd9038;--telekom-color-functional-warning-subtle:#642d07;--telekom-color-additional-violet-subtle:#301e5d;--telekom-color-additional-blue-subtle:#131f7b;--telekom-color-additional-cyan-subtle:#0c454f;--telekom-color-additional-teal-subtle:#174a40;--telekom-color-additional-green-subtle:#004829;--telekom-color-additional-olive-subtle:#394a17;--telekom-color-additional-brown-subtle:#473316;--telekom-color-additional-yellow-subtle:#60470f;--telekom-color-additional-orange-subtle:#642d07;--telekom-color-additional-red-subtle:#5d0d06}[data-mode=light]{--telekom-color-text-and-icon-standard:#000;--telekom-color-text-and-icon-additional:#000000a6;--telekom-color-text-and-icon-disabled:#0006;--telekom-color-text-and-icon-link-standard:#2238df;--telekom-color-text-and-icon-link-hovered:#0819bd;--telekom-color-text-and-icon-link-visited:#6c3bdb;--telekom-color-text-and-icon-link-active:#000d99;--telekom-color-text-and-icon-primary-hovered:#c00063;--telekom-color-text-and-icon-primary-pressed:#9e0051;--telekom-color-text-and-icon-inverted-standard:#fff;--telekom-color-text-and-icon-inverted-additional:#ffffffa6;--telekom-color-text-and-icon-functional-informational:#2238df;--telekom-color-text-and-icon-functional-success:#008653;--telekom-color-text-and-icon-functional-danger:#d91308;--telekom-color-text-and-icon-functional-warning:#b63d00;--telekom-color-text-and-icon-on-subtle-informational:#2238df;--telekom-color-text-and-icon-on-subtle-success:#00774b;--telekom-color-text-and-icon-on-subtle-danger:#c30a03;--telekom-color-text-and-icon-on-subtle-warning:#b63d00;--telekom-color-text-and-icon-on-subtle-violet:#6c3bdb;--telekom-color-text-and-icon-on-subtle-blue:#2238df;--telekom-color-text-and-icon-on-subtle-cyan:#00738a;--telekom-color-text-and-icon-on-subtle-teal:#177364;--telekom-color-text-and-icon-on-subtle-green:#00774b;--telekom-color-text-and-icon-on-subtle-olive:#557317;--telekom-color-text-and-icon-on-subtle-brown:#82581c;--telekom-color-text-and-icon-on-subtle-yellow:#ac5600;--telekom-color-text-and-icon-on-subtle-orange:#b63d00;--telekom-color-text-and-icon-on-subtle-red:#c30a03;--telekom-color-background-canvas:#fff;--telekom-color-background-canvas-subtle:#fbfbfb;--telekom-color-background-backdrop:#00000080;--telekom-color-background-surface:#fff;--telekom-color-background-surface-subtle:#efeff0;--telekom-color-background-surface-highlight:#242426;--telekom-color-ui-base:#fff;--telekom-color-ui-subtle:#efeff0;--telekom-color-ui-faint:#dfdfe1;--telekom-color-ui-regular:#929296;--telekom-color-ui-strong:#747478;--telekom-color-ui-extra-strong:#242426;--telekom-color-ui-disabled:#d0d0d2;--telekom-color-ui-border-standard:#00000070;--telekom-color-ui-border-hovered:#000000b5;--telekom-color-ui-border-pressed:#000000b5;--telekom-color-ui-border-disabled:#00000024;--telekom-color-ui-state-fill-standard:#0000;--telekom-color-ui-state-fill-hovered:#00000012;--telekom-color-ui-state-fill-pressed:#00000036;--telekom-color-ui-state-fill-hovered-inverted:#ffffff24;--telekom-color-ui-state-fill-pressed-inverted:#ffffff36;--telekom-color-functional-focus-standard:#2238df;--telekom-color-functional-focus-inverted:#7d94f9;--telekom-color-functional-informational-hovered:#1326cf;--telekom-color-functional-informational-pressed:#0819bd;--telekom-color-functional-informational-subtle:#d3d7f9;--telekom-color-functional-success-hovered:#00a461;--telekom-color-functional-success-pressed:#00955a;--telekom-color-functional-success-subtle:#ccf0e1;--telekom-color-functional-danger-hovered:#d91308;--telekom-color-functional-danger-pressed:#c30a03;--telekom-color-functional-danger-subtle:#fad2cf;--telekom-color-functional-warning-hovered:#f46409;--telekom-color-functional-warning-pressed:#e65703;--telekom-color-functional-warning-subtle:#fee2d0;--telekom-color-additional-violet-subtle:#e4dbfb;--telekom-color-additional-blue-subtle:#d3d7f9;--telekom-color-additional-cyan-subtle:#d2eff4;--telekom-color-additional-teal-subtle:#d8f1ec;--telekom-color-additional-green-subtle:#ccf0e1;--telekom-color-additional-olive-subtle:#e8f1d8;--telekom-color-additional-brown-subtle:#efe5d7;--telekom-color-additional-yellow-subtle:#fcefd3;--telekom-color-additional-orange-subtle:#fee2d0;--telekom-color-additional-red-subtle:#fad2cf}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;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/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-2e3311c410e163c2f75df9023f1358aa.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-2e3311c410e163c2f75df9023f1358aa.woff new file mode 100644 index 000000000..e9a284f0d Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-2e3311c410e163c2f75df9023f1358aa.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-846f45468e83736fc49d4f4ac4339f17.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-846f45468e83736fc49d4f4ac4339f17.woff2 new file mode 100644 index 000000000..991d51978 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-846f45468e83736fc49d4f4ac4339f17.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-92d5e35267df221341eac83dad76425b.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-92d5e35267df221341eac83dad76425b.eot new file mode 100644 index 000000000..92d3b5610 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Bold-92d5e35267df221341eac83dad76425b.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-4079eefcffba1971dd1b273b393fe67d.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-4079eefcffba1971dd1b273b393fe67d.eot new file mode 100644 index 000000000..21b4f9739 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-4079eefcffba1971dd1b273b393fe67d.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-a5f6a0fc65e3a6588c3e478c135d7bfb.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-a5f6a0fc65e3a6588c3e478c135d7bfb.woff2 new file mode 100644 index 000000000..f89fe2bda Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-a5f6a0fc65e3a6588c3e478c135d7bfb.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-bfca3377a246fb623a56787558464443.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-bfca3377a246fb623a56787558464443.woff new file mode 100644 index 000000000..f9552e129 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-BoldItalic-bfca3377a246fb623a56787558464443.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-12c4d77df70f6decab600dd2c388aaf6.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-12c4d77df70f6decab600dd2c388aaf6.woff new file mode 100644 index 000000000..2844abe59 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-12c4d77df70f6decab600dd2c388aaf6.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-13f1b21743fdd12d5c8d58254fbb28cc.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-13f1b21743fdd12d5c8d58254fbb28cc.eot new file mode 100644 index 000000000..3474ff3c8 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-13f1b21743fdd12d5c8d58254fbb28cc.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-dc803ca4dbfd9f03283b8f7b174c92c5.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-dc803ca4dbfd9f03283b8f7b174c92c5.woff2 new file mode 100644 index 000000000..216459a7c Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBold-dc803ca4dbfd9f03283b8f7b174c92c5.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-29679120106c4188c036d05737659e90.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-29679120106c4188c036d05737659e90.woff new file mode 100644 index 000000000..2eb657b13 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-29679120106c4188c036d05737659e90.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-481868b81b522585fad4f85b084bbc6d.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-481868b81b522585fad4f85b084bbc6d.eot new file mode 100644 index 000000000..e5e4e4fd9 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-481868b81b522585fad4f85b084bbc6d.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-af77bf595192df4831219ba01376a8f1.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-af77bf595192df4831219ba01376a8f1.woff2 new file mode 100644 index 000000000..de1f47e0f Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ExtraBoldItalic-af77bf595192df4831219ba01376a8f1.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-4f455a692d1e9189a61de68c92a81cf1.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-4f455a692d1e9189a61de68c92a81cf1.eot new file mode 100644 index 000000000..5ad1bf16f Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-4f455a692d1e9189a61de68c92a81cf1.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-936614df2a299d4674cbfd2cca01a2a3.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-936614df2a299d4674cbfd2cca01a2a3.woff2 new file mode 100644 index 000000000..7e11516c0 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-936614df2a299d4674cbfd2cca01a2a3.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-c49c55590d786173785cfaccabc37bef.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-c49c55590d786173785cfaccabc37bef.woff new file mode 100644 index 000000000..a7bfa50a3 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Medium-c49c55590d786173785cfaccabc37bef.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-8e5ec653a7a1dc4149bffd2080fc25b7.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-8e5ec653a7a1dc4149bffd2080fc25b7.woff2 new file mode 100644 index 000000000..3f6285784 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-8e5ec653a7a1dc4149bffd2080fc25b7.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-a0c44bc7502d40d44c56b273ad5d0c0a.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-a0c44bc7502d40d44c56b273ad5d0c0a.woff new file mode 100644 index 000000000..632571a61 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-a0c44bc7502d40d44c56b273ad5d0c0a.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-be799e7d956fcc3f658116c8e0213c3b.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-be799e7d956fcc3f658116c8e0213c3b.eot new file mode 100644 index 000000000..e9745b640 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-MediumItalic-be799e7d956fcc3f658116c8e0213c3b.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-30f5f23cfdebbcc7eaa4ef33f2702b35.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-30f5f23cfdebbcc7eaa4ef33f2702b35.woff new file mode 100644 index 000000000..8665c36b8 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-30f5f23cfdebbcc7eaa4ef33f2702b35.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-4abdde0a08016d7d01e1c682a6d410f9.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-4abdde0a08016d7d01e1c682a6d410f9.eot new file mode 100644 index 000000000..008b50561 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-4abdde0a08016d7d01e1c682a6d410f9.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-edb0e1fdea9c72b180ede6590b58c7b7.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-edb0e1fdea9c72b180ede6590b58c7b7.woff2 new file mode 100644 index 000000000..8ab419bc9 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Regular-edb0e1fdea9c72b180ede6590b58c7b7.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-739251107122f8a9d4b28be5cd425b49.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-739251107122f8a9d4b28be5cd425b49.woff2 new file mode 100644 index 000000000..821e392da Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-739251107122f8a9d4b28be5cd425b49.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ddb7d295acc69d6d69ca083f86ad0978.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ddb7d295acc69d6d69ca083f86ad0978.eot new file mode 100644 index 000000000..4be4756f1 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ddb7d295acc69d6d69ca083f86ad0978.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ecb7629001bbd5f1f2979fcb5c804dec.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ecb7629001bbd5f1f2979fcb5c804dec.woff new file mode 100644 index 000000000..a091c4ef6 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-RegularItalic-ecb7629001bbd5f1f2979fcb5c804dec.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-2f2dac3656379ce30aa62d06c7c2af40.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-2f2dac3656379ce30aa62d06c7c2af40.woff2 new file mode 100644 index 000000000..5f23942b0 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-2f2dac3656379ce30aa62d06c7c2af40.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-4a55918bda7715adff5b337a397bddd4.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-4a55918bda7715adff5b337a397bddd4.woff new file mode 100644 index 000000000..ba7132b7d Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-4a55918bda7715adff5b337a397bddd4.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-512f7b3a1b88410963a74fb1e6733280.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-512f7b3a1b88410963a74fb1e6733280.eot new file mode 100644 index 000000000..fc9bb7232 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Thin-512f7b3a1b88410963a74fb1e6733280.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-058364e1af8c7274e8e25cab7d6a61b3.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-058364e1af8c7274e8e25cab7d6a61b3.woff new file mode 100644 index 000000000..0c2191c79 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-058364e1af8c7274e8e25cab7d6a61b3.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-66300dad8f3be822016dab0e8a3129c2.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-66300dad8f3be822016dab0e8a3129c2.eot new file mode 100644 index 000000000..523f4f9e5 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-66300dad8f3be822016dab0e8a3129c2.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-78b9bf68d33abe17087e25d132b2dd42.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-78b9bf68d33abe17087e25d132b2dd42.woff2 new file mode 100644 index 000000000..61fde1aa1 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-ThinItalic-78b9bf68d33abe17087e25d132b2dd42.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-74c0413bfee11522f66f9ef31ecd6fe8.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-74c0413bfee11522f66f9ef31ecd6fe8.woff new file mode 100644 index 000000000..ab58008cd Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-74c0413bfee11522f66f9ef31ecd6fe8.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-967530afc6f0e386b57a879a834b4c34.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-967530afc6f0e386b57a879a834b4c34.woff2 new file mode 100644 index 000000000..85b731c58 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-967530afc6f0e386b57a879a834b4c34.woff2 differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-a9366b2b35f46d5e87cc8d923d22363d.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-a9366b2b35f46d5e87cc8d923d22363d.eot new file mode 100644 index 000000000..f7203d534 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-Ultra-a9366b2b35f46d5e87cc8d923d22363d.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-8ac213441645987235cd1df05d6e4ee1.woff b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-8ac213441645987235cd1df05d6e4ee1.woff new file mode 100644 index 000000000..9013ac533 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-8ac213441645987235cd1df05d6e4ee1.woff differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-adbabf3d2906401e0ed73e5147c6fe4e.eot b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-adbabf3d2906401e0ed73e5147c6fe4e.eot new file mode 100644 index 000000000..6ce533180 Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-adbabf3d2906401e0ed73e5147c6fe4e.eot differ diff --git a/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-e366be7fbdd0d4c9534ce8f3e910ddab.woff2 b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-e366be7fbdd0d4c9534ce8f3e910ddab.woff2 new file mode 100644 index 000000000..67b77720f Binary files /dev/null and b/pr-preview/pr-186/assets/fonts/TeleNeoWeb-UltraItalic-e366be7fbdd0d4c9534ce8f3e910ddab.woff2 differ diff --git a/pr-preview/pr-186/assets/images/1_-MaxuCNpIezRgFm-VQZ_ow-bf2e0c6ee7b0792598eeeef0c0764dfe.webp b/pr-preview/pr-186/assets/images/1_-MaxuCNpIezRgFm-VQZ_ow-bf2e0c6ee7b0792598eeeef0c0764dfe.webp new file mode 100644 index 000000000..d65a38e7d Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_-MaxuCNpIezRgFm-VQZ_ow-bf2e0c6ee7b0792598eeeef0c0764dfe.webp differ diff --git a/pr-preview/pr-186/assets/images/1_0ILMUg1ZbO5W--NfKjkeWQ-140a6ab61457342e15eeb7278d8d8ed8.webp b/pr-preview/pr-186/assets/images/1_0ILMUg1ZbO5W--NfKjkeWQ-140a6ab61457342e15eeb7278d8d8ed8.webp new file mode 100644 index 000000000..34338daf1 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_0ILMUg1ZbO5W--NfKjkeWQ-140a6ab61457342e15eeb7278d8d8ed8.webp differ diff --git a/pr-preview/pr-186/assets/images/1_0WVdeJICkfrez73x43r1bQ-1a319e50f1be62452a55afb25e6c0e05.webp b/pr-preview/pr-186/assets/images/1_0WVdeJICkfrez73x43r1bQ-1a319e50f1be62452a55afb25e6c0e05.webp new file mode 100644 index 000000000..a303cc9a0 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_0WVdeJICkfrez73x43r1bQ-1a319e50f1be62452a55afb25e6c0e05.webp differ diff --git a/pr-preview/pr-186/assets/images/1_JhD38QI651EA3UW_LYF_qg-568e81d89e23fc64bb3525f082a5ff45.webp b/pr-preview/pr-186/assets/images/1_JhD38QI651EA3UW_LYF_qg-568e81d89e23fc64bb3525f082a5ff45.webp new file mode 100644 index 000000000..7f08338d6 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_JhD38QI651EA3UW_LYF_qg-568e81d89e23fc64bb3525f082a5ff45.webp differ diff --git a/pr-preview/pr-186/assets/images/1_QQU5x7QDEmOBj95hOiAaAw-cbea7f9a540c32f7c4475240defb3aa0.webp b/pr-preview/pr-186/assets/images/1_QQU5x7QDEmOBj95hOiAaAw-cbea7f9a540c32f7c4475240defb3aa0.webp new file mode 100644 index 000000000..01eb82dd3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_QQU5x7QDEmOBj95hOiAaAw-cbea7f9a540c32f7c4475240defb3aa0.webp differ diff --git a/pr-preview/pr-186/assets/images/1_R2CxfRgIMj9uXGzYMcA0GA-14fb92208510905d370be5e0643b6baa.webp b/pr-preview/pr-186/assets/images/1_R2CxfRgIMj9uXGzYMcA0GA-14fb92208510905d370be5e0643b6baa.webp new file mode 100644 index 000000000..3dbcdda9e Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_R2CxfRgIMj9uXGzYMcA0GA-14fb92208510905d370be5e0643b6baa.webp differ diff --git a/pr-preview/pr-186/assets/images/1_SL6Snpm9qU_ubI3DrfPskA-62f15d3f02a4b3cbb1db9a01d20d304f.webp b/pr-preview/pr-186/assets/images/1_SL6Snpm9qU_ubI3DrfPskA-62f15d3f02a4b3cbb1db9a01d20d304f.webp new file mode 100644 index 000000000..a34073c5b Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_SL6Snpm9qU_ubI3DrfPskA-62f15d3f02a4b3cbb1db9a01d20d304f.webp differ diff --git a/pr-preview/pr-186/assets/images/1_bPVWpLNj1oS71KIZQI6A9Q-111bb016228ad320c95c4f79a7776cd6.webp b/pr-preview/pr-186/assets/images/1_bPVWpLNj1oS71KIZQI6A9Q-111bb016228ad320c95c4f79a7776cd6.webp new file mode 100644 index 000000000..047927770 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_bPVWpLNj1oS71KIZQI6A9Q-111bb016228ad320c95c4f79a7776cd6.webp differ diff --git a/pr-preview/pr-186/assets/images/1_be63glOSUO7fwc21h1KVDA-56d50840c4e98ecde749b25ecea34780.webp b/pr-preview/pr-186/assets/images/1_be63glOSUO7fwc21h1KVDA-56d50840c4e98ecde749b25ecea34780.webp new file mode 100644 index 000000000..e3c9a20e4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_be63glOSUO7fwc21h1KVDA-56d50840c4e98ecde749b25ecea34780.webp differ diff --git a/pr-preview/pr-186/assets/images/1_dSCLtTxGHOeAawTkJGI0lg-4d79a8103bfa9f44d4f2113011e1481b.webp b/pr-preview/pr-186/assets/images/1_dSCLtTxGHOeAawTkJGI0lg-4d79a8103bfa9f44d4f2113011e1481b.webp new file mode 100644 index 000000000..551a22f5c Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_dSCLtTxGHOeAawTkJGI0lg-4d79a8103bfa9f44d4f2113011e1481b.webp differ diff --git a/pr-preview/pr-186/assets/images/1_dxVzmGkmFHgkuyJmW1VK3g-6316d9334084b8b0c0d1078316fe867b.webp b/pr-preview/pr-186/assets/images/1_dxVzmGkmFHgkuyJmW1VK3g-6316d9334084b8b0c0d1078316fe867b.webp new file mode 100644 index 000000000..7e938b7e4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_dxVzmGkmFHgkuyJmW1VK3g-6316d9334084b8b0c0d1078316fe867b.webp differ diff --git a/pr-preview/pr-186/assets/images/1_m6H5W8D5FxdxunL0PYZjmQ-69a353a5df0b1f91b5efc4a7e9d215b9.webp b/pr-preview/pr-186/assets/images/1_m6H5W8D5FxdxunL0PYZjmQ-69a353a5df0b1f91b5efc4a7e9d215b9.webp new file mode 100644 index 000000000..206a2e379 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_m6H5W8D5FxdxunL0PYZjmQ-69a353a5df0b1f91b5efc4a7e9d215b9.webp differ diff --git a/pr-preview/pr-186/assets/images/1_m8J4oWftIIhbRunvacQ9JA-1a8b6fb216e19b7672bca0fd3526a0fa.webp b/pr-preview/pr-186/assets/images/1_m8J4oWftIIhbRunvacQ9JA-1a8b6fb216e19b7672bca0fd3526a0fa.webp new file mode 100644 index 000000000..8e6ddcdb6 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_m8J4oWftIIhbRunvacQ9JA-1a8b6fb216e19b7672bca0fd3526a0fa.webp differ diff --git a/pr-preview/pr-186/assets/images/1_t_0OqRNB4kaMlbUpQZkshQ-b5eb9d96d1ef52b82660dbfc50f553ce.webp b/pr-preview/pr-186/assets/images/1_t_0OqRNB4kaMlbUpQZkshQ-b5eb9d96d1ef52b82660dbfc50f553ce.webp new file mode 100644 index 000000000..0a072258f Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_t_0OqRNB4kaMlbUpQZkshQ-b5eb9d96d1ef52b82660dbfc50f553ce.webp differ diff --git a/pr-preview/pr-186/assets/images/1_x7vfbTFPrJDX9n99xuigmw-bfad1fc6310e353a1107dbecf4a40269.webp b/pr-preview/pr-186/assets/images/1_x7vfbTFPrJDX9n99xuigmw-bfad1fc6310e353a1107dbecf4a40269.webp new file mode 100644 index 000000000..a1b9d6bf7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/1_x7vfbTFPrJDX9n99xuigmw-bfad1fc6310e353a1107dbecf4a40269.webp differ diff --git a/pr-preview/pr-186/assets/images/Bild2-2cac1f4461e7160d13a8908a9085dbfa.png b/pr-preview/pr-186/assets/images/Bild2-2cac1f4461e7160d13a8908a9085dbfa.png new file mode 100644 index 000000000..4890bdd1f Binary files /dev/null and b/pr-preview/pr-186/assets/images/Bild2-2cac1f4461e7160d13a8908a9085dbfa.png differ diff --git a/pr-preview/pr-186/assets/images/Bild3-4be62a8fe4a44e0d849cbca2e82e2fa1.png b/pr-preview/pr-186/assets/images/Bild3-4be62a8fe4a44e0d849cbca2e82e2fa1.png new file mode 100644 index 000000000..47e28b00f Binary files /dev/null and b/pr-preview/pr-186/assets/images/Bild3-4be62a8fe4a44e0d849cbca2e82e2fa1.png differ diff --git a/pr-preview/pr-186/assets/images/Bild4-3c20358a78940ea89e0689f535f58337.png b/pr-preview/pr-186/assets/images/Bild4-3c20358a78940ea89e0689f535f58337.png new file mode 100644 index 000000000..aa0270671 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Bild4-3c20358a78940ea89e0689f535f58337.png differ diff --git a/pr-preview/pr-186/assets/images/Bild5-2064d7562db3010231e6b4529bea5d72.png b/pr-preview/pr-186/assets/images/Bild5-2064d7562db3010231e6b4529bea5d72.png new file mode 100644 index 000000000..a86e15e7c Binary files /dev/null and b/pr-preview/pr-186/assets/images/Bild5-2064d7562db3010231e6b4529bea5d72.png differ diff --git a/pr-preview/pr-186/assets/images/Bild6-c412e4526b8916dfe9ef04eeea4f881d.png b/pr-preview/pr-186/assets/images/Bild6-c412e4526b8916dfe9ef04eeea4f881d.png new file mode 100644 index 000000000..fa4526fae Binary files /dev/null and b/pr-preview/pr-186/assets/images/Bild6-c412e4526b8916dfe9ef04eeea4f881d.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231208-ezg-dc0935df86fc3db25c3bf18e475f910b.png b/pr-preview/pr-186/assets/images/SCR-20231208-ezg-dc0935df86fc3db25c3bf18e475f910b.png new file mode 100644 index 000000000..e27133867 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231208-ezg-dc0935df86fc3db25c3bf18e475f910b.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231208-fh3-aba0718b1c45f1e4434c9d089928f5ea.png b/pr-preview/pr-186/assets/images/SCR-20231208-fh3-aba0718b1c45f1e4434c9d089928f5ea.png new file mode 100644 index 000000000..d68488823 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231208-fh3-aba0718b1c45f1e4434c9d089928f5ea.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231208-k2x-69db699e4fdd4a2e04d6ae384f4dcb70.png b/pr-preview/pr-186/assets/images/SCR-20231208-k2x-69db699e4fdd4a2e04d6ae384f4dcb70.png new file mode 100644 index 000000000..c2dcb755a Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231208-k2x-69db699e4fdd4a2e04d6ae384f4dcb70.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231208-k8t-197173f09467b4b5b2898a3f56cbf140.png b/pr-preview/pr-186/assets/images/SCR-20231208-k8t-197173f09467b4b5b2898a3f56cbf140.png new file mode 100644 index 000000000..c309d707c Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231208-k8t-197173f09467b4b5b2898a3f56cbf140.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231208-ka7-c4da47db72eb78e7b3db4ab32b2107ae.png b/pr-preview/pr-186/assets/images/SCR-20231208-ka7-c4da47db72eb78e7b3db4ab32b2107ae.png new file mode 100644 index 000000000..4a2df80bf Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231208-ka7-c4da47db72eb78e7b3db4ab32b2107ae.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-di1-d76805f807269b701b20cfb91c660321.png b/pr-preview/pr-186/assets/images/SCR-20231211-di1-d76805f807269b701b20cfb91c660321.png new file mode 100644 index 000000000..87140d688 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-di1-d76805f807269b701b20cfb91c660321.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-f5u-7a85e011210a573a141dfcb1fe2cbb37.png b/pr-preview/pr-186/assets/images/SCR-20231211-f5u-7a85e011210a573a141dfcb1fe2cbb37.png new file mode 100644 index 000000000..64a079295 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-f5u-7a85e011210a573a141dfcb1fe2cbb37.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-ffb-c3e1bcc9f3ab9c8d78008f5b466cb91f.png b/pr-preview/pr-186/assets/images/SCR-20231211-ffb-c3e1bcc9f3ab9c8d78008f5b466cb91f.png new file mode 100644 index 000000000..66cb2965e Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-ffb-c3e1bcc9f3ab9c8d78008f5b466cb91f.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-fj8-4eb6e51091814ee6b12cb632394f5fe2.png b/pr-preview/pr-186/assets/images/SCR-20231211-fj8-4eb6e51091814ee6b12cb632394f5fe2.png new file mode 100644 index 000000000..9f91553f4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-fj8-4eb6e51091814ee6b12cb632394f5fe2.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-fp6-8a560149b7f7389e0dccb3d85317b310.png b/pr-preview/pr-186/assets/images/SCR-20231211-fp6-8a560149b7f7389e0dccb3d85317b310.png new file mode 100644 index 000000000..715d0e98e Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-fp6-8a560149b7f7389e0dccb3d85317b310.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-g7y-fd08313314be51ab168179be8402cf02.png b/pr-preview/pr-186/assets/images/SCR-20231211-g7y-fd08313314be51ab168179be8402cf02.png new file mode 100644 index 000000000..8e6935d38 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-g7y-fd08313314be51ab168179be8402cf02.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-i88-b8344560a68f1ec85b2c88ba65f160c0.png b/pr-preview/pr-186/assets/images/SCR-20231211-i88-b8344560a68f1ec85b2c88ba65f160c0.png new file mode 100644 index 000000000..1b980b486 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-i88-b8344560a68f1ec85b2c88ba65f160c0.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231211-ni4-6ff6d493b331ceddc9ec291272cdc933.png b/pr-preview/pr-186/assets/images/SCR-20231211-ni4-6ff6d493b331ceddc9ec291272cdc933.png new file mode 100644 index 000000000..ffaf6ced1 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231211-ni4-6ff6d493b331ceddc9ec291272cdc933.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-df8-a5fedeacf3d1234d1ccd488ab5c1955d.png b/pr-preview/pr-186/assets/images/SCR-20231212-df8-a5fedeacf3d1234d1ccd488ab5c1955d.png new file mode 100644 index 000000000..ad58e7f81 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-df8-a5fedeacf3d1234d1ccd488ab5c1955d.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-dfp-6f9f9fd0dc58c2e8f39845f26f22f237.png b/pr-preview/pr-186/assets/images/SCR-20231212-dfp-6f9f9fd0dc58c2e8f39845f26f22f237.png new file mode 100644 index 000000000..1d41c0e2f Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-dfp-6f9f9fd0dc58c2e8f39845f26f22f237.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-dsj-e0806146ec35d5f2e8fe075c346eb483.png b/pr-preview/pr-186/assets/images/SCR-20231212-dsj-e0806146ec35d5f2e8fe075c346eb483.png new file mode 100644 index 000000000..565b30020 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-dsj-e0806146ec35d5f2e8fe075c346eb483.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-fhq-9cd0b2e1497be6bfefa9a83b05acbd49.png b/pr-preview/pr-186/assets/images/SCR-20231212-fhq-9cd0b2e1497be6bfefa9a83b05acbd49.png new file mode 100644 index 000000000..cd95f9168 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-fhq-9cd0b2e1497be6bfefa9a83b05acbd49.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-mfl-0328d7c11fd4f52fea290bba1a96eb78.png b/pr-preview/pr-186/assets/images/SCR-20231212-mfl-0328d7c11fd4f52fea290bba1a96eb78.png new file mode 100644 index 000000000..8750c9c57 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-mfl-0328d7c11fd4f52fea290bba1a96eb78.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-mmx-ef555b9fc41473378fb98d834d9a3e0e.png b/pr-preview/pr-186/assets/images/SCR-20231212-mmx-ef555b9fc41473378fb98d834d9a3e0e.png new file mode 100644 index 000000000..7221942aa Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-mmx-ef555b9fc41473378fb98d834d9a3e0e.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-mr5-7be1dd3243dc3d4006da460679d9173b.png b/pr-preview/pr-186/assets/images/SCR-20231212-mr5-7be1dd3243dc3d4006da460679d9173b.png new file mode 100644 index 000000000..b98f3fe52 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-mr5-7be1dd3243dc3d4006da460679d9173b.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-n0d-9d378c9cd3aeaae74e4ca835cf557e86.png b/pr-preview/pr-186/assets/images/SCR-20231212-n0d-9d378c9cd3aeaae74e4ca835cf557e86.png new file mode 100644 index 000000000..b0ee85ab6 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-n0d-9d378c9cd3aeaae74e4ca835cf557e86.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-n0n-c081cef89288838051b0077c02d0cbf3.png b/pr-preview/pr-186/assets/images/SCR-20231212-n0n-c081cef89288838051b0077c02d0cbf3.png new file mode 100644 index 000000000..13043dddd Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-n0n-c081cef89288838051b0077c02d0cbf3.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-n15-43ff3835aeda24903d9e5ccd1b6d5519.png b/pr-preview/pr-186/assets/images/SCR-20231212-n15-43ff3835aeda24903d9e5ccd1b6d5519.png new file mode 100644 index 000000000..00d884c89 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-n15-43ff3835aeda24903d9e5ccd1b6d5519.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-n1w-ffa32c8afe1a0f81c5cfc24df1db87b5.png b/pr-preview/pr-186/assets/images/SCR-20231212-n1w-ffa32c8afe1a0f81c5cfc24df1db87b5.png new file mode 100644 index 000000000..1074b2ba3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-n1w-ffa32c8afe1a0f81c5cfc24df1db87b5.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-n8b-188f62a44d8d48fe09ad89fd768cefd5.png b/pr-preview/pr-186/assets/images/SCR-20231212-n8b-188f62a44d8d48fe09ad89fd768cefd5.png new file mode 100644 index 000000000..625ec41dd Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-n8b-188f62a44d8d48fe09ad89fd768cefd5.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-ngd-3b38fdb11455d2f365690dd4a46ee3fe.png b/pr-preview/pr-186/assets/images/SCR-20231212-ngd-3b38fdb11455d2f365690dd4a46ee3fe.png new file mode 100644 index 000000000..8e3923088 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-ngd-3b38fdb11455d2f365690dd4a46ee3fe.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-nj4-75bee1baebbe88ad21fb7d2ca72206f7.png b/pr-preview/pr-186/assets/images/SCR-20231212-nj4-75bee1baebbe88ad21fb7d2ca72206f7.png new file mode 100644 index 000000000..824e9b2a7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-nj4-75bee1baebbe88ad21fb7d2ca72206f7.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-nq7-820de863556c25f39dd1b5ce803273b8.png b/pr-preview/pr-186/assets/images/SCR-20231212-nq7-820de863556c25f39dd1b5ce803273b8.png new file mode 100644 index 000000000..d54fe61bb Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-nq7-820de863556c25f39dd1b5ce803273b8.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-nw9-8a535cf8a63baff8a849d0f7a2354e23.png b/pr-preview/pr-186/assets/images/SCR-20231212-nw9-8a535cf8a63baff8a849d0f7a2354e23.png new file mode 100644 index 000000000..d001c5a5e Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-nw9-8a535cf8a63baff8a849d0f7a2354e23.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-o7i-e4ae59956321b156c088e37f19ad38be.png b/pr-preview/pr-186/assets/images/SCR-20231212-o7i-e4ae59956321b156c088e37f19ad38be.png new file mode 100644 index 000000000..6de4fece8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-o7i-e4ae59956321b156c088e37f19ad38be.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20231212-och-5478fcf68933879135aac4b087ae2669.png b/pr-preview/pr-186/assets/images/SCR-20231212-och-5478fcf68933879135aac4b087ae2669.png new file mode 100644 index 000000000..41a447b72 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20231212-och-5478fcf68933879135aac4b087ae2669.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240122-k0w-f7c7fa4da2685c3b8d10a971c0b65d76.png b/pr-preview/pr-186/assets/images/SCR-20240122-k0w-f7c7fa4da2685c3b8d10a971c0b65d76.png new file mode 100644 index 000000000..b444b1a1e Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240122-k0w-f7c7fa4da2685c3b8d10a971c0b65d76.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240122-k1y-687118ef9aaf74455078b148b47fa22b.png b/pr-preview/pr-186/assets/images/SCR-20240122-k1y-687118ef9aaf74455078b148b47fa22b.png new file mode 100644 index 000000000..d8c57f557 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240122-k1y-687118ef9aaf74455078b148b47fa22b.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240122-k3x-1cfa8fa105950a273a92eb39cbbdd762.png b/pr-preview/pr-186/assets/images/SCR-20240122-k3x-1cfa8fa105950a273a92eb39cbbdd762.png new file mode 100644 index 000000000..fa2020eb3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240122-k3x-1cfa8fa105950a273a92eb39cbbdd762.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240122-k68-22b2afaed8c7a3104b5a71e97bea44dc.png b/pr-preview/pr-186/assets/images/SCR-20240122-k68-22b2afaed8c7a3104b5a71e97bea44dc.png new file mode 100644 index 000000000..007661a98 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240122-k68-22b2afaed8c7a3104b5a71e97bea44dc.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240122-k76-7658673ce276a2ef4bd39af5b187d28c.png b/pr-preview/pr-186/assets/images/SCR-20240122-k76-7658673ce276a2ef4bd39af5b187d28c.png new file mode 100644 index 000000000..737241c55 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240122-k76-7658673ce276a2ef4bd39af5b187d28c.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240201-erg-8a70895f273613c8dd516dade991698a.png b/pr-preview/pr-186/assets/images/SCR-20240201-erg-8a70895f273613c8dd516dade991698a.png new file mode 100644 index 000000000..489941598 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240201-erg-8a70895f273613c8dd516dade991698a.png differ diff --git a/pr-preview/pr-186/assets/images/SCR-20240201-k76-d31836c3492da539e4289e4d885cebab.png b/pr-preview/pr-186/assets/images/SCR-20240201-k76-d31836c3492da539e4289e4d885cebab.png new file mode 100644 index 000000000..41b9a7430 Binary files /dev/null and b/pr-preview/pr-186/assets/images/SCR-20240201-k76-d31836c3492da539e4289e4d885cebab.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-07 11-33-33-5c50ba1a71dd86f605a7fb38662afdd8.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-07 11-33-33-5c50ba1a71dd86f605a7fb38662afdd8.png new file mode 100644 index 000000000..e6875e2a7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-07 11-33-33-5c50ba1a71dd86f605a7fb38662afdd8.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 13-53-46-4f318fda9a47444235f3427239019645.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 13-53-46-4f318fda9a47444235f3427239019645.png new file mode 100644 index 000000000..9b03ad0e5 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 13-53-46-4f318fda9a47444235f3427239019645.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-03-16-24aa5365d66fc8d76623afb90b90e54d.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-03-16-24aa5365d66fc8d76623afb90b90e54d.png new file mode 100644 index 000000000..b81f06fa8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-03-16-24aa5365d66fc8d76623afb90b90e54d.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-10-01-c41986ffd22ab5902b77d69c31693df0.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-10-01-c41986ffd22ab5902b77d69c31693df0.png new file mode 100644 index 000000000..12fc3cc60 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-10-01-c41986ffd22ab5902b77d69c31693df0.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-12-28-0193458b15b4951e390b09835de0e24e.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-12-28-0193458b15b4951e390b09835de0e24e.png new file mode 100644 index 000000000..a12d7c4a2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-12-28-0193458b15b4951e390b09835de0e24e.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-16-19-5c98dae3a20fb1315ccd921e8b980cd3.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-16-19-5c98dae3a20fb1315ccd921e8b980cd3.png new file mode 100644 index 000000000..ee5dc3cc5 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-09 14-16-19-5c98dae3a20fb1315ccd921e8b980cd3.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 12-40-41-48046a1cc376d9140e88829a281f11d2.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 12-40-41-48046a1cc376d9140e88829a281f11d2.png new file mode 100644 index 000000000..855911c4d Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 12-40-41-48046a1cc376d9140e88829a281f11d2.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 12-47-36-76318568b043049279dc040ae9d07808.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 12-47-36-76318568b043049279dc040ae9d07808.png new file mode 100644 index 000000000..b35f53ab4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 12-47-36-76318568b043049279dc040ae9d07808.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 13-14-30-b2155a9abea98f8f2ab02d61100e09e1.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 13-14-30-b2155a9abea98f8f2ab02d61100e09e1.png new file mode 100644 index 000000000..cc7e34fa2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 13-14-30-b2155a9abea98f8f2ab02d61100e09e1.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-32-38-565246c0f934d660226ff7f35f41b3d6.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-32-38-565246c0f934d660226ff7f35f41b3d6.png new file mode 100644 index 000000000..febfc2e74 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-32-38-565246c0f934d660226ff7f35f41b3d6.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-38-26-c34991ddcef9a545bc47ba885fb3fe3d.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-38-26-c34991ddcef9a545bc47ba885fb3fe3d.png new file mode 100644 index 000000000..3e832d7eb Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-38-26-c34991ddcef9a545bc47ba885fb3fe3d.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-38-50-c76eef3d86b407faf2127d5fe170d77d.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-38-50-c76eef3d86b407faf2127d5fe170d77d.png new file mode 100644 index 000000000..439acacfc Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-38-50-c76eef3d86b407faf2127d5fe170d77d.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-09-405897246fe08908445ba62465589f19.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-09-405897246fe08908445ba62465589f19.png new file mode 100644 index 000000000..8e062e1de Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-09-405897246fe08908445ba62465589f19.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-38-7c470b84a97f63e1215a59ca58e98ffc.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-38-7c470b84a97f63e1215a59ca58e98ffc.png new file mode 100644 index 000000000..5ec0dba61 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-38-7c470b84a97f63e1215a59ca58e98ffc.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-50-2cc97d77af570ce26e2dec2190be4461.png b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-50-2cc97d77af570ce26e2dec2190be4461.png new file mode 100644 index 000000000..da9aa90cc Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot from 2024-09-10 14-39-50-2cc97d77af570ce26e2dec2190be4461.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot-Admin-authentik-e3f638178fb2b12a27a9cc839477c714.png b/pr-preview/pr-186/assets/images/Screenshot-Admin-authentik-e3f638178fb2b12a27a9cc839477c714.png new file mode 100644 index 000000000..e734fbe75 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot-Admin-authentik-e3f638178fb2b12a27a9cc839477c714.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot-chpassword-authentik-d55a64f9a68c01abcd61c4688efeca32.png b/pr-preview/pr-186/assets/images/Screenshot-chpassword-authentik-d55a64f9a68c01abcd61c4688efeca32.png new file mode 100644 index 000000000..e442ab8aa Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot-chpassword-authentik-d55a64f9a68c01abcd61c4688efeca32.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot_from_2024-09-09_12-51-39-d8de9e5f86691bbad206531018ea4238.png b/pr-preview/pr-186/assets/images/Screenshot_from_2024-09-09_12-51-39-d8de9e5f86691bbad206531018ea4238.png new file mode 100644 index 000000000..cfc0987d9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot_from_2024-09-09_12-51-39-d8de9e5f86691bbad206531018ea4238.png differ diff --git a/pr-preview/pr-186/assets/images/Screenshot_from_2024-09-09_12-52-14-75a03a7b900274a63da2848fcd41f778.png b/pr-preview/pr-186/assets/images/Screenshot_from_2024-09-09_12-52-14-75a03a7b900274a63da2848fcd41f778.png new file mode 100644 index 000000000..68304019b Binary files /dev/null and b/pr-preview/pr-186/assets/images/Screenshot_from_2024-09-09_12-52-14-75a03a7b900274a63da2848fcd41f778.png differ diff --git a/pr-preview/pr-186/assets/images/architecture-6bd62323d52fee0bc67f47dd716c1ebb.png b/pr-preview/pr-186/assets/images/architecture-6bd62323d52fee0bc67f47dd716c1ebb.png new file mode 100644 index 000000000..c7b504201 Binary files /dev/null and b/pr-preview/pr-186/assets/images/architecture-6bd62323d52fee0bc67f47dd716c1ebb.png differ diff --git a/pr-preview/pr-186/assets/images/authentik-idp-urls-7f77c2352c992311b5056ea16b4c5d6c.png b/pr-preview/pr-186/assets/images/authentik-idp-urls-7f77c2352c992311b5056ea16b4c5d6c.png new file mode 100644 index 000000000..86bb69011 Binary files /dev/null and b/pr-preview/pr-186/assets/images/authentik-idp-urls-7f77c2352c992311b5056ea16b4c5d6c.png differ diff --git a/pr-preview/pr-186/assets/images/configure-groups-enrollment-stage-f4eb57fb4d17b147a1af5b77bc69184f.png b/pr-preview/pr-186/assets/images/configure-groups-enrollment-stage-f4eb57fb4d17b147a1af5b77bc69184f.png new file mode 100644 index 000000000..c2debf39c Binary files /dev/null and b/pr-preview/pr-186/assets/images/configure-groups-enrollment-stage-f4eb57fb4d17b147a1af5b77bc69184f.png differ diff --git a/pr-preview/pr-186/assets/images/configure-idp-iam-4261ba45531697b3957504233ae4d698.png b/pr-preview/pr-186/assets/images/configure-idp-iam-4261ba45531697b3957504233ae4d698.png new file mode 100644 index 000000000..0c90f3b1d Binary files /dev/null and b/pr-preview/pr-186/assets/images/configure-idp-iam-4261ba45531697b3957504233ae4d698.png differ diff --git a/pr-preview/pr-186/assets/images/create-application-2faf12d57412f93ce7093d2a5c24a9c7.png b/pr-preview/pr-186/assets/images/create-application-2faf12d57412f93ce7093d2a5c24a9c7.png new file mode 100644 index 000000000..bbef3e87f Binary files /dev/null and b/pr-preview/pr-186/assets/images/create-application-2faf12d57412f93ce7093d2a5c24a9c7.png differ diff --git a/pr-preview/pr-186/assets/images/create-group-67f8abb7880837fedd8f61737f82aa4f.png b/pr-preview/pr-186/assets/images/create-group-67f8abb7880837fedd8f61737f82aa4f.png new file mode 100644 index 000000000..8efa27dde Binary files /dev/null and b/pr-preview/pr-186/assets/images/create-group-67f8abb7880837fedd8f61737f82aa4f.png differ diff --git a/pr-preview/pr-186/assets/images/create-idp-iam-820de863556c25f39dd1b5ce803273b8.png b/pr-preview/pr-186/assets/images/create-idp-iam-820de863556c25f39dd1b5ce803273b8.png new file mode 100644 index 000000000..d54fe61bb Binary files /dev/null and b/pr-preview/pr-186/assets/images/create-idp-iam-820de863556c25f39dd1b5ce803273b8.png differ diff --git a/pr-preview/pr-186/assets/images/create-oauth-cc269ceb65d168b0779eb3c7959bb07f.png b/pr-preview/pr-186/assets/images/create-oauth-cc269ceb65d168b0779eb3c7959bb07f.png new file mode 100644 index 000000000..6a873e120 Binary files /dev/null and b/pr-preview/pr-186/assets/images/create-oauth-cc269ceb65d168b0779eb3c7959bb07f.png differ diff --git a/pr-preview/pr-186/assets/images/edit-conversion-rules-16d658829b8158b7cc7ce130122b4c81.png b/pr-preview/pr-186/assets/images/edit-conversion-rules-16d658829b8158b7cc7ce130122b4c81.png new file mode 100644 index 000000000..6a883326b Binary files /dev/null and b/pr-preview/pr-186/assets/images/edit-conversion-rules-16d658829b8158b7cc7ce130122b4c81.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001072768952-c848bc744624e30eff0e73450826c525.png b/pr-preview/pr-186/assets/images/en-us_image_0000001072768952-c848bc744624e30eff0e73450826c525.png new file mode 100644 index 000000000..0fe0d8057 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001072768952-c848bc744624e30eff0e73450826c525.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001089261095-633fb26f35896808f68fc0fb09c97d3b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001089261095-633fb26f35896808f68fc0fb09c97d3b.png new file mode 100644 index 000000000..e77aec726 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001089261095-633fb26f35896808f68fc0fb09c97d3b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001093306041-3dea734d2ff14a052c7b569fd84f5da1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001093306041-3dea734d2ff14a052c7b569fd84f5da1.png new file mode 100644 index 000000000..7041e98c4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001093306041-3dea734d2ff14a052c7b569fd84f5da1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001109406512-731bb2c21e0a3f14f5929b9435a82930.png b/pr-preview/pr-186/assets/images/en-us_image_0000001109406512-731bb2c21e0a3f14f5929b9435a82930.png new file mode 100644 index 000000000..856d06d35 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001109406512-731bb2c21e0a3f14f5929b9435a82930.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001110063992-6da70c2b1fb6da1784c827df350c1263.png b/pr-preview/pr-186/assets/images/en-us_image_0000001110063992-6da70c2b1fb6da1784c827df350c1263.png new file mode 100644 index 000000000..55d101cf0 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001110063992-6da70c2b1fb6da1784c827df350c1263.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001110225672-7abdaf3567b4a9e8f1ecfe27218204ac.png b/pr-preview/pr-186/assets/images/en-us_image_0000001110225672-7abdaf3567b4a9e8f1ecfe27218204ac.png new file mode 100644 index 000000000..9a9c37981 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001110225672-7abdaf3567b4a9e8f1ecfe27218204ac.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001117852888-585177a20a34ff032d7edcea9f9d1496.png b/pr-preview/pr-186/assets/images/en-us_image_0000001117852888-585177a20a34ff032d7edcea9f9d1496.png new file mode 100644 index 000000000..29f20f55c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001117852888-585177a20a34ff032d7edcea9f9d1496.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001132757446-3a5f84186e7878173bc7c8c69e0b21e9.png b/pr-preview/pr-186/assets/images/en-us_image_0000001132757446-3a5f84186e7878173bc7c8c69e0b21e9.png new file mode 100644 index 000000000..6a16897ed Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001132757446-3a5f84186e7878173bc7c8c69e0b21e9.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001138989308-d00739932f445bb26755e35a3b9c295f.png b/pr-preview/pr-186/assets/images/en-us_image_0000001138989308-d00739932f445bb26755e35a3b9c295f.png new file mode 100644 index 000000000..1568fc10b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001138989308-d00739932f445bb26755e35a3b9c295f.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001151977634-d9d1c58914275a60b91c5f09e85b614b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001151977634-d9d1c58914275a60b91c5f09e85b614b.png new file mode 100644 index 000000000..80d35a308 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001151977634-d9d1c58914275a60b91c5f09e85b614b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001152137438-c0a96793d8f018cc8e22f5875ae52dd6.png b/pr-preview/pr-186/assets/images/en-us_image_0000001152137438-c0a96793d8f018cc8e22f5875ae52dd6.png new file mode 100644 index 000000000..a6da90146 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001152137438-c0a96793d8f018cc8e22f5875ae52dd6.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001156281773-4bd096e42bbc2e3425ce3eaea03e0f98.png b/pr-preview/pr-186/assets/images/en-us_image_0000001156281773-4bd096e42bbc2e3425ce3eaea03e0f98.png new file mode 100644 index 000000000..f2f21401a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001156281773-4bd096e42bbc2e3425ce3eaea03e0f98.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001160642449-2c86ff97112c5a6e54850807f5c15d5d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001160642449-2c86ff97112c5a6e54850807f5c15d5d.png new file mode 100644 index 000000000..0e64a8959 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001160642449-2c86ff97112c5a6e54850807f5c15d5d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001166068694-11457c33449d328e8bdacd18c064b362.png b/pr-preview/pr-186/assets/images/en-us_image_0000001166068694-11457c33449d328e8bdacd18c064b362.png new file mode 100644 index 000000000..106fc060c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001166068694-11457c33449d328e8bdacd18c064b362.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001176019342-8d03ab9cde1f492968e4d3c114a2cf9c.png b/pr-preview/pr-186/assets/images/en-us_image_0000001176019342-8d03ab9cde1f492968e4d3c114a2cf9c.png new file mode 100644 index 000000000..d46c18d8c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001176019342-8d03ab9cde1f492968e4d3c114a2cf9c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001182529643-b906eb6ffe7775fe87e04c4d2ec62d0e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001182529643-b906eb6ffe7775fe87e04c4d2ec62d0e.png new file mode 100644 index 000000000..be77469f7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001182529643-b906eb6ffe7775fe87e04c4d2ec62d0e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001183928408-40e8edbdbec7ecefabda83c6224a8a2d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001183928408-40e8edbdbec7ecefabda83c6224a8a2d.png new file mode 100644 index 000000000..8818ef368 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001183928408-40e8edbdbec7ecefabda83c6224a8a2d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001192108582-6cf9b09dbadc6ed382e5ba44373b4f6a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001192108582-6cf9b09dbadc6ed382e5ba44373b4f6a.png new file mode 100644 index 000000000..6afc8707e Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001192108582-6cf9b09dbadc6ed382e5ba44373b4f6a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001192109594-d7dee41d7a4eef234867d0159fb82444.png b/pr-preview/pr-186/assets/images/en-us_image_0000001192109594-d7dee41d7a4eef234867d0159fb82444.png new file mode 100644 index 000000000..bde95d815 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001192109594-d7dee41d7a4eef234867d0159fb82444.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001198097269-cfb885162dea152d27e7825ab5afcdb7.png b/pr-preview/pr-186/assets/images/en-us_image_0000001198097269-cfb885162dea152d27e7825ab5afcdb7.png new file mode 100644 index 000000000..7e65cbab2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001198097269-cfb885162dea152d27e7825ab5afcdb7.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001198097583-a8bf3a1ac67e6fe28a3e849bc1cc06da.png b/pr-preview/pr-186/assets/images/en-us_image_0000001198097583-a8bf3a1ac67e6fe28a3e849bc1cc06da.png new file mode 100644 index 000000000..8478e0e4a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001198097583-a8bf3a1ac67e6fe28a3e849bc1cc06da.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001199158158-add134b027927bc1492f8d0fac3dceb4.png b/pr-preview/pr-186/assets/images/en-us_image_0000001199158158-add134b027927bc1492f8d0fac3dceb4.png new file mode 100644 index 000000000..d4a6da189 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001199158158-add134b027927bc1492f8d0fac3dceb4.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001209300412-805c5805701b9f48b0f781dd53ebb7b1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001209300412-805c5805701b9f48b0f781dd53ebb7b1.png new file mode 100644 index 000000000..58d552913 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001209300412-805c5805701b9f48b0f781dd53ebb7b1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001209321492-5d47ed8a7bcf6905fc4a13551d48d93b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001209321492-5d47ed8a7bcf6905fc4a13551d48d93b.png new file mode 100644 index 000000000..76b341989 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001209321492-5d47ed8a7bcf6905fc4a13551d48d93b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001209777270-902ee0f1ef613b1f047b55fad93e1253.png b/pr-preview/pr-186/assets/images/en-us_image_0000001209777270-902ee0f1ef613b1f047b55fad93e1253.png new file mode 100644 index 000000000..e6e9c709a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001209777270-902ee0f1ef613b1f047b55fad93e1253.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001210912526-17ee913c0a71a155400db01c328b4ec9.png b/pr-preview/pr-186/assets/images/en-us_image_0000001210912526-17ee913c0a71a155400db01c328b4ec9.png new file mode 100644 index 000000000..afd348839 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001210912526-17ee913c0a71a155400db01c328b4ec9.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001211264689-af6841d173fe51982ba9ba9062e3ddd5.png b/pr-preview/pr-186/assets/images/en-us_image_0000001211264689-af6841d173fe51982ba9ba9062e3ddd5.png new file mode 100644 index 000000000..71ac88a7d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001211264689-af6841d173fe51982ba9ba9062e3ddd5.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001213070166-ba0dcd8d614a58d590683d6487f5f046.png b/pr-preview/pr-186/assets/images/en-us_image_0000001213070166-ba0dcd8d614a58d590683d6487f5f046.png new file mode 100644 index 000000000..4fca619f0 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001213070166-ba0dcd8d614a58d590683d6487f5f046.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001220740254-232f350a0ed64a22c8485d8836138e96.png b/pr-preview/pr-186/assets/images/en-us_image_0000001220740254-232f350a0ed64a22c8485d8836138e96.png new file mode 100644 index 000000000..93406b9fc Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001220740254-232f350a0ed64a22c8485d8836138e96.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001221220190-3daa23376bf75c814abe45d0a2692851.png b/pr-preview/pr-186/assets/images/en-us_image_0000001221220190-3daa23376bf75c814abe45d0a2692851.png new file mode 100644 index 000000000..d05d3b7fc Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001221220190-3daa23376bf75c814abe45d0a2692851.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001221308334-e2a5149aeefa35200c7f30a83e9047e1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001221308334-e2a5149aeefa35200c7f30a83e9047e1.png new file mode 100644 index 000000000..459f7c496 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001221308334-e2a5149aeefa35200c7f30a83e9047e1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001221328134-9603fc588cffe906afa7b1fad02768d4.png b/pr-preview/pr-186/assets/images/en-us_image_0000001221328134-9603fc588cffe906afa7b1fad02768d4.png new file mode 100644 index 000000000..bee6663b2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001221328134-9603fc588cffe906afa7b1fad02768d4.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001229563929-f99734290318d85ed2474046711d8d50.png b/pr-preview/pr-186/assets/images/en-us_image_0000001229563929-f99734290318d85ed2474046711d8d50.png new file mode 100644 index 000000000..2ba57cea6 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001229563929-f99734290318d85ed2474046711d8d50.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001229643735-29db17b929a5433f0f9021229b958bdc.png b/pr-preview/pr-186/assets/images/en-us_image_0000001229643735-29db17b929a5433f0f9021229b958bdc.png new file mode 100644 index 000000000..5ac97ff76 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001229643735-29db17b929a5433f0f9021229b958bdc.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001229645007-6ea1ed876b67037ffd2abc03b4f27673.png b/pr-preview/pr-186/assets/images/en-us_image_0000001229645007-6ea1ed876b67037ffd2abc03b4f27673.png new file mode 100644 index 000000000..c105cfebf Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001229645007-6ea1ed876b67037ffd2abc03b4f27673.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001229765759-51ae5a73cfd93f8089aa364bf05a0f13.png b/pr-preview/pr-186/assets/images/en-us_image_0000001229765759-51ae5a73cfd93f8089aa364bf05a0f13.png new file mode 100644 index 000000000..86bb2ab33 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001229765759-51ae5a73cfd93f8089aa364bf05a0f13.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001229765989-faabf4c2ae1f2ed29bff7e122cf4510d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001229765989-faabf4c2ae1f2ed29bff7e122cf4510d.png new file mode 100644 index 000000000..e19e1370c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001229765989-faabf4c2ae1f2ed29bff7e122cf4510d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001231321333-bb89e8d739d4a9c2840bb72f854ce8bb.png b/pr-preview/pr-186/assets/images/en-us_image_0000001231321333-bb89e8d739d4a9c2840bb72f854ce8bb.png new file mode 100644 index 000000000..8e1653a4f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001231321333-bb89e8d739d4a9c2840bb72f854ce8bb.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001236748339-c127a6235b5f0d12ed5674328f275ac1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001236748339-c127a6235b5f0d12ed5674328f275ac1.png new file mode 100644 index 000000000..b674ec472 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001236748339-c127a6235b5f0d12ed5674328f275ac1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001243756137-13a3e8f3dd9da113cbc27ea1983ecf97.png b/pr-preview/pr-186/assets/images/en-us_image_0000001243756137-13a3e8f3dd9da113cbc27ea1983ecf97.png new file mode 100644 index 000000000..88346ee74 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001243756137-13a3e8f3dd9da113cbc27ea1983ecf97.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001244078029-b2b20f28abc67ee408352606fab38a4d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001244078029-b2b20f28abc67ee408352606fab38a4d.png new file mode 100644 index 000000000..a279f1ed7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001244078029-b2b20f28abc67ee408352606fab38a4d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001251619009-cf3bb0e1b31a77675c6de772bb70129d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001251619009-cf3bb0e1b31a77675c6de772bb70129d.png new file mode 100644 index 000000000..0f5319f1e Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001251619009-cf3bb0e1b31a77675c6de772bb70129d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001251966577-8b104358976ed863fac58c2f5ec26fc1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001251966577-8b104358976ed863fac58c2f5ec26fc1.png new file mode 100644 index 000000000..c80ebd1c3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001251966577-8b104358976ed863fac58c2f5ec26fc1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001254241751-fa1d7f15829b37ad1806205a5a85aae5.png b/pr-preview/pr-186/assets/images/en-us_image_0000001254241751-fa1d7f15829b37ad1806205a5a85aae5.png new file mode 100644 index 000000000..129f7385b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001254241751-fa1d7f15829b37ad1806205a5a85aae5.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001254335981-b58a5986835047864680e63e6d979269.png b/pr-preview/pr-186/assets/images/en-us_image_0000001254335981-b58a5986835047864680e63e6d979269.png new file mode 100644 index 000000000..06af51042 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001254335981-b58a5986835047864680e63e6d979269.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001254608729-a92ec9703aa5068b2892f54ac41578cc.png b/pr-preview/pr-186/assets/images/en-us_image_0000001254608729-a92ec9703aa5068b2892f54ac41578cc.png new file mode 100644 index 000000000..476ea7c59 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001254608729-a92ec9703aa5068b2892f54ac41578cc.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001260455881-df1a36e83c9e869a119507265eb7f0d2.png b/pr-preview/pr-186/assets/images/en-us_image_0000001260455881-df1a36e83c9e869a119507265eb7f0d2.png new file mode 100644 index 000000000..93afc373e Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001260455881-df1a36e83c9e869a119507265eb7f0d2.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001261140071-dd517071923daf60d5589952f3d612e2.png b/pr-preview/pr-186/assets/images/en-us_image_0000001261140071-dd517071923daf60d5589952f3d612e2.png new file mode 100644 index 000000000..455b9d121 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001261140071-dd517071923daf60d5589952f3d612e2.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001264392960-9054719e1a3dce557972321447efaadb.png b/pr-preview/pr-186/assets/images/en-us_image_0000001264392960-9054719e1a3dce557972321447efaadb.png new file mode 100644 index 000000000..b795f157a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001264392960-9054719e1a3dce557972321447efaadb.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001264679162-167335dc9b9138298f172342e243483d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001264679162-167335dc9b9138298f172342e243483d.png new file mode 100644 index 000000000..e09cd6b68 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001264679162-167335dc9b9138298f172342e243483d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265145841-749bba47973dd4eae91c0dc4c88a8a1a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265145841-749bba47973dd4eae91c0dc4c88a8a1a.png new file mode 100644 index 000000000..78bda19e8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265145841-749bba47973dd4eae91c0dc4c88a8a1a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265465929-3384597acfc8887ec4808b1d10e8898b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265465929-3384597acfc8887ec4808b1d10e8898b.png new file mode 100644 index 000000000..5c983cf27 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265465929-3384597acfc8887ec4808b1d10e8898b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265488349-dc41f8898ab4f1aab9a2dd036fdc3af0.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265488349-dc41f8898ab4f1aab9a2dd036fdc3af0.png new file mode 100644 index 000000000..ade30d3e8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265488349-dc41f8898ab4f1aab9a2dd036fdc3af0.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265579817-e2013aaddc7d640d0e40b903ee5bc473.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265579817-e2013aaddc7d640d0e40b903ee5bc473.png new file mode 100644 index 000000000..2a64e73ca Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265579817-e2013aaddc7d640d0e40b903ee5bc473.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265646757-3f551813bee4b0091e4e5f4295a74419.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265646757-3f551813bee4b0091e4e5f4295a74419.png new file mode 100644 index 000000000..a302fd733 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265646757-3f551813bee4b0091e4e5f4295a74419.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265648321-20b6a5d21696c5dafdae228890194f74.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265648321-20b6a5d21696c5dafdae228890194f74.png new file mode 100644 index 000000000..caed2401b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265648321-20b6a5d21696c5dafdae228890194f74.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265745537-eb5aef442320fd3809ccbd755687c0d0.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265745537-eb5aef442320fd3809ccbd755687c0d0.png new file mode 100644 index 000000000..a65723cf4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265745537-eb5aef442320fd3809ccbd755687c0d0.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265924809-9b21f116b66b1c8666bd1fb85a29c267.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265924809-9b21f116b66b1c8666bd1fb85a29c267.png new file mode 100644 index 000000000..5251dce2c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265924809-9b21f116b66b1c8666bd1fb85a29c267.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001265928345-db9a28dfd60ac9225a70e1ec6e796e0b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001265928345-db9a28dfd60ac9225a70e1ec6e796e0b.png new file mode 100644 index 000000000..850967418 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001265928345-db9a28dfd60ac9225a70e1ec6e796e0b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001275281529-934199d28c95ce16c676874bd6deb93b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001275281529-934199d28c95ce16c676874bd6deb93b.png new file mode 100644 index 000000000..a7a7664f8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001275281529-934199d28c95ce16c676874bd6deb93b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001275484437-0855411de86fbf28b44d23ca3596fd01.png b/pr-preview/pr-186/assets/images/en-us_image_0000001275484437-0855411de86fbf28b44d23ca3596fd01.png new file mode 100644 index 000000000..5eaa3c180 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001275484437-0855411de86fbf28b44d23ca3596fd01.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001312436037-e3255c9a57e3bf03e77905d1bad381f0.png b/pr-preview/pr-186/assets/images/en-us_image_0000001312436037-e3255c9a57e3bf03e77905d1bad381f0.png new file mode 100644 index 000000000..799f18093 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001312436037-e3255c9a57e3bf03e77905d1bad381f0.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001348013634-93434b23a6694e0f4cadd3addf4406f2.png b/pr-preview/pr-186/assets/images/en-us_image_0000001348013634-93434b23a6694e0f4cadd3addf4406f2.png new file mode 100644 index 000000000..e35626b50 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001348013634-93434b23a6694e0f4cadd3addf4406f2.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001349490578-e2a07ad5d3c9cee247345892943d8bb6.png b/pr-preview/pr-186/assets/images/en-us_image_0000001349490578-e2a07ad5d3c9cee247345892943d8bb6.png new file mode 100644 index 000000000..14c88dded Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001349490578-e2a07ad5d3c9cee247345892943d8bb6.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001349986824-a9db074c7ecbce307e37d973599d1acd.png b/pr-preview/pr-186/assets/images/en-us_image_0000001349986824-a9db074c7ecbce307e37d973599d1acd.png new file mode 100644 index 000000000..9edac59ba Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001349986824-a9db074c7ecbce307e37d973599d1acd.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001350206690-228b28a1f746965b856d9602e488d762.png b/pr-preview/pr-186/assets/images/en-us_image_0000001350206690-228b28a1f746965b856d9602e488d762.png new file mode 100644 index 000000000..bb4c62d67 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001350206690-228b28a1f746965b856d9602e488d762.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001369344100-7ad8ecca86f8d6a23038d0f65c613414.png b/pr-preview/pr-186/assets/images/en-us_image_0000001369344100-7ad8ecca86f8d6a23038d0f65c613414.png new file mode 100644 index 000000000..68c8d9da7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001369344100-7ad8ecca86f8d6a23038d0f65c613414.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001369483086-c8ff5281eec0134024ad609d223a1653.png b/pr-preview/pr-186/assets/images/en-us_image_0000001369483086-c8ff5281eec0134024ad609d223a1653.png new file mode 100644 index 000000000..4a89d0cf0 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001369483086-c8ff5281eec0134024ad609d223a1653.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001369501992-6aeaf7152ebf5cce271389cbb5faa79b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001369501992-6aeaf7152ebf5cce271389cbb5faa79b.png new file mode 100644 index 000000000..2f6c553f9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001369501992-6aeaf7152ebf5cce271389cbb5faa79b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001369683888-5fbc27aa0673f7597de4c49c558205b6.png b/pr-preview/pr-186/assets/images/en-us_image_0000001369683888-5fbc27aa0673f7597de4c49c558205b6.png new file mode 100644 index 000000000..cd481112a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001369683888-5fbc27aa0673f7597de4c49c558205b6.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001380992506-4d5619a715514bf7525bb634554ee347.png b/pr-preview/pr-186/assets/images/en-us_image_0000001380992506-4d5619a715514bf7525bb634554ee347.png new file mode 100644 index 000000000..fe48c09c9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001380992506-4d5619a715514bf7525bb634554ee347.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001381152106-c0afc526298384aa11a22dfa95af734e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001381152106-c0afc526298384aa11a22dfa95af734e.png new file mode 100644 index 000000000..111d397a2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001381152106-c0afc526298384aa11a22dfa95af734e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001394829705-eeedf52893f7530a71ee209732c20405.png b/pr-preview/pr-186/assets/images/en-us_image_0000001394829705-eeedf52893f7530a71ee209732c20405.png new file mode 100644 index 000000000..ba9e3dad4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001394829705-eeedf52893f7530a71ee209732c20405.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001399744097-3ee445caa495d62933633e78635897a5.png b/pr-preview/pr-186/assets/images/en-us_image_0000001399744097-3ee445caa495d62933633e78635897a5.png new file mode 100644 index 000000000..b42d9b38e Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001399744097-3ee445caa495d62933633e78635897a5.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001400577445-6bc9007000dad67d2aa448c17dc223d0.png b/pr-preview/pr-186/assets/images/en-us_image_0000001400577445-6bc9007000dad67d2aa448c17dc223d0.png new file mode 100644 index 000000000..a788099b7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001400577445-6bc9007000dad67d2aa448c17dc223d0.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001400827629-159f9ade75ec5109ffd26ea4acaf5ca8.png b/pr-preview/pr-186/assets/images/en-us_image_0000001400827629-159f9ade75ec5109ffd26ea4acaf5ca8.png new file mode 100644 index 000000000..b210b7344 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001400827629-159f9ade75ec5109ffd26ea4acaf5ca8.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001402114285-a22a695a80314852081dc4ac62700377.png b/pr-preview/pr-186/assets/images/en-us_image_0000001402114285-a22a695a80314852081dc4ac62700377.png new file mode 100644 index 000000000..0ed0df53b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001402114285-a22a695a80314852081dc4ac62700377.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001416249976-fc372f648b3191f7ad7c9e8457656b56.png b/pr-preview/pr-186/assets/images/en-us_image_0000001416249976-fc372f648b3191f7ad7c9e8457656b56.png new file mode 100644 index 000000000..e098dab88 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001416249976-fc372f648b3191f7ad7c9e8457656b56.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001416531766-534ddae9da1aa28a1542538fcef8eea1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001416531766-534ddae9da1aa28a1542538fcef8eea1.png new file mode 100644 index 000000000..e894668c6 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001416531766-534ddae9da1aa28a1542538fcef8eea1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001416735446-00881c015c0b651705850ea5cbbef107.png b/pr-preview/pr-186/assets/images/en-us_image_0000001416735446-00881c015c0b651705850ea5cbbef107.png new file mode 100644 index 000000000..31c54cb9d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001416735446-00881c015c0b651705850ea5cbbef107.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001418569120-36f24b545226960fb1aeb248a4fbdadc.png b/pr-preview/pr-186/assets/images/en-us_image_0000001418569120-36f24b545226960fb1aeb248a4fbdadc.png new file mode 100644 index 000000000..2dc55c428 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001418569120-36f24b545226960fb1aeb248a4fbdadc.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001418729104-aae4c5fd907cab4256a7116e9037c09a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001418729104-aae4c5fd907cab4256a7116e9037c09a.png new file mode 100644 index 000000000..a132dc55d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001418729104-aae4c5fd907cab4256a7116e9037c09a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001423609253-9712c91b54f98dbe07a0fa223bee8f27.png b/pr-preview/pr-186/assets/images/en-us_image_0000001423609253-9712c91b54f98dbe07a0fa223bee8f27.png new file mode 100644 index 000000000..814a41103 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001423609253-9712c91b54f98dbe07a0fa223bee8f27.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001425667664-3880b32b2b0e160386fac5ab7a9608e7.png b/pr-preview/pr-186/assets/images/en-us_image_0000001425667664-3880b32b2b0e160386fac5ab7a9608e7.png new file mode 100644 index 000000000..db853e177 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001425667664-3880b32b2b0e160386fac5ab7a9608e7.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001425685956-7ccbafb9ead3b40bf46047ae7b2e3b5b.png b/pr-preview/pr-186/assets/images/en-us_image_0000001425685956-7ccbafb9ead3b40bf46047ae7b2e3b5b.png new file mode 100644 index 000000000..cf2c68ba1 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001425685956-7ccbafb9ead3b40bf46047ae7b2e3b5b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001425794174-2fedc687cb6d67826c5a320d9af0a973.png b/pr-preview/pr-186/assets/images/en-us_image_0000001425794174-2fedc687cb6d67826c5a320d9af0a973.png new file mode 100644 index 000000000..27a214003 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001425794174-2fedc687cb6d67826c5a320d9af0a973.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001425958670-f96c42f35b860b60508a053b2f4aeb4f.png b/pr-preview/pr-186/assets/images/en-us_image_0000001425958670-f96c42f35b860b60508a053b2f4aeb4f.png new file mode 100644 index 000000000..12f56adb2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001425958670-f96c42f35b860b60508a053b2f4aeb4f.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001426108974-0d28a9a894810f1a61a769ac5338c7ff.png b/pr-preview/pr-186/assets/images/en-us_image_0000001426108974-0d28a9a894810f1a61a769ac5338c7ff.png new file mode 100644 index 000000000..f41aad1c8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001426108974-0d28a9a894810f1a61a769ac5338c7ff.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001426121394-eec13967231ee22723401845f96b8bb3.png b/pr-preview/pr-186/assets/images/en-us_image_0000001426121394-eec13967231ee22723401845f96b8bb3.png new file mode 100644 index 000000000..90fcade47 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001426121394-eec13967231ee22723401845f96b8bb3.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001426145908-bdb57f51e89d6e43f42828160e04fb69.png b/pr-preview/pr-186/assets/images/en-us_image_0000001426145908-bdb57f51e89d6e43f42828160e04fb69.png new file mode 100644 index 000000000..ac26089c2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001426145908-bdb57f51e89d6e43f42828160e04fb69.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001426146644-8af8631f8d13f031f1807ef230658932.png b/pr-preview/pr-186/assets/images/en-us_image_0000001426146644-8af8631f8d13f031f1807ef230658932.png new file mode 100644 index 000000000..b4246e16d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001426146644-8af8631f8d13f031f1807ef230658932.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001427434044-f4207f5a30ad379eb087ad941793333a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001427434044-f4207f5a30ad379eb087ad941793333a.png new file mode 100644 index 000000000..5d1b57d7c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001427434044-f4207f5a30ad379eb087ad941793333a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001431432309-f6d88205377fb0bf73570be4219097ae.png b/pr-preview/pr-186/assets/images/en-us_image_0000001431432309-f6d88205377fb0bf73570be4219097ae.png new file mode 100644 index 000000000..320c8c928 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001431432309-f6d88205377fb0bf73570be4219097ae.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001457709502-62e5341e7fc4af1ba60d9d07cffa80da.png b/pr-preview/pr-186/assets/images/en-us_image_0000001457709502-62e5341e7fc4af1ba60d9d07cffa80da.png new file mode 100644 index 000000000..69e3ceb60 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001457709502-62e5341e7fc4af1ba60d9d07cffa80da.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001463841764-ef6af7a4e71e5ab7d2098ef0e67da022.png b/pr-preview/pr-186/assets/images/en-us_image_0000001463841764-ef6af7a4e71e5ab7d2098ef0e67da022.png new file mode 100644 index 000000000..247b0e895 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001463841764-ef6af7a4e71e5ab7d2098ef0e67da022.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001464002560-2062ba75a9a1fc8e1e7f023f4e16bf58.png b/pr-preview/pr-186/assets/images/en-us_image_0000001464002560-2062ba75a9a1fc8e1e7f023f4e16bf58.png new file mode 100644 index 000000000..0659dab14 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001464002560-2062ba75a9a1fc8e1e7f023f4e16bf58.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001464031938-77b237cc04fd8e6457bec5bc79f8536a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001464031938-77b237cc04fd8e6457bec5bc79f8536a.png new file mode 100644 index 000000000..6bfa5a2ec Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001464031938-77b237cc04fd8e6457bec5bc79f8536a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001465971797-e433eb2c2f1d4b0c75a650b43d62816c.png b/pr-preview/pr-186/assets/images/en-us_image_0000001465971797-e433eb2c2f1d4b0c75a650b43d62816c.png new file mode 100644 index 000000000..e00ea554f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001465971797-e433eb2c2f1d4b0c75a650b43d62816c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001465972145-7a78f7a0bc9df12bfec826025491ed44.png b/pr-preview/pr-186/assets/images/en-us_image_0000001465972145-7a78f7a0bc9df12bfec826025491ed44.png new file mode 100644 index 000000000..cb7fbdf08 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001465972145-7a78f7a0bc9df12bfec826025491ed44.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001466646017-721e356b51d15d06865bef32bf28b84e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001466646017-721e356b51d15d06865bef32bf28b84e.png new file mode 100644 index 000000000..6a2375f5f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001466646017-721e356b51d15d06865bef32bf28b84e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001468885853-8eaae4b34f5362d15a2f4792e829b618.png b/pr-preview/pr-186/assets/images/en-us_image_0000001468885853-8eaae4b34f5362d15a2f4792e829b618.png new file mode 100644 index 000000000..d2ea735f2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001468885853-8eaae4b34f5362d15a2f4792e829b618.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001471311349-10a6d88e906f5daafbb591dd64bc22c1.png b/pr-preview/pr-186/assets/images/en-us_image_0000001471311349-10a6d88e906f5daafbb591dd64bc22c1.png new file mode 100644 index 000000000..60dda3671 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001471311349-10a6d88e906f5daafbb591dd64bc22c1.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001471430697-47fa226a3d9cc0554e9b8e07aa46d799.png b/pr-preview/pr-186/assets/images/en-us_image_0000001471430697-47fa226a3d9cc0554e9b8e07aa46d799.png new file mode 100644 index 000000000..f465002cc Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001471430697-47fa226a3d9cc0554e9b8e07aa46d799.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001476188661-f8a456755a92678818bf76b8fcaab8e7.png b/pr-preview/pr-186/assets/images/en-us_image_0000001476188661-f8a456755a92678818bf76b8fcaab8e7.png new file mode 100644 index 000000000..a017ed337 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001476188661-f8a456755a92678818bf76b8fcaab8e7.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001476217873-b32eb6451369c59ac6f1f9e65d76f289.png b/pr-preview/pr-186/assets/images/en-us_image_0000001476217873-b32eb6451369c59ac6f1f9e65d76f289.png new file mode 100644 index 000000000..8b58a572b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001476217873-b32eb6451369c59ac6f1f9e65d76f289.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001476223097-31f583423d35b1779aeaad1b6bfd6c78.png b/pr-preview/pr-186/assets/images/en-us_image_0000001476223097-31f583423d35b1779aeaad1b6bfd6c78.png new file mode 100644 index 000000000..a928fa45a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001476223097-31f583423d35b1779aeaad1b6bfd6c78.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001476227677-5966de3f4beebab89d521d70e52cfe30.png b/pr-preview/pr-186/assets/images/en-us_image_0000001476227677-5966de3f4beebab89d521d70e52cfe30.png new file mode 100644 index 000000000..5e4c8b4bf Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001476227677-5966de3f4beebab89d521d70e52cfe30.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001479114773-40f92eae87e30c3edb2cd6f3a5a4baf2.png b/pr-preview/pr-186/assets/images/en-us_image_0000001479114773-40f92eae87e30c3edb2cd6f3a5a4baf2.png new file mode 100644 index 000000000..7b448776c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001479114773-40f92eae87e30c3edb2cd6f3a5a4baf2.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001480191270-adc2492d8eb498d182134039db9474b5.png b/pr-preview/pr-186/assets/images/en-us_image_0000001480191270-adc2492d8eb498d182134039db9474b5.png new file mode 100644 index 000000000..290b94f19 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001480191270-adc2492d8eb498d182134039db9474b5.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001481001694-e05336c1d12b2f6e28d97b308b95c7ba.png b/pr-preview/pr-186/assets/images/en-us_image_0000001481001694-e05336c1d12b2f6e28d97b308b95c7ba.png new file mode 100644 index 000000000..1136ef62d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001481001694-e05336c1d12b2f6e28d97b308b95c7ba.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001490687826-3788a879c48d3f3b95767af69f793b9c.png b/pr-preview/pr-186/assets/images/en-us_image_0000001490687826-3788a879c48d3f3b95767af69f793b9c.png new file mode 100644 index 000000000..3d32103dd Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001490687826-3788a879c48d3f3b95767af69f793b9c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001493711038-564577eff7f00d755c9910a2cb7aa13d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001493711038-564577eff7f00d755c9910a2cb7aa13d.png new file mode 100644 index 000000000..3555df137 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001493711038-564577eff7f00d755c9910a2cb7aa13d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001514587325-2d1a7af377197beba22ecf8ba4c0682d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001514587325-2d1a7af377197beba22ecf8ba4c0682d.png new file mode 100644 index 000000000..dd7c1bd89 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001514587325-2d1a7af377197beba22ecf8ba4c0682d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001592878805-ee35ba0f7d705df1e2210650b72b77f0.png b/pr-preview/pr-186/assets/images/en-us_image_0000001592878805-ee35ba0f7d705df1e2210650b72b77f0.png new file mode 100644 index 000000000..0df4d74c1 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001592878805-ee35ba0f7d705df1e2210650b72b77f0.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001606845825-2fc64d535bb9bfd1030c7b034f7f2a99.png b/pr-preview/pr-186/assets/images/en-us_image_0000001606845825-2fc64d535bb9bfd1030c7b034f7f2a99.png new file mode 100644 index 000000000..dc8f6a30f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001606845825-2fc64d535bb9bfd1030c7b034f7f2a99.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001606847653-fa31af0c30cd700e2fee1dca63f50408.png b/pr-preview/pr-186/assets/images/en-us_image_0000001606847653-fa31af0c30cd700e2fee1dca63f50408.png new file mode 100644 index 000000000..da3aaefad Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001606847653-fa31af0c30cd700e2fee1dca63f50408.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001616102745-cb5789cacd40bd01c85e688eae233d61.png b/pr-preview/pr-186/assets/images/en-us_image_0000001616102745-cb5789cacd40bd01c85e688eae233d61.png new file mode 100644 index 000000000..55038cde3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001616102745-cb5789cacd40bd01c85e688eae233d61.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625299482-70fc8c0e12d8757dc22828c89da1dcbc.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625299482-70fc8c0e12d8757dc22828c89da1dcbc.png new file mode 100644 index 000000000..15fa99665 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625299482-70fc8c0e12d8757dc22828c89da1dcbc.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625299490-3739996f41d134eab973836b2cebdf4a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625299490-3739996f41d134eab973836b2cebdf4a.png new file mode 100644 index 000000000..042faad10 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625299490-3739996f41d134eab973836b2cebdf4a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625299518-b0454f56094e741f720121090322ba5c.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625299518-b0454f56094e741f720121090322ba5c.png new file mode 100644 index 000000000..dcbae0298 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625299518-b0454f56094e741f720121090322ba5c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625459302-8d9240400ca4dd3c43272335cca9ccf2.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625459302-8d9240400ca4dd3c43272335cca9ccf2.png new file mode 100644 index 000000000..2c0a00818 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625459302-8d9240400ca4dd3c43272335cca9ccf2.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625459306-c9fc6ccd15f5651494a75db21707427a.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625459306-c9fc6ccd15f5651494a75db21707427a.png new file mode 100644 index 000000000..125be107b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625459306-c9fc6ccd15f5651494a75db21707427a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625459326-5aaa62034a5e2cafcdfd0077db7cf0eb.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625459326-5aaa62034a5e2cafcdfd0077db7cf0eb.png new file mode 100644 index 000000000..305dea35a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625459326-5aaa62034a5e2cafcdfd0077db7cf0eb.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625459334-5bad38b7305ce0454e8f68ea28df4ef6.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625459334-5bad38b7305ce0454e8f68ea28df4ef6.png new file mode 100644 index 000000000..471ed8027 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625459334-5bad38b7305ce0454e8f68ea28df4ef6.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625619214-0f5ed67553825decbc241274ff7cf715.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625619214-0f5ed67553825decbc241274ff7cf715.png new file mode 100644 index 000000000..75463b45d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625619214-0f5ed67553825decbc241274ff7cf715.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625619218-83d33d04b610fa59867d666153ed91b3.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625619218-83d33d04b610fa59867d666153ed91b3.png new file mode 100644 index 000000000..6eda9dbb9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625619218-83d33d04b610fa59867d666153ed91b3.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625619246-741946f483921ee537290435b4a18c96.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625619246-741946f483921ee537290435b4a18c96.png new file mode 100644 index 000000000..1d1cd4db5 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625619246-741946f483921ee537290435b4a18c96.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625779198-4797a6390aa4aaca6c50e800533a0318.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625779198-4797a6390aa4aaca6c50e800533a0318.png new file mode 100644 index 000000000..2e86ad241 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625779198-4797a6390aa4aaca6c50e800533a0318.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001625779202-2dda02ceb01b03805cd845e5018eda7f.png b/pr-preview/pr-186/assets/images/en-us_image_0000001625779202-2dda02ceb01b03805cd845e5018eda7f.png new file mode 100644 index 000000000..916825eb9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001625779202-2dda02ceb01b03805cd845e5018eda7f.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001673939081-1575d63a0a65ea45a334fa128ab05017.png b/pr-preview/pr-186/assets/images/en-us_image_0000001673939081-1575d63a0a65ea45a334fa128ab05017.png new file mode 100644 index 000000000..ece7cca16 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001673939081-1575d63a0a65ea45a334fa128ab05017.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001673939093-2dda02ceb01b03805cd845e5018eda7f.png b/pr-preview/pr-186/assets/images/en-us_image_0000001673939093-2dda02ceb01b03805cd845e5018eda7f.png new file mode 100644 index 000000000..916825eb9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001673939093-2dda02ceb01b03805cd845e5018eda7f.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674059065-52c74702ca439b1c11c71d8883e29750.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674059065-52c74702ca439b1c11c71d8883e29750.png new file mode 100644 index 000000000..da9c98136 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674059065-52c74702ca439b1c11c71d8883e29750.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674059069-d4e293cee23a4eef178c3af0f1c0054d.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674059069-d4e293cee23a4eef178c3af0f1c0054d.png new file mode 100644 index 000000000..8c29385ea Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674059069-d4e293cee23a4eef178c3af0f1c0054d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674059073-7a35c808f8ffb70988af7b5380cdb198.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674059073-7a35c808f8ffb70988af7b5380cdb198.png new file mode 100644 index 000000000..75aeeed8a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674059073-7a35c808f8ffb70988af7b5380cdb198.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674059081-bcab3ff78b7bd0989fff34661072fc7f.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674059081-bcab3ff78b7bd0989fff34661072fc7f.png new file mode 100644 index 000000000..2eb61807c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674059081-bcab3ff78b7bd0989fff34661072fc7f.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674139185-f16d36dd6b9d203eb4df8cb4344e21e9.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674139185-f16d36dd6b9d203eb4df8cb4344e21e9.png new file mode 100644 index 000000000..985089c80 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674139185-f16d36dd6b9d203eb4df8cb4344e21e9.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674139189-9f7248ad988ccfe327ef9293167dfa6e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674139189-9f7248ad988ccfe327ef9293167dfa6e.png new file mode 100644 index 000000000..eadb83f9a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674139189-9f7248ad988ccfe327ef9293167dfa6e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674259057-cd243861964f904afe3c1ce74918010e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674259057-cd243861964f904afe3c1ce74918010e.png new file mode 100644 index 000000000..fc37e3f17 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674259057-cd243861964f904afe3c1ce74918010e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674259061-e067652c08047b1393be8e8e2a164c8e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674259061-e067652c08047b1393be8e8e2a164c8e.png new file mode 100644 index 000000000..45498d4cd Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674259061-e067652c08047b1393be8e8e2a164c8e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001674259073-1b535464a0c65f080849e88518812849.png b/pr-preview/pr-186/assets/images/en-us_image_0000001674259073-1b535464a0c65f080849e88518812849.png new file mode 100644 index 000000000..c4e629183 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001674259073-1b535464a0c65f080849e88518812849.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001698121802-5501d36f2a57ff20609a3d0764631d22.png b/pr-preview/pr-186/assets/images/en-us_image_0000001698121802-5501d36f2a57ff20609a3d0764631d22.png new file mode 100644 index 000000000..d0399af32 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001698121802-5501d36f2a57ff20609a3d0764631d22.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001716153600-430ed5e4c9c0866df2df454c53cdeac2.png b/pr-preview/pr-186/assets/images/en-us_image_0000001716153600-430ed5e4c9c0866df2df454c53cdeac2.png new file mode 100644 index 000000000..7e0b20620 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001716153600-430ed5e4c9c0866df2df454c53cdeac2.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001764240765-c723a76ee1fb383d1bde19f54e6b01a8.png b/pr-preview/pr-186/assets/images/en-us_image_0000001764240765-c723a76ee1fb383d1bde19f54e6b01a8.png new file mode 100644 index 000000000..a272d68b4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001764240765-c723a76ee1fb383d1bde19f54e6b01a8.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000001764480001-cd042668a96490da0e78c5d4f864a96e.png b/pr-preview/pr-186/assets/images/en-us_image_0000001764480001-cd042668a96490da0e78c5d4f864a96e.png new file mode 100644 index 000000000..dfe822bb7 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000001764480001-cd042668a96490da0e78c5d4f864a96e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000002072891388-8cfd3cbff8115615bcec9f2e342ab196.png b/pr-preview/pr-186/assets/images/en-us_image_0000002072891388-8cfd3cbff8115615bcec9f2e342ab196.png new file mode 100644 index 000000000..0b862efc2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000002072891388-8cfd3cbff8115615bcec9f2e342ab196.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000002073051188-ef7110107f6bb06f2ad2eff4659faeae.png b/pr-preview/pr-186/assets/images/en-us_image_0000002073051188-ef7110107f6bb06f2ad2eff4659faeae.png new file mode 100644 index 000000000..15b8bed70 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000002073051188-ef7110107f6bb06f2ad2eff4659faeae.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000002073051228-09c54fd33f268c863d03bd54136f5cc5.png b/pr-preview/pr-186/assets/images/en-us_image_0000002073051228-09c54fd33f268c863d03bd54136f5cc5.png new file mode 100644 index 000000000..6e5d5b0ae Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000002073051228-09c54fd33f268c863d03bd54136f5cc5.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000002108771013-09c54fd33f268c863d03bd54136f5cc5.png b/pr-preview/pr-186/assets/images/en-us_image_0000002108771013-09c54fd33f268c863d03bd54136f5cc5.png new file mode 100644 index 000000000..6e5d5b0ae Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000002108771013-09c54fd33f268c863d03bd54136f5cc5.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000002108890949-6a71e3a434531b802b96a2b457d39726.png b/pr-preview/pr-186/assets/images/en-us_image_0000002108890949-6a71e3a434531b802b96a2b457d39726.png new file mode 100644 index 000000000..3855ca308 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000002108890949-6a71e3a434531b802b96a2b457d39726.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0000002108890953-3dc6b80e5c615cbf0d53cf50f1a9d390.png b/pr-preview/pr-186/assets/images/en-us_image_0000002108890953-3dc6b80e5c615cbf0d53cf50f1a9d390.png new file mode 100644 index 000000000..236a82ad2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0000002108890953-3dc6b80e5c615cbf0d53cf50f1a9d390.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0107215471-0456e61b69281b7af438b8496a0a8088.png b/pr-preview/pr-186/assets/images/en-us_image_0107215471-0456e61b69281b7af438b8496a0a8088.png new file mode 100644 index 000000000..1a8c320f2 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0107215471-0456e61b69281b7af438b8496a0a8088.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0107215473-07b2d213924db32622e12a9ffc79b7c6.png b/pr-preview/pr-186/assets/images/en-us_image_0107215473-07b2d213924db32622e12a9ffc79b7c6.png new file mode 100644 index 000000000..b3d44158f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0107215473-07b2d213924db32622e12a9ffc79b7c6.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0107215475-907f549ef05212921fd2102b4a21cb67.png b/pr-preview/pr-186/assets/images/en-us_image_0107215475-907f549ef05212921fd2102b4a21cb67.png new file mode 100644 index 000000000..abfa2fac0 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0107215475-907f549ef05212921fd2102b4a21cb67.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0107215477-e265ecfebd42a2ff87b4945856b5c53b.png b/pr-preview/pr-186/assets/images/en-us_image_0107215477-e265ecfebd42a2ff87b4945856b5c53b.png new file mode 100644 index 000000000..859e5138d Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0107215477-e265ecfebd42a2ff87b4945856b5c53b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0139689760-c3ff630708b83e74c8f80d0b0dd9bf58.png b/pr-preview/pr-186/assets/images/en-us_image_0139689760-c3ff630708b83e74c8f80d0b0dd9bf58.png new file mode 100644 index 000000000..1eb915d62 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0139689760-c3ff630708b83e74c8f80d0b0dd9bf58.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0180865321-ac32ac5fc1bd17910a30064b8b2bfe73.png b/pr-preview/pr-186/assets/images/en-us_image_0180865321-ac32ac5fc1bd17910a30064b8b2bfe73.png new file mode 100644 index 000000000..caa2f575b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0180865321-ac32ac5fc1bd17910a30064b8b2bfe73.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0200645302-701b56e404831d7540011f1e407e8b17.png b/pr-preview/pr-186/assets/images/en-us_image_0200645302-701b56e404831d7540011f1e407e8b17.png new file mode 100644 index 000000000..6a9349928 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0200645302-701b56e404831d7540011f1e407e8b17.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0229987653-2a7a7ddaa377b3559621fbcc18d74d1d.png b/pr-preview/pr-186/assets/images/en-us_image_0229987653-2a7a7ddaa377b3559621fbcc18d74d1d.png new file mode 100644 index 000000000..52198338a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0229987653-2a7a7ddaa377b3559621fbcc18d74d1d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0229987913-ba93a3d6acbb320896f1e57c635c27ac.png b/pr-preview/pr-186/assets/images/en-us_image_0229987913-ba93a3d6acbb320896f1e57c635c27ac.png new file mode 100644 index 000000000..b2ee27d61 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0229987913-ba93a3d6acbb320896f1e57c635c27ac.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0230389993-16d66c875d91e81939eb01db19919f03.png b/pr-preview/pr-186/assets/images/en-us_image_0230389993-16d66c875d91e81939eb01db19919f03.png new file mode 100644 index 000000000..7a3a667b4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0230389993-16d66c875d91e81939eb01db19919f03.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0230390003-fac47ca7c6649e6ea0cda69fb555ff99.png b/pr-preview/pr-186/assets/images/en-us_image_0230390003-fac47ca7c6649e6ea0cda69fb555ff99.png new file mode 100644 index 000000000..37d8e348a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0230390003-fac47ca7c6649e6ea0cda69fb555ff99.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0230391072-a96675b44e91f0778c39bd3aeca27131.png b/pr-preview/pr-186/assets/images/en-us_image_0230391072-a96675b44e91f0778c39bd3aeca27131.png new file mode 100644 index 000000000..2b25ed86f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0230391072-a96675b44e91f0778c39bd3aeca27131.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0232589882-31a7b7203cdd2d6ca02cb7332b4c213c.png b/pr-preview/pr-186/assets/images/en-us_image_0232589882-31a7b7203cdd2d6ca02cb7332b4c213c.png new file mode 100644 index 000000000..963568f0b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0232589882-31a7b7203cdd2d6ca02cb7332b4c213c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0232605869-e676e406c6d06686864c732ca529cd4e.png b/pr-preview/pr-186/assets/images/en-us_image_0232605869-e676e406c6d06686864c732ca529cd4e.png new file mode 100644 index 000000000..a84d17798 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0232605869-e676e406c6d06686864c732ca529cd4e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0234000688-d31c4c99dc303915135fef17619a1f97.png b/pr-preview/pr-186/assets/images/en-us_image_0234000688-d31c4c99dc303915135fef17619a1f97.png new file mode 100644 index 000000000..9a5fa7210 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0234000688-d31c4c99dc303915135fef17619a1f97.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0245102971-9201fd3a7732836eb414c4ca90faacab.png b/pr-preview/pr-186/assets/images/en-us_image_0245102971-9201fd3a7732836eb414c4ca90faacab.png new file mode 100644 index 000000000..04d73e593 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0245102971-9201fd3a7732836eb414c4ca90faacab.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0245105425-0c47ce40fe587262797fd0c3ee540998.png b/pr-preview/pr-186/assets/images/en-us_image_0245105425-0c47ce40fe587262797fd0c3ee540998.png new file mode 100644 index 000000000..37ca2a61a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0245105425-0c47ce40fe587262797fd0c3ee540998.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0245110151-6f7912284246badfa00777387fdff40b.png b/pr-preview/pr-186/assets/images/en-us_image_0245110151-6f7912284246badfa00777387fdff40b.png new file mode 100644 index 000000000..f50c339fa Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0245110151-6f7912284246badfa00777387fdff40b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0245112233-9749fa178321a05b6103e4d2651c1d4a.png b/pr-preview/pr-186/assets/images/en-us_image_0245112233-9749fa178321a05b6103e4d2651c1d4a.png new file mode 100644 index 000000000..d7a686f52 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0245112233-9749fa178321a05b6103e4d2651c1d4a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0245112317-f4336a0bcd87d58eeb9fe60a46a77472.png b/pr-preview/pr-186/assets/images/en-us_image_0245112317-f4336a0bcd87d58eeb9fe60a46a77472.png new file mode 100644 index 000000000..626976d92 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0245112317-f4336a0bcd87d58eeb9fe60a46a77472.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0245116251-64d182f0160f2bd32c561ba2f2e959dd.png b/pr-preview/pr-186/assets/images/en-us_image_0245116251-64d182f0160f2bd32c561ba2f2e959dd.png new file mode 100644 index 000000000..ed3724ff9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0245116251-64d182f0160f2bd32c561ba2f2e959dd.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0254645094-46236515adf0e27c40cbab6b13c88b34.png b/pr-preview/pr-186/assets/images/en-us_image_0254645094-46236515adf0e27c40cbab6b13c88b34.png new file mode 100644 index 000000000..cf98aa5fa Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0254645094-46236515adf0e27c40cbab6b13c88b34.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0264587870-17a5353ccb74d8a196632708b7752ddd.png b/pr-preview/pr-186/assets/images/en-us_image_0264587870-17a5353ccb74d8a196632708b7752ddd.png new file mode 100644 index 000000000..cd5c1d3d4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0264587870-17a5353ccb74d8a196632708b7752ddd.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0264587871-841b87bbde5d5a4a78e6554a6728174d.png b/pr-preview/pr-186/assets/images/en-us_image_0264587871-841b87bbde5d5a4a78e6554a6728174d.png new file mode 100644 index 000000000..fceb742c6 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0264587871-841b87bbde5d5a4a78e6554a6728174d.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0264642164-6d1ea00afa15183e93982d174884c95b.png b/pr-preview/pr-186/assets/images/en-us_image_0264642164-6d1ea00afa15183e93982d174884c95b.png new file mode 100644 index 000000000..87963dcbd Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0264642164-6d1ea00afa15183e93982d174884c95b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0267127015-76b50a83c2991b0a3664fa43ebe7f2eb.png b/pr-preview/pr-186/assets/images/en-us_image_0267127015-76b50a83c2991b0a3664fa43ebe7f2eb.png new file mode 100644 index 000000000..acdf83711 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0267127015-76b50a83c2991b0a3664fa43ebe7f2eb.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0268280658-916c3459c535c6fdf3a1c04d0e8f23d3.png b/pr-preview/pr-186/assets/images/en-us_image_0268280658-916c3459c535c6fdf3a1c04d0e8f23d3.png new file mode 100644 index 000000000..50aa580b4 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0268280658-916c3459c535c6fdf3a1c04d0e8f23d3.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0268287010-e292a175fa0cc79ecb359abb4c99e877.png b/pr-preview/pr-186/assets/images/en-us_image_0268287010-e292a175fa0cc79ecb359abb4c99e877.png new file mode 100644 index 000000000..42c6f4588 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0268287010-e292a175fa0cc79ecb359abb4c99e877.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0268288436-01fbf654618f634c796509e05312f581.png b/pr-preview/pr-186/assets/images/en-us_image_0268288436-01fbf654618f634c796509e05312f581.png new file mode 100644 index 000000000..1d8c61aac Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0268288436-01fbf654618f634c796509e05312f581.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0268337032-dfa1f4c8801b9b87071c7fcfbb1573a4.png b/pr-preview/pr-186/assets/images/en-us_image_0268337032-dfa1f4c8801b9b87071c7fcfbb1573a4.png new file mode 100644 index 000000000..9e89ac89e Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0268337032-dfa1f4c8801b9b87071c7fcfbb1573a4.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0268393798-ff35ee6b943b63ef8c322dadb7460a43.png b/pr-preview/pr-186/assets/images/en-us_image_0268393798-ff35ee6b943b63ef8c322dadb7460a43.png new file mode 100644 index 000000000..70cc2b9fe Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0268393798-ff35ee6b943b63ef8c322dadb7460a43.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0268393846-e8e02a3a9f891402eb291a3118270d0c.png b/pr-preview/pr-186/assets/images/en-us_image_0268393846-e8e02a3a9f891402eb291a3118270d0c.png new file mode 100644 index 000000000..4c9f796e9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0268393846-e8e02a3a9f891402eb291a3118270d0c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0273792190-f2c923a5984009612a0b2e24f7e68acd.png b/pr-preview/pr-186/assets/images/en-us_image_0273792190-f2c923a5984009612a0b2e24f7e68acd.png new file mode 100644 index 000000000..bc619fb77 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0273792190-f2c923a5984009612a0b2e24f7e68acd.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0273872842-ba97206f658bf04a1c82220720165d9e.png b/pr-preview/pr-186/assets/images/en-us_image_0273872842-ba97206f658bf04a1c82220720165d9e.png new file mode 100644 index 000000000..50c197bba Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0273872842-ba97206f658bf04a1c82220720165d9e.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0273876194-3b9dee255502bf19e42a7ccb16955404.png b/pr-preview/pr-186/assets/images/en-us_image_0273876194-3b9dee255502bf19e42a7ccb16955404.png new file mode 100644 index 000000000..cef44aae9 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0273876194-3b9dee255502bf19e42a7ccb16955404.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0285681028-30998664d1e3709bbf1e03d93a0d23b3.png b/pr-preview/pr-186/assets/images/en-us_image_0285681028-30998664d1e3709bbf1e03d93a0d23b3.png new file mode 100644 index 000000000..252fafa31 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0285681028-30998664d1e3709bbf1e03d93a0d23b3.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0285681029-d498142f4a7bc5988600445c7e4026fd.png b/pr-preview/pr-186/assets/images/en-us_image_0285681029-d498142f4a7bc5988600445c7e4026fd.png new file mode 100644 index 000000000..6cc540643 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0285681029-d498142f4a7bc5988600445c7e4026fd.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0285681032-1d1f17d0a5f7a652ed45377981f320b3.png b/pr-preview/pr-186/assets/images/en-us_image_0285681032-1d1f17d0a5f7a652ed45377981f320b3.png new file mode 100644 index 000000000..2f32201d3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0285681032-1d1f17d0a5f7a652ed45377981f320b3.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0287297889-c6e3dcfe9ab4c72107fdc2b1b04af081.png b/pr-preview/pr-186/assets/images/en-us_image_0287297889-c6e3dcfe9ab4c72107fdc2b1b04af081.png new file mode 100644 index 000000000..4be1389ec Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0287297889-c6e3dcfe9ab4c72107fdc2b1b04af081.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0293910230-7a7e59b602846a7058ee32654207398a.png b/pr-preview/pr-186/assets/images/en-us_image_0293910230-7a7e59b602846a7058ee32654207398a.png new file mode 100644 index 000000000..acf70171c Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0293910230-7a7e59b602846a7058ee32654207398a.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295094264-7e3556cdc6abb17dc000a8ad41246b5b.png b/pr-preview/pr-186/assets/images/en-us_image_0295094264-7e3556cdc6abb17dc000a8ad41246b5b.png new file mode 100644 index 000000000..c5d0c1a8f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295094264-7e3556cdc6abb17dc000a8ad41246b5b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295099813-ba8299040d7f3e8556444b63f8a11e26.png b/pr-preview/pr-186/assets/images/en-us_image_0295099813-ba8299040d7f3e8556444b63f8a11e26.png new file mode 100644 index 000000000..396a66b0b Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295099813-ba8299040d7f3e8556444b63f8a11e26.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295100003-1b0bce06bbc7c252b6dc52ee78023743.png b/pr-preview/pr-186/assets/images/en-us_image_0295100003-1b0bce06bbc7c252b6dc52ee78023743.png new file mode 100644 index 000000000..8ac58e185 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295100003-1b0bce06bbc7c252b6dc52ee78023743.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295117864-4659d6be92bf64793576e8a988c68b9b.png b/pr-preview/pr-186/assets/images/en-us_image_0295117864-4659d6be92bf64793576e8a988c68b9b.png new file mode 100644 index 000000000..c9a10b370 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295117864-4659d6be92bf64793576e8a988c68b9b.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295125718-502c48febb7133c3caba1fc5374b8699.png b/pr-preview/pr-186/assets/images/en-us_image_0295125718-502c48febb7133c3caba1fc5374b8699.png new file mode 100644 index 000000000..f455ee262 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295125718-502c48febb7133c3caba1fc5374b8699.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295125796-ea2c9a1ced9274b3298743f3007cc8e7.png b/pr-preview/pr-186/assets/images/en-us_image_0295125796-ea2c9a1ced9274b3298743f3007cc8e7.png new file mode 100644 index 000000000..a27d9f95a Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295125796-ea2c9a1ced9274b3298743f3007cc8e7.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295128562-d35fb06ee5d89729c5cfe763da7a7df8.png b/pr-preview/pr-186/assets/images/en-us_image_0295128562-d35fb06ee5d89729c5cfe763da7a7df8.png new file mode 100644 index 000000000..5bf96a0b8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295128562-d35fb06ee5d89729c5cfe763da7a7df8.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295129442-8151d9083306c0216af034f6c963b9ee.png b/pr-preview/pr-186/assets/images/en-us_image_0295129442-8151d9083306c0216af034f6c963b9ee.png new file mode 100644 index 000000000..0f024cff5 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295129442-8151d9083306c0216af034f6c963b9ee.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295762499-a7a800a974ac7107dadfaf10f0d9f57c.png b/pr-preview/pr-186/assets/images/en-us_image_0295762499-a7a800a974ac7107dadfaf10f0d9f57c.png new file mode 100644 index 000000000..c25c68a25 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295762499-a7a800a974ac7107dadfaf10f0d9f57c.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295762649-de9476ab419ae2fb0361b52970a629fb.png b/pr-preview/pr-186/assets/images/en-us_image_0295762649-de9476ab419ae2fb0361b52970a629fb.png new file mode 100644 index 000000000..4af014f4f Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295762649-de9476ab419ae2fb0361b52970a629fb.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295762692-c87028241870d24a22c488d8f3118062.png b/pr-preview/pr-186/assets/images/en-us_image_0295762692-c87028241870d24a22c488d8f3118062.png new file mode 100644 index 000000000..b4701dfc8 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295762692-c87028241870d24a22c488d8f3118062.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_0295762707-877547f5e62a82df200432c3e4919957.png b/pr-preview/pr-186/assets/images/en-us_image_0295762707-877547f5e62a82df200432c3e4919957.png new file mode 100644 index 000000000..19bd47153 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_0295762707-877547f5e62a82df200432c3e4919957.png differ diff --git a/pr-preview/pr-186/assets/images/en-us_image_A0000001348013634-75f485ea01bb19ace16a41e68ba7ecda.png b/pr-preview/pr-186/assets/images/en-us_image_A0000001348013634-75f485ea01bb19ace16a41e68ba7ecda.png new file mode 100644 index 000000000..2f3ae3cc3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/en-us_image_A0000001348013634-75f485ea01bb19ace16a41e68ba7ecda.png differ diff --git a/pr-preview/pr-186/assets/images/github-New-OAuth-Application-b19a8e1bdf02ace9b9812c29334edfd4.png b/pr-preview/pr-186/assets/images/github-New-OAuth-Application-b19a8e1bdf02ace9b9812c29334edfd4.png new file mode 100644 index 000000000..212964904 Binary files /dev/null and b/pr-preview/pr-186/assets/images/github-New-OAuth-Application-b19a8e1bdf02ace9b9812c29334edfd4.png differ diff --git a/pr-preview/pr-186/assets/images/github-create-oauth-app-ec6a7002ac54329aa4e74bb277e65a16.png b/pr-preview/pr-186/assets/images/github-create-oauth-app-ec6a7002ac54329aa4e74bb277e65a16.png new file mode 100644 index 000000000..831efbf76 Binary files /dev/null and b/pr-preview/pr-186/assets/images/github-create-oauth-app-ec6a7002ac54329aa4e74bb277e65a16.png differ diff --git a/pr-preview/pr-186/assets/images/github-idp-configuration-fd1e58995ccd0f38900c8ce798376e11.png b/pr-preview/pr-186/assets/images/github-idp-configuration-fd1e58995ccd0f38900c8ce798376e11.png new file mode 100644 index 000000000..6c1c75088 Binary files /dev/null and b/pr-preview/pr-186/assets/images/github-idp-configuration-fd1e58995ccd0f38900c8ce798376e11.png differ diff --git a/pr-preview/pr-186/assets/images/modify-idp-iam-8a535cf8a63baff8a849d0f7a2354e23.png b/pr-preview/pr-186/assets/images/modify-idp-iam-8a535cf8a63baff8a849d0f7a2354e23.png new file mode 100644 index 000000000..d001c5a5e Binary files /dev/null and b/pr-preview/pr-186/assets/images/modify-idp-iam-8a535cf8a63baff8a849d0f7a2354e23.png differ diff --git a/pr-preview/pr-186/assets/images/policy-visual-editor-511b51141a7397415cb939f069de0c74.png b/pr-preview/pr-186/assets/images/policy-visual-editor-511b51141a7397415cb939f069de0c74.png new file mode 100644 index 000000000..2cbd28be3 Binary files /dev/null and b/pr-preview/pr-186/assets/images/policy-visual-editor-511b51141a7397415cb939f069de0c74.png differ diff --git a/pr-preview/pr-186/assets/js/02082a10.5decb3ba.js b/pr-preview/pr-186/assets/js/02082a10.5decb3ba.js new file mode 100644 index 000000000..884ebf1d7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/02082a10.5decb3ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[48441],{97023:e=>{e.exports=JSON.parse('{"tag":{"label":"cce","permalink":"/docs-next/pr-preview/pr-186/docs/tags/cce","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":18,"items":[{"id":"best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics","title":"Auto Scaling Based on ELB Monitoring Metrics","description":"By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services\' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics"},{"id":"best-practices/containers/cloud-container-engine/backup-kubernetes-objects","title":"Backing Up Kubernetes Objects of other Clusters","description":"1. To back up a WordPress application with PV data, add an annotation","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects"},{"id":"blueprints/by-use-case/devops/ci-jenkins-swr-cce","title":"Build a CI Pipeline with Jenkins, SWR and CCE","description":"This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-jenkins-swr-cce"},{"id":"blueprints/by-use-case/devops/ci-devtron-swr-cce","title":"Build a CI/CD Pipeline with Devtron, SWR and CCE","description":"This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce"},{"id":"blueprints/by-use-case/observability/kubernetes-logging-with-loki","title":"CCE Logging with Grafana Loki & Promtail","description":"In this blueprint, we\'ll consolidate all the logs generated in our Kubernetes cluster into a neat, real-time dashboard in Grafana.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki"},{"id":"best-practices/databases/distributed-cache-service/connecting-a-redis-client-to-dcs-through-cce","title":"Connecting a Redis Client to DCS Through CCE","description":"With the development of the container technology, more and more applications are deployed in containers. This section describes how to deploy a Redis client in a Cloud Container Engine (CCE) cluster container and connect it to DCS.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/connecting-a-redis-client-to-dcs-through-cce"},{"id":"blueprints/by-use-case/networking/create-a-public-dns-endpoint-with-externaldns","title":"Create a Public DNS Endpoint with ExternalDNS","description":"ExternalDNS is a Kubernetes component used to manage DNS records for services and applications running in a Kubernetes cluster. It automates the creation, update, and deletion of DNS records based on the state of resources within the cluster. ExternalDNS is typically employed in scenarios where you need to expose services running inside a Kubernetes cluster to the outside world with fully qualified domain names (FQDNs), ensuring they are accessible by external users.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/networking/create-a-public-dns-endpoint-with-externaldns"},{"id":"best-practices/containers/cloud-container-engine/debugging-and-starting-the-application","title":"Debugging and Starting the Application","description":"Application Verification","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-application"},{"id":"blueprints/by-use-case/security/authentik/cce-authentik","title":"Deploy Authentik on CCE","description":"This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentik"},{"id":"blueprints/by-use-case/analytics/deploy-clickhouse-cce","title":"Deploy ClickHouse on CCE","description":"ClickHouse is a high-performance columnar database management system optimized for online analytical processing (OLAP). It is designed to handle large volumes of data and execute complex queries swiftly. The system uses a columnar storage format, which significantly accelerates read and write operations and enhances data compression. ClickHouse supports SQL queries and provides extensive tools for data analysis. It is built to scale horizontally, allowing for distributed processing across multiple servers. Its architecture ensures high availability and fault tolerance. Ideal for real-time data analytics, ClickHouse is widely adopted for tasks requiring fast query performance over extensive datasets.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cce"},{"id":"blueprints/by-use-case/security/keycloak/cce-keycloak","title":"Deploy Keycloak on CCE","description":"In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/cce-keycloak"},{"id":"blueprints/by-use-case/analytics/umami/deploy-umami-cce","title":"Deploy Umami on CCE","description":"In this blueprint we are going to set up Umami on Open Telekom Cloud\'s Cloud Container Engine (CCE), leveraging Kubernetes for scalability and flexibility. For the database backend, we will use the Zalando PostgreSQL Operator to provision and manage a PostgreSQL cluster within the CCE environment.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce"},{"id":"best-practices/containers/cloud-container-engine/issue-an-acme-certificate-with-dns01-solver-in-cce","title":"Issue an ACME Certificate with DNS01 Solver in CCE","description":"A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let\'s Encrypt.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/issue-an-acme-certificate-with-dns01-solver-in-cce"},{"id":"best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce","title":"Migrating Clusters from Other Clouds to CCE","description":"Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce"},{"id":"best-practices/containers/cloud-container-engine/restore-kubernetes-objects","title":"Restoring Kubernetes Objects in a CCE Cluster","description":"In this example, the WordPress application uses Azure SSD persistent data volumes, which need to be replaced with Open Telekom Cloud SSDs.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects"},{"id":"blueprints/by-use-case/security/cce-vault","title":"Secrets management with CCE and Hashicorp Vault","description":"Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vault"},{"id":"best-practices/application-services/api-gateway/selectively-exposing-cce-workloads-with-a-dedicated-gateway","title":"Selectively Exposing CCE Workloads with a Dedicated Gateway","description":"You can use APIG to selectively expose your workloads and microservices in Cloud Container Engine (CCE).","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/application-services/api-gateway/selectively-exposing-cce-workloads-with-a-dedicated-gateway"},{"id":"best-practices/containers/cloud-container-engine/updating-resources","title":"Updating Resources Accordingly","description":"Updating Images","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/035291d3.409b8b98.js b/pr-preview/pr-186/assets/js/035291d3.409b8b98.js new file mode 100644 index 000000000..7e22d5952 --- /dev/null +++ b/pr-preview/pr-186/assets/js/035291d3.409b8b98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[93464],{60197:e=>{e.exports=JSON.parse('{"tag":{"label":"observability","permalink":"/docs-next/pr-preview/pr-186/docs/tags/observability","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/observability/kubernetes-logging-with-loki","title":"CCE Logging with Grafana Loki & Promtail","description":"In this blueprint, we\'ll consolidate all the logs generated in our Kubernetes cluster into a neat, real-time dashboard in Grafana.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/03bbc623.0b2365e9.js b/pr-preview/pr-186/assets/js/03bbc623.0b2365e9.js new file mode 100644 index 000000000..69ca89eb9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/03bbc623.0b2365e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[13358],{33412:e=>{e.exports=JSON.parse('{"tag":{"label":"geoservices","permalink":"/docs-next/pr-preview/pr-186/docs/tags/geoservices","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services","title":"Mundi Web Services: New Business from Space","description":"The European Space Agency\'s (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/03d72608.15296e32.js b/pr-preview/pr-186/assets/js/03d72608.15296e32.js new file mode 100644 index 000000000..f90d4ac4f --- /dev/null +++ b/pr-preview/pr-186/assets/js/03d72608.15296e32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15099],{24941:e=>{e.exports=JSON.parse('{"tag":{"label":"minio","permalink":"/docs-next/pr-preview/pr-186/docs/tags/minio","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce","title":"Migrating Clusters from Other Clouds to CCE","description":"Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce"},{"id":"best-practices/containers/cloud-container-engine/updating-resources","title":"Updating Resources Accordingly","description":"Updating Images","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/0417d838.9e2b24b1.js b/pr-preview/pr-186/assets/js/0417d838.9e2b24b1.js new file mode 100644 index 000000000..56f68e1b1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/0417d838.9e2b24b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[94654],{88031:e=>{e.exports=JSON.parse('{"tag":{"label":"cts-trigger","permalink":"/docs-next/pr-preview/pr-186/docs/tags/cts-trigger","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph","title":"Auditing and Analyzing Logins and Logouts with Functiongraph","description":"Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/05079e42.ac38a43c.js b/pr-preview/pr-186/assets/js/05079e42.ac38a43c.js new file mode 100644 index 000000000..ea8ab5888 --- /dev/null +++ b/pr-preview/pr-186/assets/js/05079e42.ac38a43c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[60113],{6161:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var o=n(74848),r=n(28453);const s={id:"storage",title:"Storage"},a="Storage",i={id:"blueprints/by-use-case/storage/storage",title:"Storage",description:"In this category, you can find guidance for designing and managing storage solutions on Open Telekom Cloud. Topics include block storage, object storage, file storage, and data backup strategies. Here are also provided recommendations for optimizing storage performance, ensuring data durability, and implementing cost-efficient storage architectures that meet the needs of various workloads.",source:"@site/docs/blueprints/by-use-case/storage/index.md",sourceDirName:"blueprints/by-use-case/storage",slug:"/blueprints/by-use-case/storage/",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/storage/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-use-case/storage/index.md",tags:[],version:"current",frontMatter:{id:"storage",title:"Storage"},sidebar:"blueprintsSidebar",previous:{title:"Identity Federation with GitHub",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-github"},next:{title:"Zone-redundant NFS Server",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/storage/zone-redundant-nfs"}},c={},d=[];function u(e){const t={h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"storage",children:"Storage"}),"\n",(0,o.jsx)(t.p,{children:"In this category, you can find guidance for designing and managing storage solutions on Open Telekom Cloud. Topics include block storage, object storage, file storage, and data backup strategies. Here are also provided recommendations for optimizing storage performance, ensuring data durability, and implementing cost-efficient storage architectures that meet the needs of various workloads."})]})}function l(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>i});var o=n(96540);const r={},s=o.createContext(r);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/06670262.a15763d1.js b/pr-preview/pr-186/assets/js/06670262.a15763d1.js new file mode 100644 index 000000000..fa7476750 --- /dev/null +++ b/pr-preview/pr-186/assets/js/06670262.a15763d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[73794],{29280:e=>{e.exports=JSON.parse('{"tag":{"label":"raid","permalink":"/docs-next/pr-preview/pr-186/docs/tags/raid","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/storage/elastic-volume-service/raid-array-creation-with-evs-disks","title":"RAID Array Creation with EVS Disks","description":"Redundant Array of Independent Disks (RAID) is a technology that combines multiple physical disks into one or more logical units for the purposes of data redundancy and performance improvement.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/storage/elastic-volume-service/raid-array-creation-with-evs-disks"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/07bb85f4.1a3dbb33.js b/pr-preview/pr-186/assets/js/07bb85f4.1a3dbb33.js new file mode 100644 index 000000000..888605bdd --- /dev/null +++ b/pr-preview/pr-186/assets/js/07bb85f4.1a3dbb33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[68371],{30360:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=s(74848),r=s(28453);const i={id:"migrating-from-other_clouds-to-cce",title:"Migrating Clusters from Other Clouds to CCE",tags:["cce","migration","minio","velero","obs"]},o="Migrating Clusters from Other Clouds to CCE",a={id:"best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce",title:"Migrating Clusters from Other Clouds to CCE",description:"Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.",source:"@site/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce.md",sourceDirName:"best-practices/containers/cloud-container-engine",slug:"/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce.md",tags:[{inline:!0,label:"cce",permalink:"/docs-next/pr-preview/pr-186/docs/tags/cce"},{inline:!0,label:"migration",permalink:"/docs-next/pr-preview/pr-186/docs/tags/migration"},{inline:!0,label:"minio",permalink:"/docs-next/pr-preview/pr-186/docs/tags/minio"},{inline:!0,label:"velero",permalink:"/docs-next/pr-preview/pr-186/docs/tags/velero"},{inline:!0,label:"obs",permalink:"/docs-next/pr-preview/pr-186/docs/tags/obs"}],version:"current",frontMatter:{id:"migrating-from-other_clouds-to-cce",title:"Migrating Clusters from Other Clouds to CCE",tags:["cce","migration","minio","velero","obs"]},sidebar:"bestPracticesSidebar",previous:{title:"Auto Scaling Based on ELB Monitoring Metrics",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics"},next:{title:"Backing Up Kubernetes Objects of other Clusters",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects"}},l={},c=[{value:"Solution Design",id:"solution-design",level:2},{value:"Migrating Data",id:"migrating-data",level:2},{value:"Migrating Databases and Storage",id:"migrating-databases-and-storage",level:3},{value:"Migrating Container Images",id:"migrating-container-images",level:3},{value:"Installing the Migration Tool",id:"installing-the-migration-tool",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Installing MinIO",id:"installing-minio",level:3},{value:"Installing Velero",id:"installing-velero",level:3},{value:"Migrating Resources in a Cluster",id:"migrating-resources-in-a-cluster",level:2},{value:"Prerequisites",id:"prerequisites-1",level:3},{value:"Backing Up an Application in the Source Cluster",id:"backing-up-an-application-in-the-source-cluster",level:3},{value:"Restoring Applications in the Target Cluster",id:"restoring-applications-in-the-target-cluster",level:3},{value:"Preparing Object Storage and Velero",id:"preparing-object-storage-and-velero",level:2},{value:"Preparing Object Storage MinIO",id:"preparing-object-storage-minio",level:3},{value:"Preparing Velero",id:"preparing-velero",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"migrating-clusters-from-other-clouds-to-cce",children:"Migrating Clusters from Other Clouds to CCE"}),"\n",(0,t.jsx)(n.p,{children:"Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service."}),"\n",(0,t.jsx)(n.h2,{id:"solution-design",children:"Solution Design"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.img,{alt:"image1",src:s(68986).A+"",width:"719",height:"512"}),"\n",(0,t.jsx)(n.img,{alt:"image1",src:s(70557).A+"",width:"731",height:"751"})]}),"\n",(0,t.jsx)(n.h2,{id:"migrating-data",children:"Migrating Data"}),"\n",(0,t.jsx)(n.h3,{id:"migrating-databases-and-storage",children:"Migrating Databases and Storage"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Storage Migration: Create a bucket on OBS. For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/object-storage-service/umn/obs_console_operation_guide/getting_started/creating_a_bucket.html",children:"Creating a Bucket"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"migrating-container-images",children:"Migrating Container Images"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Export the container images used in the other clusters: Pull the images to the client by referring to the operation guide of\nother Cloud Container Registry."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Upload the image files to Open Telekom Cloud SWR: Run the ",(0,t.jsx)(n.code,{children:"docker pull"})," command to push the image to Open Telekom\nCloud. For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/software-repository-container/umn/image_management/uploading_an_image_through_the_client.html",children:"Uploading an Image Through the Client"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"installing-the-migration-tool",children:"Installing the Migration Tool"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://velero.io/",children:"Velero"})," is an open-source backup and migration tool for Kubernetes\nclusters. It integrates the Persistent Volume(PV) data backup\ncapability of the Restic tool and can be used to back up Kubernetes\nresource objects (such as Deployments, Jobs, Services, and ConfigMaps)\nin the source cluster. Data in the PV mounted to the Pod are backed up\nand uploaded to the object storage. When a disruption or a major incident occurs or a migration\nis required, the target cluster can use Velero to obtain the\ncorresponding backup data from OBS and restore cluster resources as\nrequired."]}),"\n",(0,t.jsxs)(n.p,{children:["You need to prepare temporary object storage to store backup files before the\nmigration. Velero supports OBS or ",(0,t.jsx)(n.a,{href:"https://min.io/",children:"MinIO"})," as the object\nstorage (For more details about how to deploy MinIO, see ",(0,t.jsx)(n.a,{href:"#installing-minio",children:"Installing MinIO"}),"). OBS requires sufficient storage space for storing backup files.You can estimate the storage space based on your cluster scale and data volume. ",(0,t.jsx)(n.strong,{children:"You are advised to use OBS for backup"}),". For details about how to\ndeploy Velero, see ",(0,t.jsx)(n.a,{href:"#installing-velero",children:"Installing Velero"})]}),"\n",(0,t.jsxs)(n.p,{children:["CCE supports backup and restore using the ",(0,t.jsx)(n.strong,{children:"e-backup add-on"}),", which is\ncompatible with Velero and uses OBS as the storage backend. You can use\nVelero in on-premises clusters and use e-backup in CCE."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Without e-backup"}),": Install Velero in the source and target and\nmigrate resources by referring to ",(0,t.jsx)(n.a,{href:"#migrating-resources-in-a-cluster",children:"Migrating Resources in a Cluster (Velero)"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"With e-backup"}),": Install Velero in the source cluster and use OBS as\nthe storage backend by following the instructions described in ",(0,t.jsx)(n.a,{href:"#installing-velero",children:"Installing Velero"}),", and install e-backup in the target CCE cluster and migrate resources by referring to ",(0,t.jsx)(n.a,{href:"#migrating-resources-in-a-cluster",children:"Migrating Resources in a Cluster (Velero)"})]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The Kubernetes version of the source on-premises cluster must be\n1.10 or later, and the cluster can use DNS and Internet services\nproperly."}),"\n",(0,t.jsxs)(n.li,{children:["If you use OBS to store backup files, obtain the AK/SK of a user who\nhas the right to operate OBS. For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/object-storage-service/api-ref/appendixes/obtaining_access_keys_ak_sk.html",children:"Obtaining Access Keys (AK/SK)"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"If you use MinIO to store backup files, bind an EIP to the server\nwhere MinIO is installed and enable the API and console port of\nMinIO in the security group."}),"\n",(0,t.jsx)(n.li,{children:"The target CCE cluster has been created."}),"\n",(0,t.jsx)(n.li,{children:"The source cluster and target cluster must each have at least one\nidle node. It is recommended that the node specifications be 4 vCPUs\nand 8 GiB memory or higher."}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"installing-minio",children:"Installing MinIO"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://min.io/",children:"MinIO"})," is an open-source, high-performance object storage tool compatible\nwith the S3 API protocol. If MinIO is used to store backup files for\ncluster migration, you need a temporary server to deploy MinIO and\nprovide services for external systems. If you use OBS to store backup\nfiles, skip this section and go to ",(0,t.jsx)(n.a,{href:"#installing-velero",children:"Installing Velero"})]}),"\n",(0,t.jsx)(n.p,{children:"MinIO can be installed in any of the following locations:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Temporary ECS outside a cluster. If the MinIO server is installed outside the cluster, backup files\nwill not be affected when a catastrophic fault occurs in the\ncluster."}),"\n",(0,t.jsxs)(n.li,{children:["Idle nodes in a cluster. You can remotely log in to a node to install the MinIO server or\ncontainerize MinIO. For details, see the ",(0,t.jsx)(n.a,{href:"https://velero.io/docs/v1.7/contributions/minio/#set-up-server",children:"official Velero\ndocumentation"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.admonition,{type:"important",children:[(0,t.jsx)(n.p,{children:"For example, to containerize MinIO, do as follows:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Change the storage type (",(0,t.jsx)(n.code,{children:"empty dir"}),") in the YAML file\nprovided by Velero to ",(0,t.jsx)(n.code,{children:"HostPath"})," or ",(0,t.jsx)(n.code,{children:"Local"}),". Otherwise,\nbackup files will be permanently lost after the pod are restarted."]}),"\n",(0,t.jsxs)(n.li,{children:["Change the Service type to ",(0,t.jsx)(n.code,{children:"NodePort"})," or use other types of\nServices that support public network access to ensure that MinIO\ncan be accessed by external networks. Otherwise, backup files\ncannot be downloaded outside the cluster."]}),"\n"]})]}),"\n",(0,t.jsx)(n.p,{children:"Regardless of which deployment method is used, the server where MinIO is\ninstalled must have sufficient storage space, an EIP must be bound to\nthe server, and the MinIO service port must be enabled in the security\ngroup. Otherwise, backup files cannot be uploaded or downloaded."}),"\n",(0,t.jsx)(n.p,{children:"In this example, MinIO is installed on a temporary ECS outside the\ncluster."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Download MinIO."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mkdir /opt/minio\nmkdir /opt/miniodata\ncd /opt/minio\nwget https://dl.minio.io/server/minio/release/linux-amd64/minio\nchmod +x minio\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Configure the username and password of MinIO."}),"\n",(0,t.jsx)(n.p,{children:"The username and password set using this method are temporary\nenvironment variables and must be reset after the service is\nrestarted. Otherwise, the default root credential will be used to\ncreate the service."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"export MINIO_ROOT_USER=minio\nexport MINIO_ROOT_PASSWORD=minio123\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Create a service. In the command, ",(0,t.jsx)(n.code,{children:"/opt/miniodata/"})," indicates the\nlocal disk path for MinIO to store data."]}),"\n",(0,t.jsxs)(n.p,{children:["The default API port of MinIO is ",(0,t.jsx)(n.code,{children:"9000"}),", and the console port is\nrandomly generated. You can use the ",(0,t.jsx)(n.code,{children:"\\--console-address"})," parameter\nto specify a console port."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'./minio server /opt/miniodata/ --console-address ":30840" &\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"Enable the API and console ports in the firewall and security group\non the server where MinIO is to be installed. Otherwise, access to\nthe object bucket will fail."})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Use a browser to access ",(0,t.jsx)(n.code,{children:"http://:30840"}),". The MinIO console page is displayed."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"installing-velero",children:"Installing Velero"}),"\n",(0,t.jsxs)(n.p,{children:["Go to the OBS or MinIO console and create a bucket named ",(0,t.jsx)(n.code,{children:"velero"})," to\nstore backup files. You can custom the bucket name, which must be used\nwhen installing Velero. Otherwise, the bucket cannot be accessed and the\nbackup fails."]}),"\n",(0,t.jsx)(n.admonition,{type:"important",children:(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Velero instances need to be installed and deployed in both the\n",(0,t.jsx)(n.strong,{children:"source and target clusters"}),". The installation procedures are the\nsame, which are used for backup and restoration, respectively."]}),"\n",(0,t.jsxs)(n.li,{children:["The master node of a CCE cluster does not provide a port for remote\nlogin. You can install Velero using ",(0,t.jsx)(n.code,{children:"kubectl"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"If there are a large number of resources to back up, you are advised\nto adjust the CPU and memory resources of Velero and Restic to 1\nvCPU and 1 GiB memory or higher."}),"\n",(0,t.jsxs)(n.li,{children:["The object storage bucket for storing backup files must be\n",(0,t.jsx)(n.strong,{children:"empty"}),"."]}),"\n"]})}),"\n",(0,t.jsxs)(n.p,{children:["Download the latest, ",(0,t.jsx)(n.a,{href:"https://github.com/vmware-tanzu/velero/releases",children:"stable binary file"}),". This article uses\nVelero ",(0,t.jsx)(n.code,{children:"1.7.0"})," as an example. ",(0,t.jsx)(n.strong,{children:"The installation process in the source cluster is the same as that in the target cluster"}),":"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Download the binary file of Velero 1.7.0."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0/velero-v1.7.0-linux-amd64.tar.gz\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Install the Velero client."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"tar -xvf velero-v1.7.0-linux-amd64.tar.gz\ncp ./velero-v1.7.0-linux-amd64/velero /usr/local/bin\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Create the access key file ",(0,t.jsx)(n.strong,{children:"credentials-velero"})," for the backup\nobject storage."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"vim credentials-velero\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Replace the AK/SK in the file based on the site requirements. When\nyou use OBS, you can obtain the AK/SK by referring to ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/object-storage-service/api-ref/appendixes/obtaining_access_keys_ak_sk.html",children:"Obtaining Access Keys (AK/SK)"}),"."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"If MinIO is used, create an AK/SK pair in MinIO panel"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"[default]\naws_access_key_id={AK}\naws_secret_access_key={SK}\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Deploy the Velero server. Change the value of ",(0,t.jsx)(n.code,{children:"\\--bucket"})," to the\nname of the created object storage bucket. In this example, the\nbucket name is ",(0,t.jsx)(n.code,{children:"velero"}),". For more information about custom\ninstallation parameters, see ",(0,t.jsx)(n.a,{href:"https://velero.io/docs/v1.7/customize-installation/",children:"Customize Velero Install"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:'velero install \\\n --provider aws \\\n --plugins velero/velero-plugin-for-aws:v1.2.1 \\\n --bucket velero \\\n --secret-file ./credentials-velero \\\n --use-restic \\\n --use-volume-snapshots=false \\\n --backup-location-config region=eu-de,s3ForcePathStyle="true",s3Url=http://obs.eu-de.otc.t-systems.com\n'})}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Parameter"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--provider"}),(0,t.jsx)(n.td,{children:"Vendor who provides the plug-in."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--plugins"}),(0,t.jsx)(n.td,{children:"API component compatible with AWS S3. Both OBS and MinIO support the S3 protocol."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--bucket"}),(0,t.jsx)(n.td,{children:"Name of the object storage bucket for storing backup files. The bucket must be created in advance."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--secret-file"}),(0,t.jsxs)(n.td,{children:["Secret file for accessing the object storage, that is, the ",(0,t.jsx)(n.strong,{children:"credentials-velero"})," file created before"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--use-restic"}),(0,t.jsxs)(n.td,{children:["Whether to use ",(0,t.jsx)(n.strong,{children:"Restic"})," to support PV data backup. You are advised to enable this function. Otherwise, storage volume resources cannot be backed up."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--use-volume-snapshots"}),(0,t.jsx)(n.td,{children:"Whether to create the VolumeSnapshotLocation object for PV snapshot, which requires support from the snapshot program. Set this parameter to false."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"--backup-location-config"}),(0,t.jsxs)(n.td,{children:["OBS bucket configurations, including ",(0,t.jsx)(n.code,{children:"region"}),", ",(0,t.jsx)(n.code,{children:"s3ForcePathStyle"}),", and ",(0,t.jsx)(n.code,{children:"s3Url"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"region"}),(0,t.jsxs)(n.td,{children:["Region to which object storage bucket belongs. If OBS is used, set this parameter according to your region, for example, ",(0,t.jsx)(n.code,{children:"eu-nl"}),". If MinIO is used, set this parameter to minio."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"s3ForcePathStyle"}),(0,t.jsx)(n.td,{children:"The value true indicates that the S3 file path format is used."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"s3Url"}),(0,t.jsxs)(n.td,{children:["API access address of the object storage bucket. If OBS is used, set this parameter to ",(0,t.jsx)(n.code,{children:"http://obs.{region}.otc.t-systems.com"})," (region indicates the region where the object storage bucket is located). For example, if the region is Germany (",(0,t.jsx)(n.code,{children:"eu-de"}),"), the value is ",(0,t.jsx)(n.code,{children:"http://obs.eu-de.otc.t-systems.com"}),". If MinIO is used, set this parameter to ",(0,t.jsx)(n.code,{children:"http://{EIP of the node where minio is located}:9000"}),". The value of this parameter is determined based on the IP address and port of the node where MinIO is installed. ",(0,t.jsx)(n.strong,{children:"Note"}),": The access port in s3Url must be set to the API port of MinIO instead of the console port. The default API port of MinIO is ",(0,t.jsx)(n.code,{children:"9000"}),". To access MinIO installed outside the cluster, enter the public IP address of MinIO."]})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Table 1"})," Installation parameters of Velero"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["By default, a namespace named ",(0,t.jsx)(n.code,{children:"velero"})," is created for the Velero\ninstance. Run the following command to view the pod status:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"$ kubectl get pod -n velero\nNAME READY STATUS RESTARTS AGE\nrestic-rn29c 1/1 Running 0 16s\nvelero-c9ddd56-tkzpk 1/1 Running 0 16s\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"To prevent memory insufficiency during backup in the actual\nproduction environment, change the CPU and memory allocated to\nRestic and Velero."})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Check the interconnection between Velero and the object storage and\nensure that the status is ",(0,t.jsx)(n.code,{children:"Available"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"$ velero backup-location get\nNAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT\ndefault aws velero Available 2021-10-22 15:21:12 +0800 CST ReadWrite true\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"migrating-resources-in-a-cluster",children:"Migrating Resources in a Cluster"}),"\n",(0,t.jsx)(n.p,{children:"WordPress is used as an example to describe how to migrate an\napplication from a Kubernetes cluster to a CCE cluster. The WordPress\napplication consists of the WordPress and MySQL components, which are\ncontainerized. The two components are bound to two local storage volumes\nof the Local type respectively and provide external access through the\nNodePort Service."}),"\n",(0,t.jsxs)(n.p,{children:["Before the migration, use a browser to access the WordPress site, create\na site named ",(0,t.jsx)(n.strong,{children:"Migrate to CCE"}),", and publish an article to verify the\nintegrity of PV data after the migration. The article published in\nWordPress will be stored in the ",(0,t.jsx)(n.code,{children:"wp_posts"})," table of the MySQL\ndatabase. If the migration is successful, all contents in the database\nwill be migrated to the new cluster. You can verify the PV data\nmigration based on the migration result."]}),"\n",(0,t.jsx)(n.h3,{id:"prerequisites-1",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Before the migration, clear the abnormal pod resources in the source\ncluster. If the pod is in the abnormal state and has a PVC mounted,\nthe PVC is in the pending state after the cluster is migrated."}),"\n",(0,t.jsx)(n.li,{children:"Ensure that the cluster on the CCE side does not have the same\nresources as the cluster to be migrated because Velero does not\nrestore the same resources by default."}),"\n",(0,t.jsx)(n.li,{children:"To ensure that container images can be properly pulled after cluster\nmigration, migrate the images to SWR."}),"\n",(0,t.jsxs)(n.li,{children:["CCE ",(0,t.jsx)(n.strong,{children:"does not"})," support EVS disks of the ",(0,t.jsx)(n.code,{children:"ReadWriteMany"})," type. If\nresources of this type exist in the source cluster, change the\nstorage type to ",(0,t.jsx)(n.code,{children:"ReadWriteOnce"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Velero integrates the Restic tool to back up and restore storage\nvolumes. Currently, the storage volumes of the HostPath type are not\nsupported. For details, see ",(0,t.jsx)(n.a,{href:"https://velero.io/docs/v1.7/restic/#limitations",children:"Restic Restrictions"}),". To\nback up storage volumes of this type, replace the ",(0,t.jsx)(n.code,{children:"hostPath"})," volumes\nwith ",(0,t.jsx)(n.code,{children:"local"})," volumes."]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"important",children:(0,t.jsxs)(n.p,{children:["If a backup task involves storage of the\n",(0,t.jsx)(n.code,{children:"HostPath"})," type, the storage volumes of this type will be\nautomatically skipped and a warning message will be generated. This\nwill not cause a backup failure."]})}),"\n",(0,t.jsx)(n.h3,{id:"backing-up-an-application-in-the-source-cluster",children:"Backing Up an Application in the Source Cluster"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"(Optional) To back up the data of a specified storage volume in the\npod, add an annotation to the pod. The annotation template is as\nfollows:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"kubectl -n annotate backup.velero.io/backup-volumes=,,...\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"\\"}),": namespace where the pod is located."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"\\"}),": pod name."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"\\"}),": name of the persistent volume mounted to\nthe pod. You can run the ",(0,t.jsx)(n.code,{children:"describe"})," statement to query the pod\ninformation. The ",(0,t.jsx)(n.code,{children:"Volume"})," field indicates the names of all\npersistent volumes attached to the pod."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Add annotations to the pods of WordPress and MySQL. The pod names\nare something like ",(0,t.jsx)(n.code,{children:"wordpress-758fbf6fc7-s7fsr"})," and\n",(0,t.jsx)(n.code,{children:"mysql-5ffdfbc498-c45lh"}),". As long as the pods are in the default namespace\n",(0,t.jsx)(n.code,{children:"default"}),", the ",(0,t.jsx)(n.code,{children:"-n \\"})," parameter can be omitted."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"kubectl annotate pod/wordpress-758fbf6fc7-s7fsr backup.velero.io/backup-volumes=wp-storage\nkubectl annotate pod/mysql-5ffdfbc498-c45lh backup.velero.io/backup-volumes=mysql-storage\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Back up the application. During the backup, you can specify\nresources based on parameters. If no parameter is added, the entire\ncluster resources are backed up by default. For details about the\nparameters, see ",(0,t.jsx)(n.a,{href:"https://velero.io/docs/v1.7/resource-filtering/",children:"Resource filtering"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"\\--default-volumes-to-restic"}),": indicates that Restic is used\nto back up all storage volumes mounted to a pod. ",(0,t.jsx)(n.code,{children:"HostPath"}),"\nvolumes are not supported. If this parameter is left blank, the\nstorage volume specified by annotation in\ncce_bestpractice_0024__en-us_topic_0000001171703796_li686918502812> is backed up by default. This parameter is available\nonly if ",(0,t.jsx)(n.code,{children:"\\--use-restic"})," is specified during ",(0,t.jsx)(n.a,{href:"#installing-velero",children:"Velero Installation"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero backup create --default-volumes-to-restic\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"\\--include-namespaces"}),": backs up resources in a specified namespace."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero backup create --include-namespaces \n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"\\--include-resources"}),": backs up the specified resources."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero backup create --include-resources deployments\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"\\--selector"}),": backs up resources that match the selector."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero backup create --selector =\n"})}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["In this section, resources in the namespace ",(0,t.jsx)(n.code,{children:"default"})," are backed\nup. ",(0,t.jsx)(n.code,{children:"wordpress-backup"})," is the backup name. Specify the same backup\nname when restoring applications. The following is an example:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero backup create wordpress-backup --include-namespaces default --default-volumes-to-restic\n"})}),"\n",(0,t.jsxs)(n.p,{children:["If the following information is displayed, the backup task is ",(0,t.jsx)(n.strong,{children:"successfully"})," created:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'Backup request "wordpress-backup" submitted successfully. Run `velero backup describe wordpress-backup` or `velero backup logs wordpress-backup` for more details.\n'})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Check the backup status."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero backup get\n"})}),"\n",(0,t.jsx)(n.p,{children:"Information similar to the following is displayed:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"NAME STATUS ERRORS WARNINGS CREATED EXPIRES STORAGE LOCATION SELECTOR\nwordpress-backup Completed 0 0 2021-10-14 15:32:07 +0800 CST 29d default \n"})}),"\n",(0,t.jsx)(n.p,{children:"In addition, you can go to the object bucket to view the backup\nfiles. The backups path is the application resource backup path, and\nthe restic path is the PV data backup path."}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"image1",src:s(98219).A+"",width:"2528",height:"666"})}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"restoring-applications-in-the-target-cluster",children:"Restoring Applications in the Target Cluster"}),"\n",(0,t.jsxs)(n.p,{children:["The storage infrastructure of an on-premises cluster is different from\nthat of a cloud cluster. After the cluster is migrated, PVs cannot be\nmounted to pods. Therefore, during the migration, update the storage\nclass of the target cluster to shield the differences of underlying\nstorage interfaces between the two clusters when creating a workload and\nrequest storage resources of the corresponding type. For details, see\n",(0,t.jsx)(n.a,{href:"./updating-resources#updating-the-storage-class",children:"Updating the Storage Class"})]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Create a ",(0,t.jsx)(n.code,{children:"ConfigMap"})," in the CCE cluster and map the storage class used\nby the source cluster to the default storage class of the CCE\ncluster."]}),"\n",(0,t.jsxs)(n.p,{children:["In this example, the storage class name of the source cluster is\n",(0,t.jsx)(n.code,{children:"default"})," and the storage class name of the target cluster is\n",(0,t.jsx)(n.code,{children:"csi-disk"}),"."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"When an application containing PV data is restored in a CCE\ncluster, the defined storage class dynamically creates and\nmounts storage resources (such as EVS volumes) based on the PVC."}),"\n",(0,t.jsxs)(n.li,{children:["The storage resources of the cluster can be changed as required,\nnot limited to EVS volumes. To mount other types of storage,\nsuch as file storage and object storage, see\n",(0,t.jsx)(n.a,{href:"./updating-resources#updating-the-storage-class",children:"Updating the Storage Class"})]}),"\n"]})}),"\n",(0,t.jsx)(n.p,{children:"YAML file for the migrated cluster:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'apiVersion: v1\nkind: ConfigMap\nmetadata:\nname: change-storageclass-plugin-config\nnamespace: velero\nlabels:\n app.kubernetes.io/name: velero\n velero.io/plugin-config: "true"\n velero.io/change-storage-class: RestoreItemAction\ndata:\n default:csi-disk\n'})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Use the Velero tool to create a restore and specify a backup named\n",(0,t.jsx)(n.code,{children:"wordpress-backup"})," to restore the WordPress application to the CCE\ncluster."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"velero restore create --from-backup wordpress-backup\n"})}),"\n",(0,t.jsxs)(n.p,{children:["You can run the ",(0,t.jsx)(n.code,{children:"velero restore get"})," statement to view the\napplication restoration status."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["After the restoration is complete, check whether the application is\nrunning properly. If other adaptation problems may occur, rectify\nthe fault by following the procedure described in\n",(0,t.jsx)(n.a,{href:"./updating-resources",children:"Updating Resources Accordingly"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"preparing-object-storage-and-velero",children:"Preparing Object Storage and Velero"}),"\n",(0,t.jsx)(n.h3,{id:"preparing-object-storage-minio",children:"Preparing Object Storage MinIO"}),"\n",(0,t.jsx)(n.p,{children:"Prepare the object storage and save its AK/SK."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Install the MinIO."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# Binary installation\nmkdir /opt/minio\nmkdir /opt/miniodata\ncd /opt/minio\nwget https://dl.minio.io/server/minio/release/linux-amd64/minio\nchmod +x minio\nexport MINIO_ACCESS_KEY=minio\nexport MINIO_SECRET_KEY=minio123\n./minio server /opt/miniodata/ &\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Enter ",(0,t.jsx)(n.code,{children:"http://:9000"})," in the address box of a browser. Note that the corresponding ports on the firewall and security group must be enabled."]}),"\n",(0,t.jsxs)(n.p,{children:["To release the MinIO service as a service that can be accessed from outside the cluster, change the service type in ",(0,t.jsx)(n.code,{children:"00-minio-deployment.yaml"})," to ",(0,t.jsx)(n.code,{children:"NodePort"})," or ",(0,t.jsx)(n.code,{children:"LoadBalancer"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"kubectl apply -f ./velero-v1.4.0-linux-amd64/examples/minio/00-minio-deployment.yaml\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Create a bucket, which will be used in the migration."}),"\n",(0,t.jsxs)(n.p,{children:["Open the web page of the MinIO service. Use ",(0,t.jsx)(n.code,{children:"MINIO_ACCESS_KEY"}),"/",(0,t.jsx)(n.code,{children:"MINIO_SECRET_KEY"})," to log in to the MinIO service. In this example, use ",(0,t.jsx)(n.code,{children:"minio"}),"/",(0,t.jsx)(n.code,{children:"minio123"}),". Click ",(0,t.jsx)(n.em,{children:"Create bucket"}),". In this example, create a bucket named ",(0,t.jsx)(n.code,{children:"velero"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"preparing-velero",children:"Preparing Velero"}),"\n",(0,t.jsxs)(n.p,{children:["Perform the following operations on other cluster and CCE nodes that can run ",(0,t.jsx)(n.code,{children:"kubectl"})," commands:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Download the latest stable version of the migration tool from ",(0,t.jsx)(n.a,{href:"https://github.com/heptio/velero/releases",children:"here"}),"."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["This article uses ",(0,t.jsx)(n.strong,{children:"velero-v1.4.0-linux-amd64.tar.gz"})," as an example."]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Install the Velero client."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"mkdir /opt/ack2cce\ncd /opt/ack2cce\ntar -xvf velero-v1.4.0-linux-amd64.tar.gz -C /opt/ack2cce\ncp /opt/ack2cce/velero-v1.4.0-linux-amd64/velero /usr/local/bin\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Install the Velero server."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Prepare the MinIO authentication file:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"cd /opt/ack2cce\nvi credentials-velero\n\n[default]\naws_access_key_id = minio\naws_secret_access_key = minio123\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Install the Velero server:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'velero install \\\n --provider aws \\\n --plugins velero/velero-plugin-for-aws:v1.0.0 \\\n --bucket velero \\\n --secret-file ./credentials-velero \\\n --use-restic \\\n --use-volume-snapshots=false \\\n --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://{EIP of the node where minio runs}:9000\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"s3Url"})," must be set to the actual MinIO address."]})}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},68986:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/en-us_image_0000001402114285-a22a695a80314852081dc4ac62700377.png"},98219:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/en-us_image_0000001480191270-adc2492d8eb498d182134039db9474b5.png"},70557:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/en-us_image_0264642164-6d1ea00afa15183e93982d174884c95b.png"},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(96540);const r={},i=t.createContext(r);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/086e27a5.4192e8ec.js b/pr-preview/pr-186/assets/js/086e27a5.4192e8ec.js new file mode 100644 index 000000000..e55acf3d0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/086e27a5.4192e8ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[22743],{996:e=>{e.exports=JSON.parse('{"tag":{"label":"iam","permalink":"/docs-next/pr-preview/pr-186/docs/tags/iam","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":3,"items":[{"id":"blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam","title":"Authentik as an Identity Provider for IAM","description":"This guide will walk you through the process of integrating authentik, with Identity and Access Management (IAM) of Open Telekom Cloud using OAuth 2.0.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam"},{"id":"blueprints/by-use-case/security/authentik/identity-federation-github","title":"Identity Federation with GitHub","description":"Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-github"},{"id":"blueprints/by-use-case/security/keycloak/identity-federation-github","title":"Identity Federation with GitHub","description":"Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant\'s IAM.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-github"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/08953adc.666ea27b.js b/pr-preview/pr-186/assets/js/08953adc.666ea27b.js new file mode 100644 index 000000000..7deecadda --- /dev/null +++ b/pr-preview/pr-186/assets/js/08953adc.666ea27b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28070],{67612:e=>{e.exports=JSON.parse('{"tag":{"label":"by-industry","permalink":"/docs-next/pr-preview/pr-186/docs/tags/by-industry","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":10,"items":[{"id":"blueprints/by-industry/finance/cloud-euvic","title":"EUVIC: Cloud-Based Credit Portal for SaarLB","description":"The software company EUVIC has developed a portal which enables business customers\' credit requests to be processed interactively and at a considerably faster rate. Since customer data is particularly sensitive, the renowned software company used the Open Telekom Cloud to develop and operate the credit portal. \\"T-Systems\' servers are located in highly secure, multi-certified data centers in Germany,\\" says Daniel Piecha of EUVIC. With the cloud solution, the Landesbank meets the strict regulations of the financial supervisory authority and the European General Data Protection Regulation (GDPR). Only authorized employees of the bank have unencrypted access to the data in the system. In addition, a neutral third party company reviewed the security concept and certified the cloud solution \u2013 after a penetration test \u2013 as having a very high level of security.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-euvic"},{"id":"blueprints/by-industry/telecoms/fiber-factory","title":"Fiber-Factory: Accelerated Grid Expansion","description":"More than 33 million households in Germany can access speeds of over 50 MBit/s, thanks to Telekom\'s fiber optic expansion. This enables people to work from home, streaming, and business line connectivity. Now Telekom is planning to expand the network for up to two million more households each year starting in 2021. This involved extensive construction measures. In order to plan these more efficiently, secure resources from the Open Telekom Cloud are providing support.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/fiber-factory"},{"id":"blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud","title":"Fuse-AI: e-Health from the Cloud","description":"Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer \u2013 such as carcinomas \u2013 on MRI scan and assess whether a tumor is benign or malignant. And that doesn\u2019t just save doctors time. \u201cThe biggest advantage is the improved quality of a diagnosis,\u201d says Maximilian Waschka, one of the four Fuse-AI founders. \u201cOur algorithm helps radiologists notice abnormalities on thousands of images more reliably.\u201d The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud"},{"id":"blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services","title":"Mundi Web Services: New Business from Space","description":"The European Space Agency\'s (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services"},{"id":"blueprints/by-industry/retail/brodos-open-telekom-cloud","title":"Omnichannel Platform by brodos.net","description":"With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud"},{"id":"blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app","title":"Open Telekom Cloud for Dementia Therapy App","description":"To meet the strict guidelines for the German digital health market, the team from Brain+ wanted to provide the backend for its app from a German cloud, and Brain+ chose the Open Telekom Cloud. In addition to that, with a growing focus on the UK market, Open Telekom Cloud can provide a framework allowing the team to scale to the UK and later to the rest of Europe.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app"},{"id":"blueprints/by-industry/finance/cloud-particulate","title":"Particulate: Donation Platform on Open Telekom Cloud","description":"Around 5,000 people in the Rhine-Main region are already so-called \u201cRadgeber\u201d or cyclist donors: Together with the start-up Particulate Solutions, Deutsche Bahn (DB) has developed the platform, which allows every cyclist participating in the campaign to become a donor. The technology for the platform is based on the Open Telekom Cloud, Telekom\'s public cloud offering.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-particulate"},{"id":"blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger","title":"Sovereign Digitalization for the City of Kirchheim unter Teck","description":"The City of Kirchheim unter Teck uses the BundesMessenger from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger"},{"id":"blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp","title":"UFA Adopts Full-Cloud Workflow in Film Production","description":"UFA opts for the Open Telekom Cloud. Delivery vans commuting by road to transport hard disks will soon be a thing of the past.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp"},{"id":"blueprints/by-industry/innovation/xelera-open-telekom-cloud","title":"Xelera: Middleware Ignites the Application Turbo","description":"The founders of Hessian start-up Xelera have developed middleware\xa0that greatly accelerates data processing. The best thing: Computing-intensive algorithms are processed in freely programmable circuits, so-called Field Programmable Gate Arrays (FPGAs). These are hardware cards that can be individually programmed depending on the intended use. In this way, they process tasks within a server considerably faster than standard hardware and thus considerably accelerate applications.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/09922829.d1393184.js b/pr-preview/pr-186/assets/js/09922829.d1393184.js new file mode 100644 index 000000000..a78e63e15 --- /dev/null +++ b/pr-preview/pr-186/assets/js/09922829.d1393184.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30290],{81205:e=>{e.exports=JSON.parse('{"tag":{"label":"secrets","permalink":"/docs-next/pr-preview/pr-186/docs/tags/secrets","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/security/cce-vault","title":"Secrets management with CCE and Hashicorp Vault","description":"Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vault"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/0e4e746d.2f5db134.js b/pr-preview/pr-186/assets/js/0e4e746d.2f5db134.js new file mode 100644 index 000000000..14a32642c --- /dev/null +++ b/pr-preview/pr-186/assets/js/0e4e746d.2f5db134.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[40712],{38031:e=>{e.exports=JSON.parse('{"tag":{"label":"google","permalink":"/docs-next/pr-preview/pr-186/docs/tags/google","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":4,"items":[{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets","title":"Design with dynamic subnets","description":"The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/multi-region","title":"Design with static subnets in multiple regions","description":"The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute2 connects to Subnet2). The compute in the first region (e.g., Compute) has access to the internet.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-region"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy","title":"How to deploy your application on Google Cloud","description":"Prerequisites","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/google","title":"Multicloud Google Cloud","description":"This section shows how to deploy your application on Google Cloud. You can create your application in multiple regions. Cloud Create can auto-generate one subnet for each region or you can design the subnets manually.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1021.e42184f4.js b/pr-preview/pr-186/assets/js/1021.e42184f4.js new file mode 100644 index 000000000..f443f7f23 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1021.e42184f4.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1021; +exports.ids = [1021]; +exports.modules = { + +/***/ 91021: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_wallet: () => (/* binding */ ContentWallet) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentWallet = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.7.225L16.625 3H20.5v2H22v6h-6a2.5 2.5 0 00-.164 4.995L16 16h6v3a3 3 0 01-2.824 2.995L19 22H5a3 3 0 01-2.995-2.824L2 19V6a3 3 0 012.824-2.995L5 3h4.535L15.7.225zM22 12.5v2h-6a1 1 0 01-.117-1.993L16 12.5h6zM14.8 2.275L8.745 5h6.965l-.91-2.725z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20.5 5V3h-3.9L15.7.25 9.55 3H5C3.35 3 2 4.35 2 6v13c0 1.65 1.35 3 3 3h14c1.65 0 3-1.35 3-3V5h-1.5zm-4.8 0H8.75l6.05-2.75.9 2.75zm4.8 9.5H16c-.55 0-1-.45-1-1s.45-1 1-1h4.5v2zM16 11c-1.4 0-2.5 1.1-2.5 2.5S14.6 16 16 16h4.5v3c0 .85-.65 1.5-1.5 1.5H5c-.85 0-1.5-.65-1.5-1.5V6.5h17V11H16z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentWallet.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10230.4196d21b.js b/pr-preview/pr-186/assets/js/10230.4196d21b.js new file mode 100644 index 000000000..819d090ea --- /dev/null +++ b/pr-preview/pr-186/assets/js/10230.4196d21b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[10230],{10230:(t,i,e)=>{e.r(i),e.d(i,{scale_icon_action_play_nb:()=>l});var s=e(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M6 20l14-8L6 4z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10248.305f6048.js b/pr-preview/pr-186/assets/js/10248.305f6048.js new file mode 100644 index 000000000..f29961bc8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/10248.305f6048.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[10248],{10248:(l,t,i)=>{i.r(t),i.d(t,{scale_icon_communication_call_incoming:()=>s});var e=i(90936);const s=class{constructor(l){(0,e.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M5.9 3.5l3.4 5.95-1.7 1.7c-.25.25-.3.7-.05 1l.423.512.34.4.387.438.43.466a23.96 23.96 0 00.954.955l.466.43.438.385.584.494.328.27a.76.76 0 00.92.019l.08-.069 1.6-1.65 5.95 3.35-.043.442-.042.338c-.172 1.231-.63 2.95-2.165 3.92-.8.5-1.7.65-2.5.65a6.477 6.477 0 01-1.458-.183l-.326-.082-.466-.135C11.15 22.3 8.5 20.5 6 18c-2.45-2.5-4.25-5.15-5.1-7.5l-.077-.262-.06-.228L.7 9.744C.487 8.75.337 7.137 1.2 5.75c.962-1.462 2.574-1.947 3.768-2.138l.344-.05.16-.02L5.9 3.5zm15.5-1.95c.3-.3.75-.3 1.05 0 .273.273.298.71.074.976L16.75 8.25l2.2 2.2-6.9 1.45L13.5 5l2.2 2.2 5.7-5.65z","fill-rule":"evenodd"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M5.9 3.5l3.4 5.95-1.7 1.7c-.25.25-.3.7-.05 1l.423.512.34.4.387.438.43.466a23.96 23.96 0 00.954.955l.466.43.438.385.584.494.328.27a.76.76 0 00.92.019l.08-.069 1.6-1.65 5.95 3.35-.043.442-.042.338c-.172 1.231-.63 2.95-2.165 3.92-.8.5-1.7.65-2.5.65a6.477 6.477 0 01-1.458-.183l-.326-.082-.466-.135C11.15 22.3 8.5 20.5 6 18c-2.45-2.5-4.25-5.15-5.1-7.5l-.077-.262-.06-.228L.7 9.744C.487 8.75.337 7.137 1.2 5.75c.962-1.462 2.574-1.947 3.768-2.138l.344-.05.16-.02L5.9 3.5zm-.75 1.6c-1.25.2-2.15.7-2.6 1.45-.522.815-.49 1.822-.364 2.562l.054.281.059.246L2.4 10c.7 2.15 2.4 4.6 4.7 6.9 2.35 2.35 4.8 4.05 6.9 4.75l.238.073.221.057.127.03.28.054c.74.127 1.769.158 2.584-.364.7-.42 1.182-1.232 1.406-2.355l.044-.245-4.05-2.3-.9.9c-.8.8-2.1.85-3 .15l-.324-.25a19.79 19.79 0 01-.178-.142l-.386-.32-.419-.362-.444-.403a25.7 25.7 0 01-.463-.44L8.5 15.5l-.475-.512-.443-.493-.592-.683-.64-.762a2.225 2.225 0 01.035-2.876l.115-.124.95-.9-2.3-4.05zM21.4 1.55c.3-.3.75-.3 1.05 0 .273.273.298.71.074.976L16.75 8.25l2.2 2.2-6.9 1.45L13.5 5l2.2 2.2 5.7-5.65z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1039.3d8c8838.js b/pr-preview/pr-186/assets/js/1039.3d8c8838.js new file mode 100644 index 000000000..fa0e983fd --- /dev/null +++ b/pr-preview/pr-186/assets/js/1039.3d8c8838.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1039; +exports.ids = [1039]; +exports.modules = { + +/***/ 71039: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_internal_link: () => (/* binding */ NavigationInternalLink) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationInternalLink = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.525 3L13.07 8.44 9.875 5.245l-2.01 9.705-.315 1.5 1.5-.315 7.895-1.635 1.81-.39-3.195-3.195L21 5.5V18a3 3 0 01-2.824 2.995L18 21H6a3 3 0 01-2.995-2.824L3 18V3h15.525zm2.63-.906c.2 0 .39.08.53.221a.745.745 0 01.077.97l-.077.09-7.54 7.53L16.74 13.5l-7.895 1.655L10.5 7.26l2.585 2.595 7.54-7.54a.745.745 0 01.53-.221z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.8 3l-1.5 1.5H4.5V18c0 .8.576 1.423 1.352 1.493L6 19.5h12c.8 0 1.423-.576 1.493-1.352L19.5 18V7.7L21 6.2V18a3.01 3.01 0 01-2.824 2.995L18 21H6a3.01 3.01 0 01-2.995-2.824L3 18V3h14.8zm2.85-.7c.3-.3.75-.3 1.05 0 .273.273.298.71.074.976L14.15 10.9l2.6 2.6-7.9 1.65 1.65-7.9 2.6 2.6 7.55-7.55z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationInternalLink.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10467394.84dc7128.js b/pr-preview/pr-186/assets/js/10467394.84dc7128.js new file mode 100644 index 000000000..3c9a6eea5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/10467394.84dc7128.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[40859],{70225:e=>{e.exports=JSON.parse('{"tag":{"label":"hashicorp","permalink":"/docs-next/pr-preview/pr-186/docs/tags/hashicorp","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/security/cce-vault","title":"Secrets management with CCE and Hashicorp Vault","description":"Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vault"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/104a22a6.dfec5c85.js b/pr-preview/pr-186/assets/js/104a22a6.dfec5c85.js new file mode 100644 index 000000000..6c7d79e4a --- /dev/null +++ b/pr-preview/pr-186/assets/js/104a22a6.dfec5c85.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[42752],{93139:e=>{e.exports=JSON.parse('{"tag":{"label":"rds","permalink":"/docs-next/pr-preview/pr-186/docs/tags/rds","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"blueprints/by-use-case/security/keycloak/cce-keycloak","title":"Deploy Keycloak on CCE","description":"In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/cce-keycloak"},{"id":"blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs","title":"Using RDS for PostgreSQL to Set Up Umami on ECS","description":"In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10511.a1e13d7a.js b/pr-preview/pr-186/assets/js/10511.a1e13d7a.js new file mode 100644 index 000000000..f79c4ab0c --- /dev/null +++ b/pr-preview/pr-186/assets/js/10511.a1e13d7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[10511],{10511:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_route:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M18 6a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0m1.418 7.973l.087-.007.05-.087 3.405-5.873a4 4 0 10-6.92 0l2.632 4.54c-1.4.176-4.087.686-5.025 2.058a1.95 1.95 0 00-.258 1.718c.386 1.273 1.888 1.548 3.343 1.815 1.732.317 2.448.551 2.395 1.176-.117 1.402-5.689 1.639-9.544 1.679l-.872 1.505c6.69-.031 11.686-.382 11.911-3.059.175-2.083-2.019-2.484-3.62-2.778-.868-.158-2.057-.376-2.178-.773a.456.456 0 01.061-.436c.547-.801 2.94-1.338 4.533-1.478M7 12a2.5 2.5 0 11.002-5.002A2.5 2.5 0 017 12m4.596-7.096A6.475 6.475 0 007 3a6.475 6.475 0 00-4.596 1.904 6.498 6.498 0 00-1.027 7.856L7 22.458l5.623-9.698a6.498 6.498 0 00-1.027-7.856","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M18 6a1.5 1.5 0 113-.001A1.5 1.5 0 0118 6m1.42 7.973l.085-.007.05-.086 3.405-5.874a4.001 4.001 0 00-6.289-4.835 4.001 4.001 0 00-.632 4.835l2.632 4.54c-1.4.176-4.086.686-5.024 2.058a1.949 1.949 0 00-.258 1.718c.385 1.273 1.888 1.548 3.342 1.815 1.733.317 2.448.551 2.396 1.176-.118 1.401-5.689 1.639-9.544 1.679l-.873 1.505c6.69-.03 11.687-.382 11.912-3.059.174-2.083-2.019-2.484-3.62-2.777-.868-.159-2.057-.377-2.178-.774a.456.456 0 01.061-.436c.547-.801 2.94-1.338 4.534-1.478M7 7a2.5 2.5 0 10.001 5 2.5 2.5 0 000-5m4.325 5.008L7 19.467l-4.326-7.459a5.007 5.007 0 01.79-6.044A4.97 4.97 0 017 4.5c1.335 0 2.591.52 3.535 1.464a5.007 5.007 0 01.791 6.044m.27-7.104A6.48 6.48 0 007 3a6.498 6.498 0 00-5.623 9.76L7 22.458l5.623-9.698a6.5 6.5 0 00-1.027-7.856","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1053.49326e06.js b/pr-preview/pr-186/assets/js/1053.49326e06.js new file mode 100644 index 000000000..f045e8238 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1053.49326e06.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1053; +exports.ids = [1053]; +exports.modules = { + +/***/ 91053: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_moon_rain: () => (/* binding */ WeatherMoonRain) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherMoonRain = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.966 18.196a.142.142 0 01.234.078v.047l-.479 3.064a1.226 1.226 0 01-1.402 1.022c-.974-.152-1.364-1.319-.728-2.027l.09-.09 2.285-2.094zm-1.25-4.16a.142.142 0 01.234.08v.046l-.529 3.387-.014.051a1.34 1.34 0 11-2.593-.66c.053-.17.141-.335.27-.482l.105-.106 2.527-2.316zm4.934-1.304a.142.142 0 01.234.079v.047l-.615 3.935a1.537 1.537 0 01-1.756 1.28c-1.226-.191-1.714-1.67-.896-2.555l.096-.095 2.937-2.691zm-2.543-6.769a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.26 3.753c0 2.265-1.775 4.121-3.998 4.231l-.21.006h-.132a3.03 3.03 0 00.161-.48l.034-.168.615-3.936a1.34 1.34 0 00-2.122-1.286l-.11.091L9.14 14.32a1.342 1.342 0 00-2.124-1.26l-.11.09-2.528 2.317c-.331.304-.577.69-.71 1.118-.099.318-.13.648-.1.973A3.859 3.859 0 01.4 13.759c0-1.4.755-2.683 1.952-3.365C2.455 8.572 3.96 7.12 5.796 7.12c.27 0 .54.033.805.098a5.53 5.53 0 013.506-1.256zm8.07-5.458a5.383 5.383 0 012.621-.03 4.548 4.548 0 003.057 8.515 5.373 5.373 0 01-2.933 1.969 5.37 5.37 0 01-2.685.015A5.421 5.421 0 0016.3 8.79a6.749 6.749 0 00-2.137-2.676A5.404 5.404 0 0118.177.505z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.965 18.196a.141.141 0 01.235.078v.047l-.48 3.063a1.227 1.227 0 01-1.401 1.023c-.974-.152-1.365-1.319-.728-2.027l.089-.09 2.285-2.094zm-1.25-4.16a.142.142 0 01.235.079v.047l-.53 3.386-.045.181a1.339 1.339 0 01-1.488.937c-.812-.127-1.251-.899-1.105-1.602l.032-.123.046-.127a1.32 1.32 0 01.224-.356l.104-.106 2.527-2.316zm4.934-1.304a.141.141 0 01.235.079v.047l-.616 3.935a1.536 1.536 0 01-1.755 1.28c-1.227-.191-1.715-1.669-.897-2.554l.096-.096 2.937-2.691zm-2.55-6.75a5.577 5.577 0 015.243 3.638 4.245 4.245 0 012.258 3.744 4.242 4.242 0 01-4.025 4.23l-.211.006h-.085a2.88 2.88 0 00.132-.407l.043-.215.092-.587a3.038 3.038 0 002.854-3.027 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44c0 1.296.927 2.379 2.152 2.621-.158.37-.22.776-.187 1.184A3.877 3.877 0 01.4 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.177.504a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherMoonRain.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10576.2a396a94.js b/pr-preview/pr-186/assets/js/10576.2a396a94.js new file mode 100644 index 000000000..a79e98908 --- /dev/null +++ b/pr-preview/pr-186/assets/js/10576.2a396a94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[10576],{10576:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_unlock:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M7 11V7a5 5 0 0110 0h1.5a6.5 6.5 0 10-13 0v4H3v9.5a3 3 0 003 3h12a3 3 0 003-3V11H7zm6 6.61v1.89h-2v-1.89a1.5 1.5 0 112 0z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 .5c2.3 0 4.45 1.25 5.6 3.2a6.4 6.4 0 01.893 2.986L18.5 7H17c0-.9-.25-1.8-.7-2.55C15.4 2.95 13.75 2 12 2 9.322 2 7.119 4.133 7.005 6.784L7 7v4h14v9.5a3.01 3.01 0 01-2.824 2.995L18 23.5H6a3.01 3.01 0 01-2.995-2.824L3 20.5V11h2.5V7C5.5 3.4 8.4.5 12 .5zm7.5 12h-15v8c0 .8.576 1.423 1.352 1.493L6 22h12c.8 0 1.423-.576 1.493-1.352l.007-.148v-8zM12 15c.85 0 1.5.65 1.5 1.5 0 .4-.158.76-.404 1.011L13 17.6v1.9h-2v-1.9c-.3-.25-.5-.65-.5-1.1 0-.85.65-1.5 1.5-1.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1064.aa1668b9.js b/pr-preview/pr-186/assets/js/1064.aa1668b9.js new file mode 100644 index 000000000..ac846083e --- /dev/null +++ b/pr-preview/pr-186/assets/js/1064.aa1668b9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1064; +exports.ids = [1064]; +exports.modules = { + +/***/ 51064: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_mobile_phone_number: () => (/* binding */ CommunicationMobilePhoneNumber) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationMobilePhoneNumber = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.001.5a3 3 0 012.995 2.824l.005.176V6H23v6.5a4.5 4.5 0 01-4.288 4.495L18.5 17h-3.499v3.5a3 3 0 01-2.823 2.994L12 23.5H4a3 3 0 01-2.994-2.824L1 20.5v-17A3 3 0 013.825.505L4.001.5h8zm-4 18a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm13.5-11H6.502v6l-2 2h14a3.003 3.003 0 002.994-2.824l.005-.176v-5zm-4.019 1.71c.911 0 1.521.706 1.521 1.476 0 .53-.173.93-.427 1.305l-.1.14-1.129 1.468H16.34l1.11-1.437-.013-.013h-.045c-.866 0-1.437-.705-1.437-1.463 0-.77.61-1.475 1.527-1.475zm-2.454.103v2.663h.455v.77h-.455v.853H14.2v-.853h-1.867v-.982l1.912-2.45h.783zm-4.46.674v1.116h1.116v.706h-1.116v1.116h-.706V11.81H8.746v-.706h1.116V9.987h.706zm3.632.687h-.038l-1.033 1.27v.032H14.2v-1.302zM17.482 10c-.41 0-.673.308-.673.686 0 .372.263.668.673.668.405 0 .68-.29.68-.668a.666.666 0 00-.68-.686zm-7.48-8h-4v1.5h4V2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .5a3 3 0 012.98 2.65l.015.174V6h-1.5V3.375a1.501 1.501 0 00-1.359-1.369L12 2l-2 .002V3.5H6V2.004l-2.125.001a1.5 1.5 0 00-1.369 1.358L2.5 3.5l.005 17.125a1.5 1.5 0 001.358 1.369L4 22l8.125-.005a1.5 1.5 0 001.369-1.358l.006-.137-.001-3.5h1.5v3.5a3 3 0 01-2.65 2.98l-.173.015L4 23.5a3 3 0 01-2.98-2.65l-.015-.174L1 3.5A3.002 3.002 0 013.65.52l.174-.015L12 .5zm-4 18A1.25 1.25 0 118 21a1.25 1.25 0 010-2.5zm13.5-11v5l-.005.176a3.005 3.005 0 01-2.82 2.819l-.175.005h-14l2-2v-6h15zm-4.02 1.711c-.917 0-1.526.706-1.526 1.476 0 .712.506 1.38 1.287 1.456l.15.007h.045l.013.012-1.111 1.438h1.008l1.129-1.469.1-.14c.254-.375.427-.774.427-1.304 0-.77-.61-1.476-1.521-1.476zm-2.454.103h-.782l-1.912 2.451v.981h1.867v.854h.827v-.854h.456v-.77h-.456V9.314zm-4.46.674h-.705v1.116H8.745v.706H9.86v1.116h.706V11.81h1.116v-.706h-1.116V9.988zm3.633.686v1.302h-1.072v-.031l1.033-1.271h.039zM17.48 10c.404 0 .68.308.68.687 0 .378-.276.667-.68.667a.645.645 0 01-.674-.667c0-.379.263-.687.674-.687z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationMobilePhoneNumber.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10685.e6b575eb.js b/pr-preview/pr-186/assets/js/10685.e6b575eb.js new file mode 100644 index 000000000..b4e73e61c --- /dev/null +++ b/pr-preview/pr-186/assets/js/10685.e6b575eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[10685],{10685:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_content_key:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M18.4 1.25l2.5 2.45c1.104 1.104 1.148 2.9.132 4.103l-.132.147-.55.55h-1.8v2h-2v1.8l-1.15 1.15c.75 2.5.1 5.2-1.75 7.05a7.006 7.006 0 01-4.95 2.05c-2.3 0-4.65-1.2-6.05-3.5-.35-.55-.6-1.15-.75-1.8-.6-2.5.1-4.95 1.8-6.65 1.784-1.784 4.405-2.452 6.786-1.825l.264.075 7.65-7.6zM7.1 16.1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M18.4 1.25l2.5 2.45c1.104 1.104 1.148 2.9.132 4.103l-.132.147-.55.55h-1.8v2h-2v1.8l-1.15 1.15c.75 2.5.1 5.2-1.75 7.05a7.006 7.006 0 01-4.95 2.05c-2.3 0-4.65-1.2-6.05-3.5-.35-.55-.6-1.15-.75-1.8-.6-2.5.1-4.95 1.8-6.65 1.784-1.784 4.405-2.452 6.786-1.825l.264.075 7.65-7.6zm0 2.1l-7.25 7.3-.45-.2c-.65-.3-1.3-.4-2-.4-1.45 0-2.85.55-3.9 1.6-1.05 1.05-1.6 2.4-1.6 3.9s.55 2.85 1.6 3.9c2.35 2.35 6.3 2.1 8.35-.7 1.05-1.432 1.28-3.365.69-5.06l-.09-.24-.15-.35 1.4-1.4V9h2V7h2.65l.15-.15c.563-.563.598-1.389.105-1.984L19.8 4.75l-1.4-1.4zM7.1 16.1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/10741.cc592ad7.js b/pr-preview/pr-186/assets/js/10741.cc592ad7.js new file mode 100644 index 000000000..b0991c3d1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/10741.cc592ad7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[10741],{10741:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_mobile_devices_combination:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M10 6a2.5 2.5 0 012.495 2.336l.005.164v13a2.5 2.5 0 01-2.336 2.495L10 24H4a2.5 2.5 0 01-2.492-2.302L1.5 21.5v-13a2.5 2.5 0 012.336-2.495L4 6h6zM7 19.75a1 1 0 100 2 1 1 0 000-2zM19.5 0a3 3 0 012.995 2.824L22.5 3v14.5a3 3 0 01-2.824 2.995l-.176.005H14V19h5.5a1.5 1.5 0 001.493-1.356L21 17.5V3a1.5 1.5 0 00-1.356-1.493L19.5 1.5H10a1.5 1.5 0 00-1.493 1.356L8.5 3v1.5H7V3A3 3 0 019.824.005L10 0h9.5zm-4.75 16a1 1 0 110 2 1 1 0 010-2zM8.5 7.5h-3V9h3V7.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M10 6a2.473 2.473 0 012.495 2.333l.005.167v13a2.473 2.473 0 01-2.333 2.495L10 24H4a2.473 2.473 0 01-2.495-2.333L1.5 21.5v-13a2.473 2.473 0 012.333-2.495L4 6h6zM5.5 7.5H4c-.51 0-.935.388-.993.884L3 8.5v13c0 .51.388.935.884.993L4 22.5h6c.51 0 .935-.388.993-.884L11 21.5v-13c0-.51-.388-.935-.884-.993L10 7.5H8.5V9h-3V7.5zM7 19.75a1 1 0 110 2 1 1 0 010-2zM19.5 0a3.01 3.01 0 012.995 2.824L22.5 3v14.5a3.01 3.01 0 01-2.824 2.995l-.176.005H14V19h5.5c.8 0 1.423-.576 1.493-1.352L21 17.5V3c0-.8-.576-1.423-1.352-1.493L19.5 1.5H10c-.8 0-1.423.576-1.493 1.352L8.5 3v1.5H7V3A3.01 3.01 0 019.824.005L10 0h9.5zm-4.75 16a1 1 0 110 2 1 1 0 010-2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1078.1517ab45.js b/pr-preview/pr-186/assets/js/1078.1517ab45.js new file mode 100644 index 000000000..364dca9d7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1078.1517ab45.js @@ -0,0 +1,308 @@ +"use strict"; +exports.id = 1078; +exports.ids = [1078]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 81078: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_radio_button_group: () => (/* binding */ RadioButtonGroup) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); + + + + + +const radioButtonGroupCss = ":host{--font-weight-label:var(--telekom-typography-font-weight-medium);--font-size-label:var(--telekom-typography-font-size-body);--font-size-helper-text:var(--telekom-typography-font-size-small);--color-helper-text:var(\n --telekom-color-text-and-icon-functional-informational\n );--padding-bottom-helper-text:var(--telekom-spacing-composition-space-04);--margin-top-helper-text:var(--telekom-spacing-composition-space-03);--font-size-helper-text:var(--telekom-typography-font-size-small);--font-weight-helper-text:var(--telekom-typography-font-weight-bold);--font-size-error-helper-text:var(--telekom-typography-font-size-small);--color-error-helper-text:var(\n --telekom-color-text-and-icon-functional-danger\n );--padding-bottom-error-helper-text:var(\n --telekom-spacing-composition-space-04\n );--margin-top-error-helper-text:var(--telekom-spacing-composition-space-03);--font-weight-error-helper-text:var(--telekom-typography-font-weight-medium);--color-error-helper-text-hcm:var(\n --telekom-color-text-and-icon-white-standard\n );--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--font-size-title:var(--font-size-label);--font-weight-title:var(--telekom-typography-font-weight-medium);--padding-bottom-title:var(--telekom-spacing-composition-space-03);--margin-left-title:var(--telekom-spacing-composition-space-02);--margin-top-slotted-item:var(--telekom-spacing-composition-space-05);margin-top:var(--margin-top-slotted-item)}.radio-button-group{display:inline-flex;flex-direction:column;border:0;margin:0;padding:0}.radio-button-group__container{display:flex;flex-direction:column}.radio-button-group__helper-text{color:var(--color-helper-text);font-size:var(--font-size-helper-text);font-weight:var(--font-weight-helper-text);display:flex;align-items:center;line-height:var(--line-height-helper-text)}.radio-button-group__helper-text--status-error{color:var(--color-error-helper-text);font-size:var(--font-size-error-helper-text);font-weight:var(--font-weight-error-helper-text)}.radio-button-group__title{margin:0;padding:0}.radio-button-group__title-label{font-size:var(--font-size-title);line-height:var(--telekom-typography-line-spacing-standard);font-weight:var(--telekom-typography-font-weight-bold)}::slotted(*){margin-top:calc(var(--margin-top-slotted-item))}@media screen and (forced-colors: active), (-ms-high-contrast: active){.radio-button-group__helper-text--status-error{color:var(--color-error-helper-text-hcm)}}.radio-button-group__helper-text scale-icon-alert-success,.radio-button-group__helper-text scale-icon-alert-warning,.radio-button-group__helper-text scale-icon-alert-information,.radio-button-group__helper-text scale-icon-alert-error{margin-right:var(--telekom-spacing-composition-space-03)}"; + +const RadioButtonGroup = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Input label */ + this.label = ''; + /** (optional) Input helper text */ + this.helperText = ''; + /** @deprecated - invalid should replace status */ + this.status = ''; + /** (optional) Input status */ + this.invalid = false; + this.internalId = (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.g)(); + } + componentDidRender() { + if (this.status !== '') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "status" is deprecated. Please use the "invalid" property!', + type: 'warn', + source: this.hostElement, + }); + } + } + renderHelperIcon() { + if (this.helperText && !this.invalid) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-information", { size: 11 })); + } + if (this.invalid) { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-error", { size: 11 }); + } + } + render() { + const helperTextId = `helper-message-${this.internalId}`; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("fieldset", { part: "base", class: "radio-button-group" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("legend", { class: "radio-button-group__title" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("label", { class: "radio-button-group__title-label", "aria-label": this.label }, this.label), this.helperText ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { role: "text", id: helperTextId, class: this.getCssClassMap(), "aria-label": this.helperText }, this.renderHelperIcon(), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", null, this.helperText))) : null), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "container", class: "radio-button-group__container" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('radio-button-group__helper-text', (this.status === 'error' || this.invalid) && + `radio-button-group__helper-text--status-error`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +RadioButtonGroup.style = radioButtonGroupCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1120.7d767e9e.js b/pr-preview/pr-186/assets/js/1120.7d767e9e.js new file mode 100644 index 000000000..514471102 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1120.7d767e9e.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1120; +exports.ids = [1120]; +exports.modules = { + +/***/ 51120: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_download_from_cloud: () => (/* binding */ ActionDownloadFromCloud) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionDownloadFromCloud = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 9.995a.75.75 0 01.743.648l.007.102v5.25h3.67L12 22.745l-2.25-3.44-2.17-3.31h3.67v-5.25a.75.75 0 01.75-.75zm-3.28-4.62A7.6 7.6 0 0120.65 8.65a5.745 5.745 0 013.1 5.095c0 2.915-2.165 5.485-5 5.695l-.359.02-.717.019-1.411.015h-.343l1.775-2.68 1.5-2.32H14.25v-3.75a2.25 2.25 0 00-4.495-.154l-.005.155v3.75H4.805l3.275 5-1.476-.01-1.042-.017-.648-.023a8.398 8.398 0 01-.164-.01c-2.56-.19-4.5-2.55-4.5-5.19a5.25 5.25 0 012.675-4.57 4.685 4.685 0 015.795-4.3z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 10a.75.75 0 01.743.648l.007.102V16h3.669L12 22.75 7.582 16h3.668v-5.25A.75.75 0 0112 10zm1.511-6.326a7.593 7.593 0 017.149 4.982 5.76 5.76 0 013.09 5.093c0 3.097-2.46 5.63-5.53 5.746L18 19.5h-2.08l.98-1.5H18a4.255 4.255 0 004.25-4.25c0-2.023-1.227-3.112-2.06-3.626l-.216-.126a5.097 5.097 0 00-.099-.053l-.173-.087-.251-.112a.071.071 0 01-.012-.006l-.049-.15-.085-.265-.083-.23-.11-.267a6.099 6.099 0 00-5.601-3.654 6.082 6.082 0 00-3.975 1.478l-.457.411-.084-.027-.333-.117a3.205 3.205 0 00-3.41.87 3.177 3.177 0 00-.84 2.113v.213l.009.182.023.294c0 .011 0 .02-.002.027l-.087.04-.194.082-.177.082-.206.106-.227.133c-.784.486-1.801 1.44-1.801 3.189a3.754 3.754 0 003.551 3.745L5.5 18h1.598l.982 1.5H5.5a5.256 5.256 0 01-5.25-5.25c0-1.9 1.032-3.643 2.667-4.568a4.718 4.718 0 014.704-4.438c.37 0 .738.045 1.101.133a7.593 7.593 0 014.79-1.703z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionDownloadFromCloud.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/11292.a2bb44f4.js b/pr-preview/pr-186/assets/js/11292.a2bb44f4.js new file mode 100644 index 000000000..9b828cc8a --- /dev/null +++ b/pr-preview/pr-186/assets/js/11292.a2bb44f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[11292],{11292:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_print:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M18.5 13.5V22h-13v-8.5h13zM17 15H7v5.5h10V15zm1.5-13v4h5v9.5a3 3 0 01-2.824 2.995l-.176.005H20V12H4v6.5h-.5a3 3 0 01-2.995-2.824L.5 15.5V6h5V2h13zm1 7a1 1 0 100 2 1 1 0 000-2zM17 3.5H7V6h10V3.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M18.5 13.5V22h-13v-8.5h13zM17 15H7v5.5h10V15zm1.5-13v4h5v9.5a3.003 3.003 0 01-2.824 2.995l-.176.005H20V17h.5c.776 0 1.42-.598 1.493-1.356L22 15.5v-8H2v8c0 .776.598 1.42 1.356 1.493L3.5 17H4v1.5h-.5a3.003 3.003 0 01-2.995-2.824L.5 15.5V6h5V2h13zm1 7a1 1 0 110 2 1 1 0 010-2zM17 3.5H7V6h10V3.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/11354.4727c49c.js b/pr-preview/pr-186/assets/js/11354.4727c49c.js new file mode 100644 index 000000000..82e2032e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/11354.4727c49c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[11354],{11354:(e,o,t)=>{t.r(o),t.d(o,{scale_link:()=>n});var i=t(90936);const n=class{constructor(e){(0,i.r)(this,e),this.disabled=!1,this.omitUnderline=!1,this.iconPosition="after"}async setFocus(){this.focusableElement.focus()}getAnchorProps(){const e={href:this.href||null,tabIndex:this.disabled?-1:this.innerTabindex,"aria-disabled":`${this.disabled}`,download:this.download||null,hreflang:this.hreflang||null,ping:this.ping||null,referrerpolicy:this.referrerpolicy||null,rel:this.rel||null,target:this.target||null,type:this.type||null};return Object.assign({},e)}render(){return(0,i.h)(i.a,{class:{disabled:this.disabled,reverse:"before"===this.iconPosition,"no-underline":this.omitUnderline}},this.styles&&(0,i.h)("style",null,this.styles),(0,i.h)("a",Object.assign({part:"anchor",ref:e=>this.focusableElement=e},this.getAnchorProps()),(0,i.h)("div",{part:"content"},(0,i.h)("slot",null)),(0,i.h)("slot",{name:"icon"})))}};n.style=":host{--spacing-x-icon:var(--telekom-spacing-composition-space-03);--line-offset:0.0625em;--color:var(--telekom-color-text-and-icon-link-standard);--color-line-initial:var(--telekom-color-functional-interaction-subtle);--line-thickness-initial:var(--telekom-line-weight-standard);--color-visited:var(--telekom-color-text-and-icon-link-visited);--color-line-visited:currentColor;--line-thickness-visited:var(--line-thickness-initial);--color-hover:var(--telekom-color-text-and-icon-link-hovered);--color-line-hover:currentColor;--line-thickness-hover:var(--telekom-line-weight-highlight);--color-focus-outline:var(--telekom-color-functional-focus-standard);--color-focus:var(--telekom-color-text-and-icon-link-standard);--color-line-focus:transparent;--line-thickness-focus:0;--color-active:var(--telekom-color-text-and-icon-link-active);--color-line-active:currentColor;--line-thickness-active:var(--telekom-line-weight-highlight);--color-disabled:var(--telekom-color-text-and-icon-disabled);--color-line-disabled:transparent;--line-thickness-disabled:var(--line-thickness-initial)}:host{display:inline;margin-bottom:calc(var(--line-offset) + var(--line-thickness-initial))}[part='anchor']{cursor:pointer;outline:none;font-weight:var(--font-weight);color:var(--color);position:relative;display:inline-flex;text-decoration:underline;text-underline-offset:0.1875em;text-underline-position:from-font;text-decoration-thickness:var(\n --line-thickness,\n var(--line-thickness-initial)\n );text-decoration-color:var(--line-color)}[part='anchor']{display:inline-flex;align-items:center}[part='content']{position:relative}slot[name='icon']::slotted(*){position:relative;margin-left:var(--spacing-x-icon)}:host(.reverse) [part='anchor']{flex-direction:row-reverse}:host(.reverse) slot[name='icon']::slotted(*){margin-left:auto;margin-right:var(--spacing-x-icon)}:host(.no-underline){--color-line-initial:transparent;--color-line-visited:transparent;--line-color:transparent}:host(.no-underline) [part='anchor']{text-decoration:none}[part='anchor']:hover,[part='anchor']:focus,[part='anchor']:active,:host(.no-underline) [part='anchor']:hover,:host(.no-underline) [part='anchor']:active{text-decoration:underline}[part='anchor']:hover,:host(.no-underline) [part='anchor']:hover{color:var(--color-hover);text-decoration-color:var(--color-line-hover);text-decoration-thickness:var(\n --line-thickness-hover,\n var(--line-thickness-initial)\n )}[part='anchor']:focus,[part='anchor']:focus-visible{color:var(--color-focus);text-decoration-color:var(--color-line-focus);text-decoration-thickness:var(\n --line-thickness-focus,\n var(--line-thickness-initial)\n );outline:var(--telekom-line-weight-highlight) solid var(--color-focus-outline);outline-offset:var(--telekom-spacing-composition-space-01);border-radius:var(--telekom-radius-small)}[part='anchor']:active,:host(.no-underline) [part='anchor']:active{color:var(--color-active);text-decoration-color:var(--color-line-active);text-decoration-thickness:var(\n --line-thickness-active,\n var(--line-thickness-initial)\n )}[part='anchor']:visited{color:var(--color-visited);text-decoration-color:var(--color-line-visited);text-decoration-thickness:var(\n --line-thickness-visited,\n var(--line-thickness-initial)\n )}:host(.disabled){cursor:not-allowed}:host(.disabled) [part='anchor'],:host(.disabled) [part='anchor']:visited,:host(.disabled) [part='anchor']:hover,:host(.disabled) [part='anchor']:active{color:var(--color-disabled);text-decoration:none;cursor:not-allowed;pointer-events:none}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1148.77f9449e.js b/pr-preview/pr-186/assets/js/1148.77f9449e.js new file mode 100644 index 000000000..b0b6d2d7b --- /dev/null +++ b/pr-preview/pr-186/assets/js/1148.77f9449e.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1148; +exports.ids = [1148]; +exports.modules = { + +/***/ 51148: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_sound_on: () => (/* binding */ ActionSoundOn) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionSoundOn = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13 3.5v17h-2l-4.5-4H5a3 3 0 01-2.995-2.824L2 13.5v-3a3 3 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm6.7.8c4.178 4.178 4.251 10.906.22 15.174l-.22.226-1.06-1.06a9.39 9.39 0 00.225-13.047l-.225-.233L19.7 4.3zM16 8.025l1.035-1.06.025.025a7.12 7.12 0 01.206 9.855l-.206.215L16 16a5.625 5.625 0 00.193-7.773L16 8.025z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13 3.5v17h-2l-4.5-4H5a3.003 3.003 0 01-2.995-2.824L2 13.5v-3a3.003 3.003 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm6.7.8a10.8 10.8 0 013.19 7.7c0 2.794-1.041 5.426-2.947 7.45l-.243.25-1.06-1.06A9.322 9.322 0 0021.39 12c0-2.4-.892-4.66-2.523-6.405l-.227-.235L19.7 4.3zm-8.2.76L7.07 9H5c-.776 0-1.42.598-1.493 1.356L3.5 10.5v3c0 .776.598 1.42 1.356 1.493L5 15h2.07l4.43 3.94V5.06zm5.535 1.905A7.068 7.068 0 0119.12 12a7.063 7.063 0 01-1.878 4.819l-.207.216-1.06-1.06A5.59 5.59 0 0017.62 12c0-1.41-.514-2.738-1.452-3.772l-.193-.203 1.06-1.06z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionSoundOn.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1165.912b53b1.js b/pr-preview/pr-186/assets/js/1165.912b53b1.js new file mode 100644 index 000000000..063f57983 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1165.912b53b1.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1165; +exports.ids = [1165]; +exports.modules = { + +/***/ 51165: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_pop_up_window: () => (/* binding */ ActionPopUpWindow) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPopUpWindow = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.5 10v9a3 3 0 01-2.824 2.995L20.5 22h-9a3 3 0 01-2.995-2.824L8.5 19v-9h15zM22 13H10v6a1.5 1.5 0 001.356 1.493l.144.007h9a1.5 1.5 0 001.493-1.356L22 19v-6zM18.5 2v6.5H7v9H3.5a3 3 0 01-2.995-2.824L.5 14.5V2h18zm-16 .875a.625.625 0 100 1.25.625.625 0 000-1.25zm2 0a.625.625 0 100 1.25.625.625 0 000-1.25zm2 0a.625.625 0 100 1.25.625.625 0 000-1.25z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.5 10v9a3.01 3.01 0 01-2.824 2.995L20.5 22h-9a3.01 3.01 0 01-2.995-2.824L8.5 19v-9h15zM22 13H10v6c0 .8.576 1.423 1.352 1.493l.148.007h9c.8 0 1.423-.576 1.493-1.352L22 19v-6zM18.5 2v6.5H17V5H2v9.5c0 .8.576 1.423 1.352 1.493L3.5 16H7v1.5H3.5a3.01 3.01 0 01-2.995-2.824L.5 14.5V2h18zm-12 .9c-.35 0-.6.25-.6.6s.25.65.6.65.6-.35.6-.65c0-.3-.25-.6-.6-.6zm-2 0c-.35 0-.6.25-.6.6s.25.65.6.65.6-.35.6-.65c0-.3-.25-.6-.6-.6zm-2 0c-.35 0-.6.25-.6.6s.25.65.6.65.6-.35.6-.65c0-.3-.25-.6-.6-.6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPopUpWindow.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1167.127a560b.js b/pr-preview/pr-186/assets/js/1167.127a560b.js new file mode 100644 index 000000000..5e7b5021b --- /dev/null +++ b/pr-preview/pr-186/assets/js/1167.127a560b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1167; +exports.ids = [1167]; +exports.modules = { + +/***/ 61167: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_add_card: () => (/* binding */ ActionAddCard) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionAddCard = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.5 10a6.5 6.5 0 110 13 6.5 6.5 0 010-13zm0 1.5a5 5 0 100 10 5 5 0 000-10zm0 1.75a.75.75 0 01.743.648l.007.102v1.75H20a.75.75 0 01.102 1.493L20 17.25h-1.75V19a.75.75 0 01-1.493.102L16.75 19v-1.75H15a.75.75 0 01-.102-1.493L15 15.75h1.75V14a.75.75 0 01.75-.75zM21 7.5v1.815a8 8 0 00-3.5-.815 8 8 0 00-7.671 5.75l-.069.25H4a3 3 0 01-2.995-2.824L1 11.5v-4h20zM18 1a3 3 0 012.995 2.824L21 4v1H1V4a3 3 0 012.824-2.995L4 1h14z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.5 10c3.6 0 6.5 2.9 6.5 6.5S21.1 23 17.5 23 11 20.1 11 16.5s2.9-6.5 6.5-6.5zm0 3.25a.772.772 0 00-.743.651L16.75 14v1.75H15c-.4 0-.75.35-.75.75 0 .367.294.691.651.743l.099.007h1.75V19c0 .4.35.75.75.75a.772.772 0 00.743-.651L18.25 19v-1.75H20c.4 0 .75-.35.75-.75a.772.772 0 00-.651-.743L20 15.75h-1.75V14c0-.4-.35-.75-.75-.75zM18 1a3.01 3.01 0 012.995 2.824L21 4v5.3c-.4-.2-.8-.336-1.2-.46l-.3-.09V7.5h-17v4c0 .8.576 1.423 1.352 1.493L4 13h6.3c-.2.4-.336.8-.46 1.2l-.09.3H4a3.01 3.01 0 01-2.995-2.824L1 11.5V4a3.01 3.01 0 012.824-2.995L4 1h14zm0 1.5H4c-.8 0-1.423.576-1.493 1.352L2.5 4v1h17V4c0-.8-.576-1.423-1.352-1.493L18 2.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionAddCard.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/11695.fb3fdb84.js b/pr-preview/pr-186/assets/js/11695.fb3fdb84.js new file mode 100644 index 000000000..19d5d813d --- /dev/null +++ b/pr-preview/pr-186/assets/js/11695.fb3fdb84.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[11695],{11695:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_person_walking:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M9.512 5.71c1.372-.454 5.098-.372 5.847 1.452.11.27.217.547.32.823l.354.953.21.535c.165.398.328.734.463.872.042.043.1.098.172.16l.247.213.632.514.667.523.291.223a.926.926 0 01-1.119 1.473l-.835-.647-.47-.377-.308-.253-.279-.238a5.982 5.982 0 01-.32-.297c-.396-.404-.693-1.043-.989-1.804l-.198-.524-.271-.726-.176-.453-.46 5.588 2.666 2.76c.254.264.457.564.605.896l1.989 4.99a.921.921 0 01-1.613.863l-.058-.095-2.553-4.878-4.277-3.524a3.123 3.123 0 01-1.136-2.492l.012-.206.383-4.116c-.655.51-1.226 1.256-1.412 1.599a.994.994 0 00-.053.125l-.064.192-.073.25-.124.461-.133.535-.134.575-.18.826a.926.926 0 01-1.812-.376l.175-.811.114-.496.126-.516.133-.505c.135-.49.275-.917.4-1.145l.117-.199a5.95 5.95 0 01.166-.25l.212-.292c.585-.768 1.573-1.793 2.746-2.181zm-.624 9.988l.101.098.104.095 2.173 1.79-.162.608a3.114 3.114 0 01-.45.974l-.13.173-3.21 3.801a.924.924 0 01-1.534-1.005l.06-.105 2.847-4.252.201-2.177zM12.25 0a2.125 2.125 0 110 4.25 2.125 2.125 0 010-4.25z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1186.99cedd16.js b/pr-preview/pr-186/assets/js/1186.99cedd16.js new file mode 100644 index 000000000..345868284 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1186.99cedd16.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1186; +exports.ids = [1186]; +exports.modules = { + +/***/ 31186: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_left: () => (/* binding */ NavigationLeft) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationLeft = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.5 18.756c-.27 0-.544-.088-.773-.269l-8.224-6.484 8.224-6.486a1.249 1.249 0 111.549 1.963l-5.734 4.523 5.734 4.522a1.249 1.249 0 01-.775 2.231", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.949 16.911l-6.222-4.91 6.221-4.913a.75.75 0 10-.929-1.178L7.306 12l7.713 6.088a.746.746 0 001.054-.124.75.75 0 00-.124-1.053", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationLeft.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1194.a810bc03.js b/pr-preview/pr-186/assets/js/1194.a810bc03.js new file mode 100644 index 000000000..29b83ac10 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1194.a810bc03.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1194; +exports.ids = [1194]; +exports.modules = { + +/***/ 81194: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_moon_clear: () => (/* binding */ WeatherMoonClear) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherMoonClear = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.969 17.442c-.649-.252-3.322-1.348-4.553-4.569-1.531-4.01.61-7.204 1.754-8.37l.031-.029a7.877 7.877 0 012.181-1.556l-.006-.001A9.404 9.404 0 004.32 8.968a9.368 9.368 0 00-.218 5.499 9.398 9.398 0 004.22 5.649 9.339 9.339 0 006.245 1.271 9.327 9.327 0 006.14-3.636 7.93 7.93 0 01-4.739-.31z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.969 17.442c-.649-.252-3.322-1.348-4.553-4.569-1.531-4.01.61-7.204 1.754-8.37l.031-.029a7.877 7.877 0 012.181-1.556l-.006-.001A9.404 9.404 0 004.32 8.968a9.368 9.368 0 00-.218 5.499 9.398 9.398 0 004.22 5.649 9.339 9.339 0 006.245 1.271 9.327 9.327 0 006.14-3.636 7.93 7.93 0 01-4.739-.31z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherMoonClear.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/11f4a81b.25b778ad.js b/pr-preview/pr-186/assets/js/11f4a81b.25b778ad.js new file mode 100644 index 000000000..39aca3748 --- /dev/null +++ b/pr-preview/pr-186/assets/js/11f4a81b.25b778ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[41245],{1507:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>c,toc:()=>a});var s=i(74848),t=i(28453);const r={id:"building-highly-available-web-server-clusters-with-keepalived",title:"Building Highly Available Web Server Clusters with Keepalived",tags:["ecs","high-availability","keepalived"]},l="Building Highly Available Web Server Clusters with Keepalived",c={id:"best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived",title:"Building Highly Available Web Server Clusters with Keepalived",description:"Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx.",source:"@site/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived.md",sourceDirName:"best-practices/computing/elastic-cloud-server",slug:"/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived.md",tags:[{inline:!0,label:"ecs",permalink:"/docs-next/pr-preview/pr-186/docs/tags/ecs"},{inline:!0,label:"high-availability",permalink:"/docs-next/pr-preview/pr-186/docs/tags/high-availability"},{inline:!0,label:"keepalived",permalink:"/docs-next/pr-preview/pr-186/docs/tags/keepalived"}],version:"current",frontMatter:{id:"building-highly-available-web-server-clusters-with-keepalived",title:"Building Highly Available Web Server Clusters with Keepalived",tags:["ecs","high-availability","keepalived"]},sidebar:"bestPracticesSidebar",previous:{title:"Migrating Kafka Services",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/application-services/distributed-message-service/migrating-kafka-services"},next:{title:"Migrating Service Data Across Accounts (Data Disks)",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks"}},d={},a=[{value:"Solution Design",id:"solution-design",level:2},{value:"Network Topology",id:"network-topology",level:3},{value:"Procedure",id:"procedure",level:3},{value:"Creating the Cluster",id:"creating-the-cluster",level:2},{value:"Verifying High Availability",id:"verifying-high-availability",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"building-highly-available-web-server-clusters-with-keepalived",children:"Building Highly Available Web Server Clusters with Keepalived"}),"\n",(0,s.jsx)(n.p,{children:"Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx."}),"\n",(0,s.jsx)(n.h2,{id:"solution-design",children:"Solution Design"}),"\n",(0,s.jsx)(n.p,{children:"A web cluster consists of multiple web servers and a load balancer.\nAccess requests will first be received by the load balancer, which then\ndistributes the requests to backend web servers based on the load\nbalancing policy.In this document, Nginx is used to implement load balancing."}),"\n",(0,s.jsx)(n.h3,{id:"network-topology",children:"Network Topology"}),"\n",(0,s.jsx)(n.p,{children:"The data planning could follow one of the implementations below:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"No."}),(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Quantity"}),(0,s.jsx)(n.th,{children:"Specification"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"VPC"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"192.168.0.0/16"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"Subnet"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"192.168.0.0/24"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"ECS"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"1 vCPU, 1 GB, CentOS Stream release 9"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"IP address"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"ecs-HA1: 192.168.0.10 ecs-HA2: 192.168.0.20"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"EIP"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"80.158.xxx.xxx"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"Virtual IP address"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"192.168.0.100"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Configure the two ECSs in the same subnet to work in the active/standby mode using Keepalived."}),"\n",(0,s.jsx)(n.li,{children:"Bind a single virtual IP address to the two ECSs."}),"\n",(0,s.jsx)(n.li,{children:"Bind the virtual IP address to an EIP, then you can access the active and standby ECSs bound with the virtual IP address from the Internet."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 1 Network topology",src:i(33281).A+"",width:"587",height:"415"})}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Select a region based on your service requirements."}),"\n",(0,s.jsxs)(n.li,{children:["All cloud resources ",(0,s.jsx)(n.strong,{children:"must be in the same region"}),"."]}),"\n"]})}),"\n",(0,s.jsx)(n.h3,{id:"procedure",children:"Procedure"}),"\n",(0,s.jsx)(n.p,{children:"The overall operation process is as follows:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 2 Operation process",src:i(12152).A+"",width:"550",height:"460"})}),"\n",(0,s.jsx)(n.h2,{id:"creating-the-cluster",children:"Creating the Cluster"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Create a VPC and a subnet."})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Log in to the management console."}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.em,{children:"Service List"}),". Under ",(0,s.jsx)(n.em,{children:"Networking"}),", click ",(0,s.jsx)(n.em,{children:"Virtual Private Cloud"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.em,{children:"Create VPC"}),".\nSet required parameters as prompted based on the following table:"]}),"\n"]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Parameter"}),(0,s.jsx)(n.th,{children:"Example Value"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Name (of the VPC)"}),(0,s.jsx)(n.td,{children:"vpc-HA"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"CIDR Block (of the VPC)"}),(0,s.jsx)(n.td,{children:"192.168.0.0/16"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Name (of the subnet)"}),(0,s.jsx)(n.td,{children:"subnet-HA"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"CIDR Block (of the subnet)"}),(0,s.jsx)(n.td,{children:"192.168.0.0/24"})]})]})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.em,{children:"Create Now"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Apply for required cloud resources."}),"\na. Create ECSs."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log in to the management console."}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.em,{children:"Service List"}),". Under ",(0,s.jsx)(n.em,{children:"Computing"}),", click ",(0,s.jsx)(n.em,{children:"Elastic Cloud Server"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.em,{children:"Create ECS"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["On the ",(0,s.jsx)(n.em,{children:"Create ECS"})," page, set parameters as prompted. For details, see"]}),"\n",(0,s.jsx)(n.li,{children:"Set the ECS name to ecs-HA1 and ecs-HA2."}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"In this example, no data disk is purchased. You can buy data\ndisks based on service requirements and ensure their service\ndata consistency."})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"(Optional) Configure security group rules to ensure that the\ntwo ECSs can communicate with each other."}),"\n",(0,s.jsx)(n.p,{children:"In this example, the two ECSs are in the same security group\nand can communicate with each other through the internal\nnetwork by default. In this case, you do not need to\nconfigure rules."}),"\n",(0,s.jsxs)(n.p,{children:["If two ECSs are in different security groups, you need to\nadd inbound security group rules for the two ECSs. For\ndetails, see ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-cloud-server/umn/security/security_groups/security_group_configuration_examples.html#en-us-topic-0140323152-en-us-topic-0118534011-section14197522283",children:"Enabling ECSs in Different Security Groups to\nCommunicate with Each Other Through an Internal\nNetwork"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"Figure 3 Add Inbound Rule",src:i(9155).A+"",width:"1041",height:"420"}),"\nb. Assign an EIP."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Log in to the management console."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.em,{children:"Service List"}),". Under ",(0,s.jsx)(n.em,{children:"Network"}),", click ",(0,s.jsx)(n.em,{children:"Elastic IP"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.em,{children:"Assign EIP"})," and set parameters as prompted. For\ndetails, see\n",(0,s.jsx)(n.code,{children:"Table 1"}),".\nc. Assign a virtual IP address."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Log in to the management console."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.em,{children:"Service List"}),". Under ",(0,s.jsx)(n.em,{children:"Network"}),", click ",(0,s.jsx)(n.em,{children:"Virtual\nPrivate Cloud"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the navigation pane on the left, click ",(0,s.jsx)(n.em,{children:"Subnets"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"In the subnet list, locate the target subnet and click its\nname."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["On the ",(0,s.jsx)(n.em,{children:"IP Addresses"})," tab page, click ",(0,s.jsx)(n.em,{children:"Assign Virtual IP\nAddress"})," and set parameters as prompted."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Configure the ECSs."}),"\na. Configure the ecs-HA1."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Bind EIP (",(0,s.jsx)(n.code,{children:"80.158.xxx.xxx"}),") to ",(0,s.jsx)(n.code,{children:"ecs-HA1"}),"."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log in to the management console."}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.em,{children:"Service List"}),". Under ",(0,s.jsx)(n.em,{children:"Computing"}),", click\n",(0,s.jsx)(n.em,{children:"Elastic Cloud Server"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["In the ECS list, click the name of ",(0,s.jsx)(n.code,{children:"ecs-HA1"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Click the ",(0,s.jsx)(n.em,{children:"EIPs"})," tab and then ",(0,s.jsx)(n.em,{children:"Bind EIP"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["On the ",(0,s.jsx)(n.em,{children:"Bind EIP"})," page, select a NIC and an EIP, and\nclick ",(0,s.jsx)(n.em,{children:"OK"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Connect to ",(0,s.jsx)(n.code,{children:"ecs-HA1"})," using SSH and run the following command\nto install the Nginx and Keepalived packages and related\ndependency packages:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yum install nginx keepalived -y\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"nginx"}),"\nconfiguration file and save it:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"**vim /etc/nginx/nginx.conf**\n"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'user root;\nworker_processes 1;\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n#pid logs/nginx.pid;\nevents {\n worker_connections 1024;\n}\nhttp {\n include mime.types;\n default_type application/octet-stream;\n #log_format main \'$remote_addr - $remote_user [$time_local] "$request" \'\n # \'$status $body_bytes_sent "$http_referer" \'\n # \'"$http_user_agent" "$http_x_forwarded_for"\';\n #access_log logs/access.log main;\n sendfile on;\n #tcp_nopush on;\n #keepalive_timeout 0;\n keepalive_timeout 65;\n #gzip on;\n server {\n listen 80;\n server_name localhost;\n #charset koi8-r;\n #access_log logs/host.access.log main;\n location / {\n root html;\n index index.html index.html;\n }\n #error_page 404 /404.html;\n # redirect server error pages to the static page /50x.html\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n\n }\n }\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"index.html"})," file\nand save the file:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"vim /usr/share/nginx/html/index.html\n"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Welcome to ECS-HA1\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following commands to set the automatic startup of\nNginx upon ECS startup:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"systemctl enable nginx\nsystemctl start nginx.service\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Verify the access to a single Nginx node."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 4 ECS-HA1 access verification",src:i(83422).A+"",width:"392",height:"89"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"keepalived"}),"\nconfiguration file and save it:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"vim /etc/keepalived/keepalived.conf\n"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'! Configuration File for keepalived\nglobal_defs {\nrouter_id master-node\n}\nvrrp_script chk_http_port {\n script "/etc/keepalived/chk_nginx.sh"\n interval 2\n weight -5\n fall 2\n rise 1\n }\nvrrp_instance VI_1 {\n state MASTER\n interface ens3\n mcast_src_ip 192.168.0.10\n virtual_router_id 51\n priority 101\n advert_int 1\n authentication {\n auth_type PASS\n auth_pass 1111\n }\n unicast_src_ip 192.168.0.10\n virtual_ipaddress {\n 192.168.0.100\n }\ntrack_script {\n chk_http_port\n }\n}\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"nginx"})," monitoring\nscript and save it:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"vim /etc/keepalived/chk_nginx.sh\n"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'#!/bin/bash\ncounter=$(ps -C nginx --no-heading|wc -l)\nif [ "${counter}" = "0" ]; then\n systemctl start nginx.service\n sleep 2\n counter=$(ps -C nginx --no-heading|wc -l)\n if [ "${counter}" = "0" ]; then\n systemctl stop keepalived.service\n fi\nfi\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"chmod +x /etc/keepalived/chk_nginx.sh adduser keepalived_script\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following commands to set the automatic startup of\nKeepalived upon ECS startup:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"systemctl enable keepalived\nsystemctl start keepalived.service\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["b. Configure the ",(0,s.jsx)(n.code,{children:"ecs-HA2"}),".\n10. Unbind EIP (",(0,s.jsx)(n.code,{children:"80.158.xxx.xxx"}),") from ",(0,s.jsx)(n.code,{children:"ecs-HA1"}),"."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Log in to the management console."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.strong,{children:"Service List"}),". Under ",(0,s.jsx)(n.strong,{children:"Computing"}),", click\n",(0,s.jsx)(n.strong,{children:"Elastic Cloud Server"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"In the ECS list, click the name of ecs-HA1."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click the ",(0,s.jsx)(n.strong,{children:"EIPs"})," tab."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Locate the row that contains the EIP (80.158.xxx.xxx),\nand click ",(0,s.jsx)(n.strong,{children:"Unbind"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Bind EIP (80.158.xxx.xxx) to ecs-HA2."}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log in to the management console."}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Service List"}),". Under ",(0,s.jsx)(n.strong,{children:"Computing"}),", click\n",(0,s.jsx)(n.strong,{children:"Elastic Cloud Server"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"In the ECS list, click the name of ecs-HA2."}),"\n",(0,s.jsxs)(n.li,{children:["Click the ",(0,s.jsx)(n.strong,{children:"EIPs"})," tab."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Bind EIP"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Select a NIC and an EIP and click ",(0,s.jsx)(n.strong,{children:"OK"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Connect to ecs-HA2 using SSH and run the following command\nto install the Nginx and Keepalived packages and related\ndependency packages:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"yum install nginx keepalived -y"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"nginx.conf"}),"\nconfiguration file:"]}),"\n",(0,s.jsx)(n.p,{children:"vim /etc/nginx/nginx.conf"}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'user root;\nworker_processes 1;\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n#pid logs/nginx.pid;\nevents {\n worker_connections 1024;\n }\nhttp {\n include mime.types;\n default_type application/octet-stream;\n #log_format main \'$remote_addr - $remote_user [$time_local] "$request" \'\n # \'$status $body_bytes_sent "$http_referer" \'\n # \'"$http_user_agent" "$http_x_forwarded_for"\';\n #access_log logs/access.log main;\n sendfile on;\n #tcp_nopush on;\n #keepalive_timeout 0;\n keepalive_timeout 65;\n #gzip on;\n server {\n listen 80;\n server_name localhost;\n #charset koi8-r;\n #access_log logs/host.access.log main;\n location / {\n root html;\n index index.html index.htm;\n }\n #error_page 404 /404.html;\n # redirect server error pages to the static page /50x.html\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root html;\n }\n }\n}\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"index.html"})," file:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"vim /usr/share/nginx/html/index.html"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Welcome to ECS-HA2\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following commands to set the automatic startup of\nNginx upon ECS startup:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"systemctl enable nginx"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"systemctl start nginx.service"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Test the access to a single Nginx node."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 5 ECS-HA2 verification result",src:i(1735).A+"",width:"397",height:"113"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following command to edit the Keepalived\nconfiguration file:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"vim /etc/keepalived/keepalived.conf"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'! Configuration File for keepalived\nglobal_defs {\nrouter_id master-node\n}\nvrrp_script chk_http_port {\n script "/etc/keepalived/chk_nginx.sh"\n interval 2\n weight -5\n fall 2\n rise 1\n }\nvrrp_instance VI_1 {\n state BACKUP\n interface ens3\n mcast_src_ip 192.168.0.20\n virtual_router_id 51\n priority 100\n advert_int 1\n authentication {\n auth_type PASS\n auth_pass 1111\n }\n unicast_src_ip 192.168.0.20\n virtual_ipaddress {\n 192.168.0.100\n }\ntrack_script {\n chk_http_port\n }\n}\n'})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Run the following command to edit the ",(0,s.jsx)(n.strong,{children:"nginx"})," monitoring\nscript and add execute permissions:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"vim /etc/keepalived/chk_nginx.sh"})}),"\n",(0,s.jsx)(n.p,{children:"An example is provided as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'#!/bin/bash\ncounter=$(ps -C nginx --no-heading|wc -l)\nif [ "${counter}" = "0" ]; then\n systemctl start nginx.service\n sleep 2\n counter=$(ps -C nginx --no-heading|wc -l)\n if [ "${counter}" = "0" ]; then\n systemctl stop keepalived.service\n fi\nfi\n'})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"chmod +x /etc/keepalived/chk_nginx.sh"})," ",(0,s.jsx)(n.strong,{children:"adduser\nkeepalived_script"})]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following commands to set the automatic startup of\nKeepalived upon ECS startup:"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"systemctl enable keepalived"})," ",(0,s.jsx)(n.strong,{children:"systemctl start\nkeepalived"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Bind a virtual IP address to an ECS."}),"\na. Unbind EIP (80.158.xxx.xxx) from ecs-HA2."]}),"\n",(0,s.jsx)(n.p,{children:"b. Bind the virtual IP address to ecs-HA1."}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log in to the management console."}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Service List"}),". Under ",(0,s.jsx)(n.strong,{children:"Network"}),", click ",(0,s.jsx)(n.strong,{children:"Virtual\nPrivate Cloud"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["In the navigation pane on the left, click ",(0,s.jsx)(n.strong,{children:"Subnets"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"In the subnet list, locate the target subnet and click its\nname."}),"\n",(0,s.jsxs)(n.li,{children:["Click the ",(0,s.jsx)(n.strong,{children:"IP Addresses"})," tab, locate the row that contains\nthe target virtual IP address, and click ",(0,s.jsx)(n.strong,{children:"Bind to Server"}),"\nin the ",(0,s.jsx)(n.strong,{children:"Operation"})," column."]}),"\n",(0,s.jsx)(n.li,{children:"On the page that is displayed, select ecs HA1."}),"\n",(0,s.jsxs)(n.li,{children:["Bind the virtual IP address to ecs HA1. For details, see\n",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/virtual_ip_address/binding_a_virtual_ip_address_to_an_eip_or_ecs.html",children:"Binding a Virtual IP Address to an EIP or\nECS"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"c. Bind the virtual IP address to ecs-HA2 by referring to"}),"\n",(0,s.jsxs)(n.p,{children:["d. Bind the virtual IP address to the EIP ",(0,s.jsx)(n.code,{children:"80.158.xxx.xxx"}),".\n8. Log in to the management console.\n9. Click ",(0,s.jsx)(n.em,{children:"Service List"}),". Under ",(0,s.jsx)(n.em,{children:"Network"}),", click ",(0,s.jsx)(n.em,{children:"Virtual\nPrivate Cloud"}),".\n10. In the navigation pane on the left, click ",(0,s.jsx)(n.em,{children:"Subnets"}),".\n11. In the subnet list, locate the target subnet and click its\nname.\n12. Click the ",(0,s.jsx)(n.em,{children:"IP Addresses"})," tab, locate the row that contains\nthe target virtual IP address, and click ",(0,s.jsx)(n.em,{children:"Bind to EIP"})," in\nthe ",(0,s.jsx)(n.em,{children:"Operation"})," column.\n13. On the page that is displayed, select the EIP\n(",(0,s.jsx)(n.code,{children:"80.158.xxx.xxx"}),").\n14. Click ",(0,s.jsx)(n.em,{children:"OK"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"verifying-high-availability",children:"Verifying High Availability"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Restart ecs-HA1 and ecs-HA2 through the management console."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Remotely log in to ecs-HA1 through the management console."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following command to check whether the virtual IP address is\nbound to the eth0 NIC of ecs-HA1:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"ip addr show"})}),"\n",(0,s.jsxs)(n.p,{children:["As shown in ",(0,s.jsx)(n.em,{children:"Figure 6"}),", the virtual IP address has been bound to the ",(0,s.jsx)(n.code,{children:"ens3"})," NIC of ",(0,s.jsx)(n.code,{children:"ecs-HA1"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 6 Virtual IP address of ecs-HA1",src:i(81676).A+"",width:"829",height:"278"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Use a browser to access the EIP and check whether the web page on\necs-HA1 can be accessed."}),"\n",(0,s.jsxs)(n.p,{children:["If the information shown in ",(0,s.jsx)(n.em,{children:"Figure 7"}),"`* is displayed, the access is normal."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 7 ecs-HA1 access verification",src:i(83422).A+"",width:"392",height:"89"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following command to disable Keepalived on ecs-HA1:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"systemctl stop keepalived.service"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the following command to check whether ecs-HA2 has taken over\nthe virtual IP address:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"ip addr show"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 8 Virtual IP address of ecs-HA2",src:i(81676).A+"",width:"829",height:"278"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Use a browser to access the EIP and check whether the web page on\necs-HA2 can be accessed."}),"\n",(0,s.jsxs)(n.p,{children:["If the information shown in ",(0,s.jsx)(n.em,{children:"Figure 9"})," is displayed, the access is normal."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 9 ecs-HA2 access verification",src:i(1735).A+"",width:"397",height:"113"})}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},9155:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/en-us_image_0000001176019342-8d03ab9cde1f492968e4d3c114a2cf9c.png"},33281:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/en-us_image_0285681028-30998664d1e3709bbf1e03d93a0d23b3.png"},12152:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/en-us_image_0285681029-d498142f4a7bc5988600445c7e4026fd.png"},83422:(e,n,i)=>{i.d(n,{A:()=>s});const s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYgAAABZCAYAAAAkVrMYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAB5oSURBVHhe7Z0NdBTV2cf/+WQDAQJE3QixLEIlvPjW+PYjm762sBTPIZYWQ+GQWFox2Fpj21OD74EGbQ+GQjFgq6RaJOjRk4+DTRBp4jm2WWhps2m1BEUTK5iNUN2tUBf5cJckMO+9s3d2Z2dns7vZ3ZDA8zs8ZObO3TuzszP3fz+eZybJ7XZLIIg4IEmSrnFSU1NlS05O9hlBECMbEggiLqgF4dKlS77lMWPGwGAwiFwEQYwmSCCImNGKA7e0tDRZGKinQBCjF7p7iZjQE4f09HSMHTuWxIEgRjl0BxNDRk8cMjIyZCMIYvRDAkHEhFogeM+BG0EQVwYkEMSQ0PYeUlJSqOdAEFcYwyoQe/fuFUsjlw8//BCPPvoovvKVr8jj6Ndffz0WLlyINWvWoLu7W+QCvvSlL4mlkcGxY8dw++23y8aXhwO1SPBzRRDElcWwCER/fz9WrlyJgwcPipSRyc9//nPMnz9fPt4tW7bIFe0777yDH//4x/L2r3/96/jpT38qV4hvvvmmnDYSsNlssFgsWLFihWx8maclCrUwcOOurFfbhDT/3sq8C18WqezfJdkkZpd4Hn6OLl2Ure/CBbjdbng8F1g6ZPO7EPLyLuLSxQH09fXDzfJw85ftJ3i/wEB/H/r7LrBrl/0duCib3mcJIhoS7ub66aefYsmSJXKltXbtWpE6srh48SK++93vIjs7G9XV1XJAlx5OpxPf+ta3cMMNN2DPnj3yzX65eemll1BeXo76+np89atfldP+9Kc/obS0FDU1NfK5jzfqypHb+PHjrxqBcLn+za6XAWbJ8FxIRVIScG32BBgMqejzuHHq+Pvy+UnNnorkjPFIYhX/mEtn5c+ePXNWFgckp8jbOJPHZ2LCuLGygJz75GP5fJ53e5h5r63xk65HEsufJg0w65fLPvWph5Uqsc9l4JrJE+Q0e8+H8LhZ2SnsgNJT5M9Oz83FWIpBIWIgoXf1yZMnsWDBArlVO1LFgfOjH/0I06ZNw69+9auQ4sAxGo344x//KNYuP7yXw4e++DEp4sDhyzyNb+N5Egmfe4hdHDqwmdW0ScKWNDpFuqBjs29bUtJmljs8HZuTsFmT0dm4RFVOcFn8M75tSxqhOQqZD/51FL32t1nv8h28ceR9Zsdx7tw51qxnrf7T/0HXX6x4+89/xHvvO/D+JwPM+vAfl1M2e8+7eOftN9HddQSd7x6T7eQnn8jl8kbKx84PcOqD99F7tAtvHX5dtqO9p3DsuAvHjztxqteOj5i9/uYR/P2NI+g5bmddh3O41HcWb7z+Jv5y4G/4y5+ZvfZ32c7y4yKIGEiYQBw/fhzz5s3Dgw8+iHvuuUekjjyOHDmCV199FT/72c9Eij433XSTPAk7adIkuffAh1UuF7wyWb16NX73u9/hr3/9K/Ly8sQWPzyNb+N5eF7+mXjAW6tqG0xQI8OJxiVmdDQ4RJk2FJTk+Ct3ZyOWmDvQ4PDuz9HQAXOIyluG52cVvHmdWFfR27sX3/Tth9taFIhtXDzMHQ1wiG22ghLkaBWGIK4yEiIQb7zxhjyk9Otf/xrLli0TqSOTHTt24N577w3rgfPPf/5THlJS7PTp02LL8LNq1SqcOnUK+/fvx3XXXSdSg+HbeB6et6ysTKTGD16Rxi4Qvejd+02smGcU6wWYt4m15nu9EuA80Ii9m9ZihdhsXLEWm/Y24oCeQnBxyGnECocDDd8UaRoKpiv7CUQWjxXz4DsK70EECBEf/pk14wbMnX0jpl17Hc6dcuPTjz3o70/CpaQ0pGUYMGNmFm6cOZEtp8LTfwkDF5ORO202bmCWe10OcrOzYJw4HgOei+h3X8LFPu8wXXJKKnJv+m+Y5n4eU6/PRvaYM7JdTGKdhKQUZEyZgqk3z0ZO3kwkuV2Qzv8Hkuc8LjHdvzgg4ZNPT8F13gHX2ZP4+NSn+A87tr4LA75hQIIYCnEXCD4RvXjxYrzwwgv42te+JlJHLv/4xz9kL6XRBO/B7N69G+PGjRMpoeF5Ghsb5c8kgtiHl7gg7EXJc0prvQMH1imC4cSBxr3YNE9p53O8+Rv1FMK4Ai9JL/nEJBAnegfpEHBB2FvynG/IqePAugDBUMPqbH1CbtBBYtnD5o8ok7xfPtfBYZrt/Zi8RhCxEXeBKCkpkeceeA9CiaqN1PgwznDDewY333yzWIuOwsJCsTS8DAwMRBWQxp+J1NfXJ9biA+89cOIxOV2wVoINZjH+vxnTHaEq+dhZZ1bmGZYgYKqjYC0kG2CWtyVh83QHXkrAQXiHttjfQSt+by0vSexYvAlhkT/B/2Mf8H6aIGIn7gLR0NCAa665BlarNWBIJhLjlfVwwyuDM2fOiLXI+eijj2QX2JHC008/jaqqKtl++9vfitTRAJ+DSMKBecq8wNPAfToT1TFjxIqXlH0wsxWgJMcvEvIE9oF5vu1P476gierj7zuQzGreMalpSE/lHkze6puLZHJyClLY37Q0Zul8mW1j2/sHLuBv+xvRYW3Aa+/24h8nk2B3G3B7QT4WMhufnoTjPe/hvXe68Gr982h57hm89ZYD58Z9AeczP4+bZ2Tjf2ZNwnRjJtLHpMqWxMrme+47cxKu917DJ72duHb2FzH9y0swbc7/YnLqGExOTsPHJz/EiX+9h39/9IF8nAQRLXEXiNtuuw379u2T4x5GksdPKKZPny5PVEfL4cOHMWvWLLF2eWlqasJTTz0l1oDf/OY3ePnll8VaYlAqx5jHtzueQwkacLdvFIlV5E83AI0HAipnLaHmEiKG9RhsvqGqDjxXwho3/oOAccXT7KhCzHWMMvovAqc9YoUgoiDuAsH53Oc+J/cgeIDZiy++KFJHJnz+gY/nR0tnZ6cshiMBHuHNnQHWr18vG18erkC+xE6AGjGd1dnKhLUX7xwF0/W4EI3QJKew2yVlHLNMjJ0wEbNm52DmTTkYO9br0ZaSloFM403IzJmN7EkTkZOZgpzx6Zg0ZRomZU9D9sRMXJuZiixDElynz8vWx2rv5JQUpKan45rcqbjuMzdg4qQJGJMyINt5zwWc/dSDC30DfA+sp5KGG2+8iTVOZmOqKQ/jcpgZZ7Nyk2E0XMDUKekwzZkF0399FhMyx8HAyj7fn4zXrgChI4afhAgEhweTHThwANu2bcOuXbtE6sjj+9//Purq6mC320VKeM6fP49nn30Wy5cvFylXJ7wXEbNAFMzDpr0l8M1R8yGn+1hzXkwQF9zNehMl96mGgjZj3TdXwDuHzV1aNXMJIelAozpjx2aY122Cd/5bO1HOi76P9WzEfuQ4jM3yUFJSioHV0xkwjM3E1NzJzCZhjCFN/kxyWjoMk6chY3IuJmZmYnJGCiYxGz8xW7aJ48ZioiEF49KSce68R7b+i9yDiQlEWhomZGcj69prMW58BtJSLsrm6euD+wKPjubn2SsQOTlTMXVqLrKvy2X7y2X7m8ZEJxmT0/sxhYmS8TNTZcvIMCA9OQXZbNvN2fIhEkRUJEwgOHwuoq2tTfai2bx5s0gdWfAhprvvvhsVFRW4cOGCSB0c3jPiE9tf/OIXRcrVgzK0pPyNffK7AGu9s8NymUlJOSgpsPkniLlnkjxf4N2e07gCjpdW6HoXhaO3JEfsg5kZsKniIAInytl+Sgpg0+wnNTUFSfIt482TwnoU3PiyF5bOKmRuySyNT0NwUUlNTWPmfdItdxgwGMYgPS1VtrRU76tYuaWlj5EtfQzP4zW+PY3tV+0MwIMTuSWp0lKZOKWPYZ9l+1DKTk1Jld1nM8akwpgpMhJEFAzLG+X4s414sBx/8N0vf/lLkTpy4F5BvDdw4sQJNDc3Izc3V2wJxOVyyVHXH3/8sfxoi4kTJ4otw8uUKVPw9ttvy5HdHD6slJWVJUdOcx5//HH09PTgySeflNc9Ho+cN16xG3wSV/Gv53a5zgNBEIkloT0IBf76yeeffx5z584VKSML3nrjEcff/va35cdU8B4Cf8YRr1C5KPBeEBe2L3/5y7Jr6+9///vLWinedddd+OxnP+tzD+ZDZNy9WIHPq7S0tPi28+hv3kOKJ0pLmxsXIIIgrjzondQauPtqbW2tPCz27rvvymlz5syRK2Aewcxb70RwL2LChAmqoRaCIK4ESCCIIaHECygCwcfIMzNpoJsgriSGZYiJuPJQDzFxceAPA+TBjgRBXDmQQBAxoRYJ7tEU70d6EARx+SCBIIaMthfBjfciqCdBEFcGJBBETOiJBHdr5m8S5HMTBEGMXmiSmogLyqS1evKa/+Uuzjx4K/b3RhAEMdyQQBBxQysSauM9DC4SShSwHAnM0giCGLmQQBBxhYuB8lcx9bqyrP5LEMTIhASCSAihxIDEgSBGD2EFgm5ogiCIq5NBBUKJkuVBUFwguCmTjwRBEMSVja5AKELA3RW5OMiPEBZGE4sEQRBXB0ECwcWBP/6avxuBe53wx0gTBEEQVx8BAqGIA39cAn+cNfmuEwRBXL0ERFJzgeDDSjwalsSBIAji6sYnEFwc+HwDn3vgL5ghCIIgrm4CehB8eIlPRBMEQRCETyAUd1YSCIIgCIIT0IMggSAIgiAUgiap+QQ1QRAEQfjUgIsDN4IgCILgBPUgCIIgCIJD40kEQRCELiQQBEEQhC4kEARBEIQuJBAEQRCELiQQBEEQhC5RCoQT9cuT5HdCDGZLG5ze3A1LdbcH2fJ6VrIa/f0o5UZH6GMeWnnEiKVjo+7vHK1t7BDlRYQHzsPNqP2/1VhgmYMcVTkzzAuw4J412PpsM2zvOOEZYNkH7KhdvhE274eDOH2sFTX3L8WCm3MCyll6/1bU7+/GaQ/LdM6KNd/R3jOREfE9ye1RfpSR3fOKRXXujtXijqQ7UHtMrMeKxwlbw1Y8UDQjyt+QCAl/3De3s2fPSh988IEUHrfkeLlCyge4T2ygLdsp9bhFNoV+l3RoR6lk1Mmf/3Cb5OoX+XRwn2yTqgpYXmOptPOIS6QODderlUHHXFzvEFuJKwn3yXapelHgby3bsjpJ+4u7XQ6py7pTqphv9OWrsomNg+KSupqrpOKZSvlGyXLvdqml2yG5lWu6n90r3W3Szp9YNNd/ldQusvhxSW0Pe/OZllVLbXb/jeR2dEktW4olk7oMne8SDe4TLVIlv7fUZcpWLG3v1LvX2HdprZTMQfkhGVfulA6dFNmi4NCWfPnz+VsOiZSh4epukbb/oCjg/ET2GxLhGIJAcFxSyw/8N5TPHmpjl5Ee+vmN60Ll99P+MKSiHT1iLRbapSrN/kkgEofbViWVX8bz63q5POC3lm3QStUltW8wy/nCVi5MgKoWq65no0WqfHXwBozryE6p1Kgci1Yg3L59YxFrZIlULe5uVRkxCgTHUV8sjkdlP2hhZyIUPVLdnZr8zCoPis3R4G6TKpXvYqyU2sJVBFpOMtHcVSGVztWph5iRQMSHIc5BZKHowSoUiTUfj9Wj9ZRYDkA/v3NTqPwKnWj/QwUqSljbgBg9eDqx9Sfr4RCrl4Osa3LEUqRkwfxwDapvEauh6G3GanMh1u9TBnjMqNrTgqqFg795MWtuGepsdWAVfDCHa1D+iHfQyXKnBaGudsPsMtTuqWJ7TCA5k9iZCEUGoPOamIwhvDrm9Cv12KicQudG1L9yWqxEggfWJ9ag1Z6DW79ThrICkUzEnaFPUs9cirJVYtlHLWr32cWyhhD5Ww+GvjA8+5vQVHwXLJkigRgFeGB7rBzrR+UYcD6K77eIZR3O2bCxZGnAmHn+hq2oKDCItTBML0XVlmKx4se2r5o1hbxYj9rZGQyNoaASNVvyxdpoxY6mZ2rFspfaZ5pYaqQYYNnQgu0bWOPxoSrsfGEnBvnViBiIwYuJ9QpWVkLbIGp9otl3sQeSxVpH5WLZT+gL4zSsL9pQdudovxmuLuwvlKFYtIZHPk7UPxo42Wv6QhGrfvRgwrdFK3xFKC8xh8ivj2lZOSoDbhon7EdUR/DYeqwJ1cgS5LP7KKj3Ppo43IyaV8Sywis1aD4slqPFkDFIr4eIhZjcXA3zl2KNtkt+uBqtIVqPWXn5wUrPuppWPS+GU1Y095bCMlOsEyMcD7qfuQuFQ/SuuTzYYT8qFhVuYa1SvSGLY3WoelTT9FlYHP31aSiEZaVYljEgK1ssythQ841CLHiwHt2hOtczLSieLpZHHR5Yd1fj9EztQFonqndbB+09EcNPTAKh3yV3YvvL+j90555aGBZp81tRsye4z3H6YCtcK+8IOR6LAe7SthGrfa6FOZjzjQdQsz8O1dPAaXasW/HA8kLMUFz4ZrGb9p6NaH5rsLHS07CzltADyxdgTk7g5+o7nCEufhs2KvsIMOEKec6O1icfwB2K2yMrb/VjVji5y6SCk53D+5eicJb3szPMTLgbuge/2eJ5/lhZrY/cAcv3AsWhudTvqun7PmqcNtaCX40F5hkiDzsGy1I88GQrugedm4oTh9vRFGGNZGtYj1axrGCcf2vo6zMkBli2VKrmEbKQx3otgThhffwuzJk0A0sfZT3yoHNhQtmW0qDe+6jgVCvqN92B6j3VKBNJCuHnJIlhZ2heTCqO7pTY5a3xIiiTmrRub9xroaBaOqSX/xaWLrJ56ZF2LtIpQ8HeJJULFz3zhnav14Wr3esSy9PWtel4YkToxWRv8bk8KmW7Dlap3PuMUtG2Q8HeV3z/iqtkQaXUckLkcPjdCY3zK6U2ve/U75JaHtJ6Y1RJbfY6qcznRhloxpV1srdLz8vluq6H3MzsOHUZ0vkLRZe0XeUiGtoCPXd66suEW6JRKt1xSLg7u6Qun0u0SSrb1RXWyy0ktirVvoUFeP64pTZ+ziPyBjokVd+iKYtZ3LzgzvrPvb6ZpKKHdkrtcdqdgq4XE7seQuOQ6pZp8jOLxmOoZ1eR8F5k539d8HVTtGsIHosn6qRiTTnkxRQfYhcIdlM3rQr8cbhpf2hXc5lI07vIjFKlVVUVcBEJ5W7HKk2fq5/GPY7vQykz2DU2AoFQ36hGdYWmrSDM0vYjYhNHc4OXNQceudta6feDL2DlnhUbVATfrEbJOLNIqrZ5y3K9Vq0RVlaxriqVTIuZkAgx6tmlLaNcatGexCGfv3BEcH4FPfWquBjdxoFSBvuO9UOoMDiDCIT7ZJfUJGIOIhIInQqIWzwroQAX1pBmkoq3tEmOQWKHomHYBcLNrpFb8qXqTrHeWR0cTxV0PUQACUTCiINAaCpAxRaq/bn5heXvEagrIsXUMRE9O4oCBcOH5gJ9WHMxM2GxKNuM2soxXAUmWpTK9oCYDr4t8LPqC/DQNuHDLptF2nlUbFBwNEmlqs/ms5tQ++2Cb1YmDp3qXDo+6FqxCbpRVDejTCznLxwRCsTJFqlcXRHqxM4c+oW6ZVks1Z0QG6JBTyD0bIQIhAzvbUbQGwvZE40SXYEYgkV6HuT7PiDOgzUGFmrL0zQWI4EEImHEOAfhRXey+g8qr4RjLWiaWYoiMRmXNb8YWn8m//hjJ5p35cNi1vENOVyH6hfFMqM4TzMCrPZmcNYM6kIbxLE6bH1MNYI+PkPlnWKA5f4WVCzi+zMi794mlCoTmR4rmraoR9ezkKE9dGMO5ohFTucjdbCGPbRCFN6iLkjHB73IAvOgLsCd8KjH2BN5/iLEvq8GNeqJioDz7CVneqFY4jSzY9b3i4uaZXVgYgC34xDqfhh7NIHrbIQTGJFiLEKVtRtdzVUoHmTy27l/IxYs3ojOOO9eZkO77+2SweYAa2AMEa9ra9m9S1XzNiZYSoLnXza+0Ir4X3nEUIiLQOhPVvu9Ejr3NKNwucVfEWRZULyO9TkCEDERh62wFi+FRVtrMJzd7SFcaPVpeityz2pnpzVoEjKA6UWobu2Rb5KuHcX+i/x1qz/gR+ZWmKaJxZDUoP0tsTiMJPL8RYYdtn2BZ7k4yJslmM6D3VH4yIfHYMxH6RN1qFupvQZDkJkFvbA7+6lEVGNZyLuzEk3dLhwaTCg61mN9Q7x/nwTCXVs7K1G6KNAh1bS4LGiyGs/Woilez2ciYiJOAsF+6PmshyCWFeReQS9rYTdbYAnoYRhQuLAsyAuDx0TU7muCZaF+7IP9WLNY8hLoJcMs9y7W3vTjdLkidpuzv1MvlqLDeaJbLEVH94kheAvFSCLPX2Q4Yd8jFqNhjz3AOyo+mFD64BrWtImArDzkLxTLKtp74xEr7kT9pubg75eahXwuFEdd6Gmt1hWK1n02n3DaHlX9jrq2FPX/EpmHHa9rKx7UafhlF6E0qLHYquvZSAw/cROIkJHV929F5/eKg25E3WGpV1irqLMMxeEedyCw7OAter2usLAtql5LtHTa49pqHYkk9PyNBm4pxFLdL+iB7dl61e+vNxTCqvbX4tSzYb3XQyE7I1kwLapgPYoeNGmHxRIinAlAdm29FeW6Qa8GWJYHC3XntiZYEzGERkRF/ASCXci6kdWv5KBssd4wQj4s39FeFk7cujj0s2iMxsBhLGtnd9zGKrVlY49Vx/88GGNunliKjrzcCIc34kgiz19kGGG6UyxGw52mBPn8m2CaJRbVeNrR9FoWJolVjmlxOcq1BxHhNRKeGjTvD/NLpJpQzIfF1HMA7HgUfTM/rCPwAdaE0rBDn4nBvo81FFmvYLWI0wmy/DXBQ59RP5+JSARxFAj9XoFxnX9yWks+u+kC22VlIcTES850jaA81QxrnAJrTDdbNJUQu6hZCy0scws1E+5u8VeF04EuseilHIVzxeIwksjzFxkm5N2mOYaB4PPl6G0XS17yb8sL2WiIDSNKHw4OOLO/sBV1uTn+CXtOdhEqtmnzDvLssZDYYXs9uN1fu6EatnNiJSQm1ghTXW0rzRha82Q46UTzE4dQaXXriJbfXM1BMxFRPp+JSARxFYjgXkE+1qgnp7XwRwYsEsucVUWwhBATjuG2Is1zbGpR/kizfiu4txlb90TRAS8owhrNIxZaH1mP+l6xombADmuHKDvLgrs2qL9zN+zasV6PJ2As37iuGJbL8PCYhJ6/CMlftgbFYpnT3Bu8D49bnVaE8sUaUUkkvfVY871WFE4PnpY2ldSieUPgME/rT7dGEf1rR/M9C1CtfbwH5/BGVDxui2LOx4yq5YUjfgjQ3lCNasMaLJ0/+JFmLSrVXJuMV2pQ30HjTJeVeMRBBKCOlB7k2fYK6piIilfD+z87dge/fMj8w51SuxK53O+WeqxVUvEqb6Sxn/B++u7X1BHTwmYWS9VWh89X39VZJ1UsKpPq7CKBowmU034P96sV/vIiDpQLjDxmOYKDlLRBTTr+4Npn9Q/9/IUj2Kfd+JA32NFlq5bKVYGTAYFyAfEyHHU5Qw+U499TfSyyhYl54MFqSuR6aD96l3RoW1HAOTTOZ79VuJgRR5v8DgnTqp1SV8DvH/i7mte1DBIIpwQRGiXLL4JjaaKl53mdOIh4vg9CBGWGCpjUEhhPJCzE/RIA24/2ui/dHdk+icGJv0CoIqu1EcW6nGySWOcyKKo3NO6gG1RrwTchOyqdN8rpvQGP57MMFtE6s0za2a1zoKpHdKCgXGo66s2jfnOXcX6F1KIWFoV+h9QU9EIliy+KWsbRFBhgxm1hdUDF5NhdHnRe5Lf2ie1ehnb+IkFPfGQLusnZMTyhvCGNP7qk3fuojYC3D5qk4id0HmkSASHfKGcslerE7+LD7fK+9e0h9RvJigMbADq4jvCGgslf9swiqWJXm9TlUJUv3ihXt4F9V9bQqGrWe3SIjvDzRklrl+TwnTO3/NY070uKzFJ5fQyPIBGEfqOcP3o/kCjeKCc3Mqp9b9vLZw2FHlf4I3azhoRu+aqnBQRxtkdqWacjLMu2s2OK9SwRCRAI9kPzyOooKnwepRztawddR/lrBosls+9ZRSbJvKxc2q5q7XvRuQE1FtRadLSzm7pMsvjeVuUtu7q+PcxjDlxST+t2qXyZRcpTKnNjnmThx9XaE6JlFtyzUZvc+ho0KtgbaTxoVKxOyzny8xcdroPVUlmBqDhnmqWyDU2hxUY5z0p+ZqYCC/tM3dCeOxRp9HRYq4j4DWfuE4ekpl2V8m/uv164GaW8+ey7PLRdqrMNdk7Z9fnDSqlFfF+33V+e7xqSyypjAtQidcUYQR1V9LTcQw1//6itin3X0Pn1o+LbN+jl1TFVjznizzCLtAdDBJPExYGdRAwMDODMmTO4/vrr+SpBEARxlRPnSWqCIAjiSoEEgiAIgtCFBIIgCILQhQSCIAiC0IUEgiAIgtCFBIIgCILQhQSCIAiC0IUEgiAIgtCFBIIgCILQhQSCIAiC0IUEgiAIgtCFBIIgCILQhQSCIAiC0IUEgiAIgtCFBIIgCILQhQSCIAiC0IUEgiAIgtAB+H9RWF6TQ5wB+gAAAABJRU5ErkJggg=="},1735:(e,n,i)=>{i.d(n,{A:()=>s});const s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAABxCAYAAAApgP8HAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AACKgSURBVHhe7Z0PdFTVve+/k78TkkAQkIlWH/FiW7jaGt9rm2RpK2PpesSiGAqLxMWtGrXWaLtugxYMuLowXFgYvKtKrLUE7bMJLF0JIi/xLm8T6aIrk/W0Ca2W+IfLcEtlBoFOIMBMkknO23uffWbOnDmTnJlMIIHfZ63fzD777DnnzPmzv/vPb+9j8/v9CghiAlCU8K2lD3OMywRBTA1INIgJQRMF/q0P678Jgph6kGgQScUoFnrT4vXfBEFMLUg0iKShFwi9cdLS0oSlpKSEjCCIqQeJBpEU9CIxMjISCmdmZsJut8tUBEFMdUg0iHFjFAxu6enpyMrKgs1mk6kIgrgcoDYCYlyYCUZGRgamTZtGgkEQlyEkGkTCmAkGr11wIwji8oREgxgXetHgNQxuBEFcvpBoEAlhrGWkpqZSDYMgrgAuqmjs3btXhiYvx48fx7PPPotvf/vbol3+mmuuweLFi7FmzRr09vbKVMC3vvUtGZocHD58GN/73veE8fDFQC8c/FwRBHH5c1FEY2hoCKtXr8aBAwdkzOTkF7/4BRYtWiSOd+vWrSLz/fjjj/HTn/5UrP/+97+Pp59+WmSSf/nLX0TcZMDlcsHpdGLVqlXCeJjHTRR6seDG3Wpp3AVBXBlMuMvthQsXsGzZMpGRrV27VsZOLoaHh/HDH/4Qs2fPRl1dnRiEZobX68UPfvADXH/99dizZw/YuZNrLh1vvfUWqqqq0NTUhO985zsi7g9/+AMqKipQX18vzn2y4UKhdXxzy83NvaJEg/9nDvcOi/AQU9R4jgIbMxWbLn4oGGT3m7qclpaOVHmv8a1om1JYekXuY3hEQVCmT01NQUZ6uggb0Y6Jo10Lfp2CwSEeEMuwpYZ2ksa2Rd5tRCJMqGicPHkSd999Nx5++GE8+OCDMnbywTNdnvFt2bJFxsQmEAiI/zIZRIPXhl555RXs27cPCxYskLEqvClt6dKleOSRR/DUU0/J2OSgFw2e8eTk5Mg1ly/9/T7xzfPfwcEU9m1jmX4K8maoY1F4Jn/29EmM8EzaloKU3NmwiQxeQdrIABMFNVM/f/4ChgZZGkZKhh02JhycHLsd0+yZIhwcDGCQ3WecQba98/4BEU5Ny0DWtOki409h20tXgiJ+mB3U+cFBjLBv3rd01fQcpDLhCA4H8YX3dEikkM5EI4X9lh3f7KtmIpOcFogEmDDR+Nvf/oYlS5aIJp8VK1bI2MnHhx9+iLKyMtHcNFpH7le+8hXxnzR4k0xfX59curjwmtGPfvQjccxcMObOnSvXRHLixAkhHF/72tfw61//WmQo40VrktJEg3tLJT7iuwtbbMVYJ5fu2eXBW6scconRtQW2Ym3tZriUtSiSS7Ho2mLD/jsUrNUl9O5ehvxyfX9a5Lb4b0K7uWcXPG+tgu4oBB+8/674Dg6n4LRvOqsBpGB6rh23Fd0gSu1DLJP/f617cb7Px4QgA7nfugtpM+eKzD132MsyeFUEPv/vz3HGd0aEg9PyMJyh9gX9c8H1+PJ1XxLhvlNenD6u3mu+s2dxzOMV4czsqzDdsZBpUhoylQHMGv6HiA8Eh3HotA+DTBxyptnh/MYCZGdlMqG7gL17/shq+6roYAar1aTbxDX739/+DhxXX63GE0QcTEibwp///GfRHPXLX/5yUgsGh5fUeU1oLM+fTz75RNQsNLtUgsF54IEHcOrUKbz33nsxBYPD1/E0PG1lZaWMTR5cPGI15Y2NF7uXFaOLCYUqRC4UledjS5e2ejeWFXdhl0cVKc+uLhQv281+FQOenpXAQ5m/jqNH9wpB0gRP0QkGF5TiLiYUcp2rqBz5oYMgCMJI0kWDd3bz0u3rr7+O7373uzJ28vKnP/1JeEdNJXjT2BtvvIHs7GwZExueZvfu3eI3E0HifRlHcXTvPVh1h1amL8Idm1mp/6gqC979u7F381poFQ/HqrXYvHc39pupBheM/N1Y5fFg1z0yzkDRPGPdQUUIyqo7QjWLIvUgosQpMzNDGO9T4F0UI8NMZEZ4JV30Rogmo/T0FFaKT2XGzgmLYhokjPddpKdnCktjtb10bmmpLIktlEY19sFITU1DRmYW0jPtYjqWVNuIMF5rUftK2C9T2DZYbZdbWkY6+7E4KGHadninyvBIMGysJjLMjpt/86YsgkiEpItGeXm56MvgNQ1tdLBV401AFxteg7j55pvlUnyUlJTI0MUlGAzGNYiONx8NDg7KpeSgZUyJiwYXib0of00r1Xdh/zpNRLzYv3svNt+hb4xS0+82Uw3HKrylvBUSmEi8ODpKxYGLxN7y19jeVbr2r4sQEY1/uv5aYdflz0XwQhCBM4MYOBdk+XIqRmystsUy+qvnZuPa63LguIaJeaoNA8ERBEdsyJsxF3PnXK/aVbNwdV4O5kzPQSbL+IcHWEbObCSo1nR4k9+06TORf8NXcc0NC9g25yAv47ywrLQBDDPBGLalIHXaNMz+p+uFXXVdPlKGzkMJnAEC/VC4KDD94OLQ7/ehP3Ba2NmzF3C2L4D+MwMIDqnNiwQRL0kXjV27dmHOnDno6OiIaM6xYjwDv9jwTsyzZ8/KJet88cUXwh13svDyyy+jtrZWGO+/mAoUrVXgQrG4BjbbFszzxMr4x8+6YtXTyWZbht163SlaC8UFFIt1NmyZZ+hXkXDPJWEpWu2AZ/KiMC+xIYUJRQpbz9OIqgaDr+fCmsIEQhjvJGf74enUBNoWdFvi61ltRBj7rVq3GBHfcrPiO5SGHZc8KLaCf6tJ2BGyTz7jsGaydsS0IrRbgoiTpIvG7bffLjpn+biM3//+9zJ28jJv3jzRGR4vBw8exI033iiXLi3Nzc341a9+JZeAl156CW+//bZcmhh4xsZJvLTK+zTUTms1A34ZeNSGZRE5ejJwYNVb2j6YuYpQnh8WDt6nYdt/R2j9y3gUttH6TpIF25f4Ep9jI5MzrdBUwzraf+N707sCE0QiJF00OF//+tdFTYMPinvzzTdl7OSE92fw/oF46enpEQI5GeDutdzhYP369cJ4+GINPkxYNLpeQzl24f5QCxTL3F/eBezeP2qGHatvwjKsZuEKNXN14bVyVjsOHwQcq15mRxXddyJqB8xEbUXGcdTaCzddmNUi+DKHl/DP9/twtu8L1fwB9A8C/UNARoYdV83IxczpOUhjNYoAq20PBPw4d6YPp70eZsfRf/YchlNyMJw6HSnp2cjJSkMus2mZ/IVWao2F75PvkO+Si0Nw4DyC/n4MD/qRkTMT9hlzhKWnZSCdpeO9KcHgAAYGLv04I2LqMSGiweED4Pbv34/nn38eO3fulLGTD+662tjYCLfbLWPG5vz583j11VexcuVKGXNlwjOriWkXd2Aey8e1TnEVtc+DVQyTQnzi04X01LSQiUyawT9tNj5Ijjc5pSItjY/dYJaqNkHxjHx4OIijn/wJh7rbhX389xP4pA/47EwK8mbPxf9aeKOw3MxUfOE5jhPHj+PTPx9E13/8X2at+OSvbvizvopA1leQNn0e5l87HV/+Ui6uu3oa0tLZPoWFB+qNBAdx/sR/of/4xwj4PsfsL/9POG66TVhezizkpqQhmx3v2b7T+OLkcfEbgoiHCRMNDu/baG9vF947VgbOXQp489T999+P6upqVvKS/uxjwGtQvPP8m9/8poy5cghlmPI74Q72ojuweW85Qv3gvLnqUVbsl53QRfezWkf5o7pmpC1Yd88qqP3k3L3W0DcRky52/+kSdm1B8brNUPvYjZ3xfNOPshqQ3A8fJ2Lbwrag75AniCubCRUNDp/IrrW1FX/961/x85//XMZOLvjUIZzbbrsNx44dE2EzfD6f6KvxeDzYsWOHjL348HPKpzTR4KPU9QPsuJstH9inwdfzwYjJQi8cfKBhYhRhrdoDLbZjs+WjvMgV7oTmHlGi/0Fdn797lemgOyscLc+X+2BWjIiBfZGd8Ww/5UVwme2He0gxS2E1jWk5duTk2pGVnSl+o663ITUzG2n2XKTac5CZngY7q3Vwy8jIZJYljMdnptqEcTfZwaFhYSMjSugYUvlvp2UJS8/MYLUWRRjvDOdTigTZOVdHefN989+ksnsiBzk5uchmlpbFj4F9s+OxpyrMRoRNy7Yje3oOsnOzkZ6WhlTt2AkiDi7a6155W+vvfvc7kelORngzy4svvigGJPJxJnziwjvuUDtIu7u78cEHH+C3v/0tnnjiCTz66KPhzOIS8JOf/ASvvfaamFiR43A48Mc//hHXXnutWP7oo4/E9C1c3DT4RIsbNmyQS+ND61jl54zb+EaFTxGGL4ivYHAEJ04NsExbYf87FXPn5ol7gU8jEjhzAsrwEBRbCgYyZ2EkJYPFBzHwj79hZEjtPzj5j/M4FwiK7D47dxbsWdNFvD19hAkJexTZiiH/eQQu9Iv4ANtff0AV5qxp2Zg19xrhUWXPTIdjVq6I5y7YJ06cEgKelpaKObNmivEgvBb46eH/Eus5ChMS7hrMS4pXT0sVgnZV/v8Q6wjCKvSOcAPclbahoUE0qX366acibuHChWL8CR+JPWvWLBF3paMXDW7Tp0+/pEI64QyrmX6QicU/fINiIsH09FR2P+SqosFqDQP9p5loBJlo2DCUnsdEgw8EHMaA7+8YDonGOZz3q016WTmzkJGpztuVlcGFQ30UgwN+DAbOi3BgcBhn5DQg9qxsXMVEw8ZEI4uJRv5sVXC4WJw+7RO1DzH31FVh0Tj86cdMNNTCBbJnAmms5sKCszMVZLLATBINIk5INIiEMNY2eOn3sp64cETNuHkN4+y5IPvPfAqVVCaW6oSF7GRg8MIZIRK8ujCUnsPEI43FczH5AkpQFQpf/wUEWE2Dk8lqGekZ6vQ1GSxpZpoUjaFBBAdVkeFNV+cH1PQZmXbkzpwt9pfJfjBrhjojABeLs2f7xXXgojE9N4ddj1RREz3+9/8O1TTAazWypjEjHUhPUZA7K5EGP+JKhkSDSBhNNPg3L+3yZio+sv/yJPyYsL8bIqJ2xVaEV+lrXSxW/oh/8vPFMdbMtKXwNhgR22RpmDiLb26632vb5OjjR4SIaYTjtSTc84sg4oFEg0gYnlFpptU4uGjEM8UJQRBTCypmEAnDS7SaqVNlpISmhCEI4vKERIMYF2bCwdvS+Rsb9U0mBEFcHlDzFJEU9E1VWnMV/+ZTe/PmqsTfu0EQxGSCRINIGkbh0BuviXDh4N49mvE4giCmFiQaRFLhAqF9a6Zf1sL6b4Igpg4kGsSEEEsgSDAIYmozpmjQQ04QBEFojCoamu89H7jFRYOb1sFJEARBXHmYioYmDtx1Uhvpqxl1XhIEQVy5RIkGFww+Vw1/twT3dsnLy5NrCIIgiCudCNHQBIPPjjljxgzyrScIgiAiiBgRzkWDN0nxUb0kGARBEISRkGhwweD9F7wvY+bMmTKWIAiCIMJE1DR40xTNUEoQBEHEIiQammstiQZBEAQRi4iaBokGQRAEMRpRHeG8E5wgCIIgzAgpBBcMbgRBEAQRi6iaBkEQBEHEgtqiCIIgCMuQaBAEQRCWIdEgCIIgLEOiQRAEQViGRIMgCIKwDIkGQRAEYRkSDYIgCMIyJBoEQRCEZUg0CIIgCMuQaBAEQRCWIdEgCIIgLEOiQRAEQViGRIMgCIKwDIkGQRAEYRkSDYIgCMIyJBoEQRCEZUg0CIIgCMuQaBAEQRCWiVM0vGhaaYPNNrot3+VVU+9abro+ylY2sS3rMd+Ptt34iH3MiW2PmLR0bTK9zvHapi65PUsE4D3YgoanHsKdzoXI123nhuI7ceeDa7Dt1Ra4PvYiEGTJg240rNwEl/rjKPoOt6H+seW48+b8iO0sf2wbmt7rRV+AJTrXgTX/YnxmrGH5meT2LD9Ka8+8ZnGdu8MNuMt2FxoOy+VE6OtFy3OP4y7tfOUvZOd8E1o+6pMJiKTj9/sVbv39/crnn3+ujI1f8bxdrRQC/IXikbZih3LEL5NpDPmU7lcqFIdJ+sIN7YpvSKYzwX+yXaktYmkdFcqOD30yNjF879ZEHXNZk0euJS4n/Cc7lbolkdda2IpGxXjF/T6Pcqhjh1K9yBFKV+uSK0fFpxxqqVXK5mvbdyjOh7crrb0exa/d00PsWeltV3b8q9Nw/9cqnTJJGJ/SvkFNV7CiTml3hx8kv+eQ0rq1TCnQb8Pkv8SD/1irUsOfLf02hZUp23vMnjX2X9pqlOKo9FAcq3co3Sdlsjjo3loofl+4tVvGxIe/p04pdUQfj2rsevxbJztqItkkIBocn9L64/BDFrIn22NcJPP0jnWx0ofp3ACl9JUjcmk8dCq1hv2TaEwcfletUnUJz6/v7aqIay1s1IzWp3RuLBbpxhQNJkq1S3X3s8Op1Lw7eqHG9+EOpSKUwRlFwx/aN5awgpeMNeLv1W1jnKLB8TSVyePR2Y9b2ZmIxRGl8V5DemY1B+TqePC3KzXaf3HUKO3x5u7uRt35jGUOpeINesaTTYJ9Gnko/VktSuVSiOea0HZKhiMwT+/dHCu9Rg86/7Ma1eWsjEVMHQI92Pav6+GRi5eCvDn5MmSVPBRvqEfdLXIxFkdb8FBxCdbv0xqHilG7pxW1i/Pksjl5N1Wi0dUIltFFc7AeVc+oDVbOe52Idbfbv1qJhj21bI8TSP5MdiZikQWkyaCOLJO4seh7pwmbtFPo3YSmd+JpTvKi6an70DRm+xxL95Pt6OBNekTSSLwjfP5yVD4gwyEa0LDPLcMGYqRvOxD7Zgm814zmsvvgzJERxBQgANdzVVgfV7/AZKEQZY85ZdiEcy5sKl8e0QZfuHEbqovscmkM5lWgdmuZXAjj2lfHikcqHZ+52RmMjb2oBvVbC+XSVMWN5t80yLBKw2+aWaxFDjai7oAT1U3d8PkVsMIvlJPdaHzCRE69DXB9JMNEUhiH9xSrPayugbHg1PZCS+gBiCSPlaKqZDhM7JulDx1vulB571R/QK4s3K9XokyWmic/rCT6bGSHcsE3SmEuAUwMtxrFsBRV5cUx0ptTsKIKNREPjRfuD3VH8Nx6rIlV8JIUsucoqpY/lTjYgvp3ZFjjnXq0HJThMXDta8NyVrurKy9EnnbyZxei4oUOtD9pzJHYueUOCETSGJfLrX3RcqwxVucP1qEtRikzb0EhospxrJraYeY9caoDLUcr4Jwvl4lJTgC9v7kPJQl69Vwa3HB/JoMat1SzmoMM6znciNpnDcWhxWXx35/2EjhXy7DAjrzZMihwof7uEtz5syb0xqqEz3eibJ4MTzkC6HijDn3zjY1wPah7o2PUWpZG8ZOtqDGt3dnhrFjD6ot6nHBEnF9ivIxLNMyr815sf9v84vfsaYB9iTF9B+r3RNdN+g60wbf6rpjtuwh64dq1CQ+F3BzzsfDux1H/XhKyrGAfO9ZteHxlCW7Q3AlvZA/ymK58fXCzEtPjK+/EwvzI3zV1eWM8EC5s0vYRYdIt85wbbS/qXArZ9h56rgNefenJy87hY8tRcqP62xuKmZjv6h39AUzm+WPbanvmLjgfiRSMloqw22jo/+jxulhJ/yHcWXyDTMOOwbkcj7/Yht5R+7qSxMFONFvJpRiuXevRJsMajkW3xr4/Y8Iytq01un6JPCxgtZtIvOj49/uwcOYNWP4sq7lHnYsCVG6tiKrlTwlOtaFp812o21OHShmlMXYfp8Q+St1udn7kNbmlFLdSwTO5JOY9peOzHQq75Q1eC5VKs9EFj3tLFNUp3Wbpb2HxMpnKEWXHEpNtaLiblSrpLli8sVP19vB1qu65PG5du4kHiEXvKXdryP1S27bvQK3O1dChlD7fHe31xfevuW0W1Sitx2QKT9i10bGoRmk3+09DPqX1SaN3Wa3S7m5UKkMunZHmWN0ovGyOvF1l6gbJrZgdpykJnb9YHFK269xVY1ukx9CRpkrpQupQKl7plq7XPuVQyD27QKnceShxl0lXrW7f0iI8jvxKOz/nlryQupW6WwzbYpY077v+8Lk3twKl9MkdSmeSHYFMvafY/RAbj9K4wpCemTUXZZUjO0ul1yQ7/+ui75vSneP0lDzWqJTpt5cUz0tCz/hFgz3ozQ9EXnhxsQwX39dSKePMbjyHUtOhyx64sMRy/dO72hlc9fg+tG1G3ywWREP/8Dr0mZwx0yhWtn8oV3EMD31lS+SR+ztqwn76RWy7/XKFjugH2KE45pcqdS51W7736wxiyzLbByqUgqVMXKRAHdlp3EaV0mo8iQmfv7GwcH4lR5p043ZMCwzaNth/bErwoR9FNPwnDynNckyEJdEwZESaxZNZjkWEO21MK1DKtrYrnlHGNsXDRRcNP7tHbilU6nrkck9d9HivqPshTg7UhLflqFbaTZ41YnwkQTQMmaJmi/X+5vxmC9cc9JmTZvoxG0deKY0UkRCGm3aD4QZnYuPU1jmMGeZYmZoseWrrI8ac8HWRv9U/KN3PSx97YU5lx2dyhYanWanQ/baQPZjGfxf9ADPB6NGnMvGRNwpQVOame0AF4zl/Y2FRNE62KlX6zNFkbE/3v+lLoGVK4zG5Ih7MRMPMJoloCHit1EKtLWaNNU5MRSMBs3oexHMfMQ6FFRAWG7dnKEDGSedG7fwVKjUHEt8OEZtx9mmomHaI/6fOG+JwK5rnV6BUdkjlLSqD0Y8q3J7Zg5adhXAWm7Rbcle7N2WYUbbA0KJszwr7mHvrR3XnjeJwI7Y9p2uRz83SecXY4XysFdVL+P4cWPBwMyq0ztJAB5q36lvr85BlPHRHPhbKIKfnmUZ0jHloJSi5Rb8hEx/5UieKR3VH7kFA32Y/kefPIu599ajXd3xEnGeV/HklMsRpYcds7o8XNysawQQCfk8M98w48fVb7BCxiqMUtR29ONRSi7JR2uG9723CnUs3oSfJuxds7FRdWE3NA1boSBDVzbby4eW6PocCOMuj+3M2vd6GhO68U21ofEm9uYo31mP9bcY7i0gGSREN8w7xsDdEz54WlKx0hjOHPCfK1rG6SQRyzMbBDnSULYfT5Hp7eztjuPOa0/yRZc9veHs6ojo6I5hXirq2I+LBOfRKWfjG/6AjPEhJcCsKviSDMalH5yXwHZ/I82cNt3CX1FMW5UUTTc+BXus+/BawO7h7ZiMaVxvvwRjk5MFsqKD7VPJFVXSM31uD5l4fukcTj671WL8r2ddnAuFutj01qFgSOXSwYGllVIc4Xm1Ac9zzUQXQ85taUSBxrGbXdkN8rtCEdZIkGuziL2I1CRnWELWHo6wk3uKEM6ImYkfJ4soo7w8+ZqNhXzOci83HZrgPt8iQSqR3DrPr7mPl0jBen290DyId7o+bZCg+vMd6ZSg+eo9FKM1FYSLPnzW8cO+RwXjY447wykoOBaj4mdE9MwZ5C1C4WIZ1dB5Nxph3L5o2t0T/v7Q8FHLx+MyHI211puLRts8VElPXs7rraGrL0fR3mfiio7rZ4mcmhcHZpaiIKkC2mXpUjkagaxuqnnYJwejcWRHpQUUklaSJRswR4o9tQ88jZVEPp2mT1jus9NRTibKxpnKQOF/hJX+zarS0rbraTbz0uJNaup2MTOj5mwrcUoLlpn8wANerTbrrb9aMwrL795NUA2K13O6YlZY8FCypZjWPI2g2NqlNiJhOAMLN9lZUmQ7UtcO5Mlq8e55vtj79x7kOrL93PdxL69D2EhOMBKY1IayTPNFgN7fpCPF38lG51Ez3C+H8F+Ot4sWtS2PPveNwRDaBdfT0Jtb2aYJx29jTYeIfH43jugUyFB8LrrPYNJJEJvL8WcOBgntlMB7uLZigMQkFKLhRBvUEOtH8fh5mykVOwdIqVBkPwuI9Mjb1aHlvjCuRVoAy3qSm71Ngx6NpXvEGE9GPsGZUjNlsOjG497HCI6s9PCTHEUVZ4ZroZlPL81G50fTYfWj8BhOMpmoUmvTx9e17HNs+kAvEuEmiaJjXHhzrwh3gRgrZgxhZfquMITAq+fMMIvOrFnQk5aFlmcLNTkPGxG50VpIbk5tKDJ36fvmtw+vBIRlUqULJTTJ4EZnI82eNAiy43XAMwejz5TnaKUMqhbcvmKDmBgcqNkQPknO/vg2N1+WHnQI4s0tR/bwx7ShzrcXEDdcH0fWDho11cJ2TCzEpYAUz3d22uhiJFVkuJj1oeaEbNR1+EyELm68lqmfDwnxUrEb47H2o7lsTWzAONqDqEVZIowF+SSOpohFdeyjEGn0HuBE+HcISGeY8UArnKEP+7beXGubtYTfEMy3mpeWjLdi2J47Ke1Ep1himj2h7Zj2ajsoFPUE3OrrktvOcuG+j/j/3wm1sOw4EIvoGHOvK4Iw9leiEMaHnzyKFK9ZAP2Vfy9HofQT8+rhSVC01CM1EcrQJax5pQ8m86K7vgvIGtGyMbCJqe3qbtVHMAjdaHrwTdcapSzgHN6H6311x9CEVo3ZlyaRvPnTvqkOdfQ2WLxr9SPOWVBjuTcY79Wjqin1G3LvUec68+9bg1lyTGgyzmYUPoenmQiy4BM/bZUsyxmlEoB/xPcq7ATT0Yzaq3x3br9rzRvQLnYqf2KF0aiOwh/zKkY5apewBdcR0mLHHEfjf14/8lja/TKnr8ITGEvh6GpXqJZVKo1tGcAyD+4z/w/9udXh7lgf3RY6gZimiB1YZB2KZjCcwvusg8fM3FtE+944n1QGaPledUqUb7BkxuC9iPA9Hv53EB/fx/6k/FmFjjMngA+y0Efixxx74lO7nSyPOoWMRu1ZjjWnxtIt3cBQ8sEM5FHH9I69r8brWUQbvaQMfk/OCoSP/x2ScRjLfpyEHksYa5GkkcryTtBjPC39fS6yZEKLMOB6JGBfJFw3dCHHjyGhTTjYrrGIaNTo5Nv6oh9Zo0Q8mOyqTN/eZvWmQp3OONjJ3fqWyo9fkQHXTj6CoSmn+TE2jf0OaY1G10qoXG40hj9Ic9ZIqZ2g0uMDTHDkojtviuojMyvNGVdR5EW9HlOtVEjt/VjATJGFRDz47hhe0N9HxaVk61WlEIt7yWKCUvWAyXYsFYr65z1GhNMrrEsLvU9+u92Sp7s14ZZGFAhN8H/LCQ0F42/NLleqd7cohj2778s19jRvZf2WFj9oWs2lRTAoDvKDSdkjxhM6ZX/H1tsoXPxUrVU3jmF5FEvvNfeFZCCKJ4819ouBRF3qrYSErPBzxjX3Efla4MN2+btYDgaUXMIWNXsSUXCZANNjF5yPE4xABPto63lc++j5rVbb/uEwpDs3NVKAUr6hStutqBSomD6XBokqVnk72oFcqzpu0jFzddl1T5xhTOPiUI23blaoVTmWBdlM7FihOflxtR2KU4KJrQHoTpbRRRzerI6ZHHd1rUsK2fv7iw3egTqkskpnp/GKlcmNzbAHSzrOWnllBkZP9pjGxeZasjgIf06otv0nOf6xbad5ZI655+H7h5lAWLGL/5cntSqNrtHPK7s8napRW+X/97vD2QveQ2FYlE6VW5dA4R4LHNQpc1GTHfn70Vsv+a+z05qP7OzeapTUxfjz+7jHm6TKacVYEYrzYuGCwk4tgMIizZ8/immuu4YsEQRAEEUWSO8IJgiCIyxkSDYIgCMIyJBoEQRCEZUg0CIIgCMuQaBAEQRCWIdEgCIIgLEOiQRAEQViGRIMgCIKwDIkGQRAEYRkSDYIgCMIyJBoEQRCEZUg0CIIgCMuQaBAEQRCWIdEgCIIgLEOiQRAEQViGRIMgCIKwDIkGQRAEYRkSDYIgCMIyJBoEQRCEZUg0CIIgCMuQaBAEQRCWIdEgCIIgLEOiQRAEQViGRIMgCIKwDIkGQRAEYRHg/wOLKZGibQdw3gAAAABJRU5ErkJggg=="},81676:(e,n,i)=>{i.d(n,{A:()=>s});const s=i.p+"assets/images/en-us_image_0285681032-1d1f17d0a5f7a652ed45377981f320b3.png"},28453:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>c});var s=i(96540);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/12040345.ef8754ed.js b/pr-preview/pr-186/assets/js/12040345.ef8754ed.js new file mode 100644 index 000000000..a339f6c69 --- /dev/null +++ b/pr-preview/pr-186/assets/js/12040345.ef8754ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[84424],{76510:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>n,metadata:()=>r,toc:()=>c});var i=s(74848),a=s(28453);const n={id:"fuse-ai-open-telekom-cloud",title:"Fuse-AI: e-Health from the Cloud",tags:["healthcare","by-industry","artificial-intelligence","ai"]},o="Fuse-AI: e-Health from the Cloud",r={id:"blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud",title:"Fuse-AI: e-Health from the Cloud",description:"Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer \u2013 such as carcinomas \u2013 on MRI scan and assess whether a tumor is benign or malignant. And that doesn\u2019t just save doctors time. \u201cThe biggest advantage is the improved quality of a diagnosis,\u201d says Maximilian Waschka, one of the four Fuse-AI founders. \u201cOur algorithm helps radiologists notice abnormalities on thousands of images more reliably.\u201d The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.",source:"@site/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud.md",sourceDirName:"blueprints/by-industry/healthcare",slug:"/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud.md",tags:[{inline:!0,label:"healthcare",permalink:"/docs-next/pr-preview/pr-186/docs/tags/healthcare"},{inline:!0,label:"by-industry",permalink:"/docs-next/pr-preview/pr-186/docs/tags/by-industry"},{inline:!0,label:"artificial-intelligence",permalink:"/docs-next/pr-preview/pr-186/docs/tags/artificial-intelligence"},{inline:!0,label:"ai",permalink:"/docs-next/pr-preview/pr-186/docs/tags/ai"}],version:"current",frontMatter:{id:"fuse-ai-open-telekom-cloud",title:"Fuse-AI: e-Health from the Cloud",tags:["healthcare","by-industry","artificial-intelligence","ai"]},sidebar:"blueprintsSidebar",previous:{title:"Open Telekom Cloud for Dementia Therapy App",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app"},next:{title:"Innovation",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/innovation/"}},l={},c=[{value:"Benefits for the Customer",id:"benefits-for-the-customer",level:2},{value:"A Second Opinion Thanks to AI",id:"a-second-opinion-thanks-to-ai",level:2},{value:"The Challenge",id:"the-challenge",level:2},{value:"Cloud-Assisted Diagnosis Help",id:"cloud-assisted-diagnosis-help",level:3},{value:"Cloud-Assisted Skin Cancer Diagnosis",id:"cloud-assisted-skin-cancer-diagnosis",level:3},{value:"The Solution",id:"the-solution",level:2},{value:"About Fuse-AI",id:"about-fuse-ai",level:2},{value:"See Also",id:"see-also",level:2}];function h(e){const t={a:"a",admonition:"admonition",br:"br",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"fuse-ai-e-health-from-the-cloud",children:"Fuse-AI: e-Health from the Cloud"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"#about-fuse-ai",children:"Fuse-AI"})," is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer \u2013 such as carcinomas \u2013 on MRI scan and assess whether a tumor is benign or malignant. And that doesn\u2019t just save doctors time. \u201c",(0,i.jsx)(t.em,{children:"The biggest advantage is the improved quality of a diagnosis,"}),"\u201d says Maximilian Waschka, one of the four Fuse-AI founders. \u201c",(0,i.jsx)(t.em,{children:"Our algorithm helps radiologists notice abnormalities on thousands of images more reliably."}),"\u201d The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations."]}),"\n",(0,i.jsxs)(t.p,{children:["\u201c",(0,i.jsx)(t.em,{children:"In the future, we will help to detect many common illnesses much more quickly, comprehensively, and reliably with the help of the Open Telekom Cloud,"}),'" says Sabrina Reimers-Kipping, PhD biochemist and co-founder of Fuse-AI. \u201c',(0,i.jsx)(t.em,{children:"Not only does this reduce the workload of the doctor and the costs for the healthcare system, it also increases the chances of recovery for the patients. Because the earlier diseases are detected, the better the chance of a recovery."}),"\u201d"]}),"\n",(0,i.jsx)(t.h2,{id:"benefits-for-the-customer",children:"Benefits for the Customer"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Flexibly scalable resources enable the artificial intelligence to do detailed data analysis at any time of the day.\xa0"}),"\n",(0,i.jsx)(t.li,{children:"Doctors and patients trust the solution thanks to the Open Telekom Cloud, which is known as a secure platform offering the highest levels of data privacy and data protection."}),"\n",(0,i.jsx)(t.li,{children:"With Deutsche Telekom as their partner, the founders of the start-up are able to establish a sustainable market foothold more quickly."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"a-second-opinion-thanks-to-ai",children:"A Second Opinion Thanks to AI"}),"\n",(0,i.jsx)(t.p,{children:"Radiologists don\u2019t have an easy job: Each day, they have to analyze several thousand x-rays and other tomographic images. A single MRI (magnetic resonance imagery) scan creates around 2,000 pictures. A diagnosis requires the utmost concentration, from the first to final image. After all, any mistake could have life-threatening consequences."}),"\n",(0,i.jsxs)(t.p,{children:["The founders of the start-up Fuse-AI want to ease this challenge with their innovative electronic health (e-health for short) solution. They have developed artificial intelligence that helps doctors detect cancer. \u201c",(0,i.jsx)(t.em,{children:"The goal is to give radiologists a computer-assisted second opinion that makes their job easier,"}),"\u201d says Waschka."]}),"\n",(0,i.jsx)(t.h2,{id:"the-challenge",children:"The Challenge"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"To analyze large amounts of data from MRI scans the founders need flexibly scalable processing resources."}),"\n",(0,i.jsx)(t.li,{children:"The young northern German entrepreneurs searched for a provider offering secure, reliable and flexible IT capacity."}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"cloud-assisted-diagnosis-help",children:"Cloud-Assisted Diagnosis Help"}),"\n",(0,i.jsxs)(t.p,{children:["The northern German start-up relies on IT resources from the Open Telekom Cloud for its extensive medical analysis. The MRI scans are sent encrypted via the Internet to Deutsche Telekom\u2019s highly secure data centers in the eastern German state of Saxony-Anhalt, where they are then analyzed. The intelligent algorithm notes any abnormalities, adds metadata to the images and then sends it back to the radiologist\u2019s computer system. The doctor can then use the notes and metadata to make a faster and more accurate diagnosis.",(0,i.jsx)(t.br,{}),"\n","The four entrepreneurs submitted their idea to TechBoost, Deutsche Telekom\u2019s program for promising start-ups with software-based business models, and were accepted. Since then, the company has benefited from \u20ac100,000 worth of IT resources from the Open Telekom Cloud. \u201c",(0,i.jsx)(t.em,{children:"The Open Telekom Cloud is a wonderful instrument giving us both the flexibility and scalability necessary to realize this kind of solution,"}),"\u201d says Dirk Sch\xe4fer, a machine learning expert and co-founder of Fuse-AI."]}),"\n",(0,i.jsx)(t.h3,{id:"cloud-assisted-skin-cancer-diagnosis",children:"Cloud-Assisted Skin Cancer Diagnosis"}),"\n",(0,i.jsx)(t.p,{children:"But detecting carcinomas on MRI scans is just the beginning. Fuse-AI is already planning to expand into other solutions. The company\u2019s founders have developed together with dermatologists a so-called digital dermatoscope to make skin cancer detection faster and more accurate. The principle is the same with MRI scans: The dermatoscope photographs the skin\u2019s surface of a patient. An intelligent algorithm in the cloud then analyzes the images and the system alerts the physician to any abnormalities it discovers."}),"\n",(0,i.jsx)(t.h2,{id:"the-solution",children:"The Solution"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"The start-up now has scalable IT resources available all the time from the Open Telekom Cloud."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"The company uses certified, highly secure data centers located in Germany."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"TCDP 1.0 certification attests that the Open Telekom Cloud already conforms to the EU\u2019s General Data Protection Regulation (GDPR)."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{src:"https://www.t-systems.com/resource/image/170888/ratio3x2/1440/960/3b17e291f8a5491c3fa97eba9be7a435/FA23A3FF3A7E664AAA9B62ADB2E073FF/im-ref-fuse-ai-infographic.png",alt:"Infographic",title:"Infographic"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"about-fuse-ai",children:"About Fuse-AI"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://fuse-ai.de/",children:"Fuse-AI"})," applies big data analytics to medical diagnosis. The Hamburg-based startup was founded in 2015 and developed artificial intelligence that can detect indications of cancer \u2013 such as carcinomas \u2013 on MRI scan and assess whether a tumor is benign or malignant. And that doesn\u2019t just save doctors time. The start-up\u2019s artificial intelligence analyzes MRI scans, notes possible carcinomas and assesses whether a tumor is benign or malignant \u2013 it\u2019s a second medical opinion from the Open Telekom Cloud. That makes a radiologist\u2019s job easier, saves time, improves the quality of a diagnosis and reduces healthcare costs."]}),"\n",(0,i.jsx)(t.h2,{id:"see-also",children:"See Also"}),"\n",(0,i.jsx)(t.admonition,{title:"Additional Information",type:"info",children:(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Read the whole success story ",(0,i.jsx)(t.a,{href:"https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/fuse-ai-open-telekom-cloud",children:"here"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"https://www.t-systems.com/resource/blob/170894/b87be365511a2bd88d33b32568489572/DL-Flyer-Fuse-AI-T-Systems-EN-06-2020.pdf",children:"Download"})," our reference flyer."]}),"\n"]})})]})}function d(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},28453:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>r});var i=s(96540);const a={},n=i.createContext(a);function o(e){const t=i.useContext(n);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/12112.835523cd.js b/pr-preview/pr-186/assets/js/12112.835523cd.js new file mode 100644 index 000000000..cb1b66046 --- /dev/null +++ b/pr-preview/pr-186/assets/js/12112.835523cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[12112],{12112:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_server:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21.002 16v3.5a3 3 0 01-2.824 2.995L18 22.5H6a3.001 3.001 0 01-2.994-2.824L3 19.5V16h18zm-5 1.5a1 1 0 100 2 1 1 0 000-2zm5-8v5h-18v-5h18zm-5 1.5a1 1 0 100 2 1 1 0 000-2zm2-9.5a3 3 0 012.994 2.824l.006.176V8h-18V4.5a3.001 3.001 0 012.823-2.995l.176-.005h12zm-2 3a1 1 0 100 2 1 1 0 000-2z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M18.002 1.5a3 3 0 012.995 2.824l.005.176v15a3 3 0 01-2.824 2.995l-.176.005h-12a3 3 0 01-2.995-2.824l-.005-.176v-15a3 3 0 012.823-2.995l.177-.005h12zm1.5 14.5h-15v3.5c0 .778.596 1.42 1.355 1.493l.145.007h12c.778 0 1.42-.596 1.493-1.356l.007-.144V16zm-3.5 1.5a1 1 0 110 2 1 1 0 010-2zm3.5-8h-15v5h15v-5zm-3.5 1.5a1 1 0 110 2 1 1 0 010-2zm2-8h-12c-.779 0-1.42.596-1.494 1.356l-.006.144V8h15V4.5c0-.827-.673-1.5-1.5-1.5zm-2 1.5a1 1 0 110 2 1 1 0 010-2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/12320.e66efd10.js b/pr-preview/pr-186/assets/js/12320.e66efd10.js new file mode 100644 index 000000000..48f67d6b7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/12320.e66efd10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[12320],{12320:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_user_file_billing:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M19 4.03v1.5l1.145.105-1.4 15.435a1.5 1.5 0 01-1.5 1.365h-.14L7.15 21.53 7 21.5H4.67A3 3 0 007.015 23l9.985.925c.092.005.183.005.275 0a3 3 0 003-2.73L21.77 4.28 19 4.03zM7 4V0L1.5 5.5h4A1.5 1.5 0 007 4zm10.5 13V0H8v4a2.5 2.5 0 01-2.5 2.5h-4V17a3 3 0 003 3h10a3 3 0 003-3zm-5.535-2.135c-.162.064-.33.114-.5.15-.17.035-.34.06-.5.08-.16.02-.345 0-.5 0A3.235 3.235 0 018.43 14.5a3.3 3.3 0 01-1.115-2.045h-1l.355-1h.535v-.64h-.9l.355-1h.68c.096-.43.265-.842.5-1.215a2.92 2.92 0 01.73-.805 2.71 2.71 0 01.915-.455 3.775 3.775 0 011.015-.205 5.14 5.14 0 011.74.29l-.385 1.115a2.625 2.625 0 00-.555-.15 5.44 5.44 0 00-.75-.045c-.4-.011-.794.104-1.125.33a2.05 2.05 0 00-.715 1.08h2.84l-.285 1h-2.72a1.03 1.03 0 000 .17v.47h2.5l-.285 1H8.71c.109.433.352.82.695 1.105a2 2 0 001.265.375c.268.005.536-.03.795-.1.21-.06.41-.143.6-.25l.295 1.09c-.12.1-.253.185-.395.25z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M19 4.05l2.8.25-1.55 16.95a2.978 2.978 0 01-3.074 2.71L17 23.95 7 23a2.777 2.777 0 01-2.261-1.344L4.65 21.5H7a.161.161 0 00.112.05h.038l9.95.9a1.49 1.49 0 001.635-1.218l.015-.132 1.4-15.45-1.15-.1v-1.5zM17.5 0v17a3.01 3.01 0 01-2.824 2.995L14.5 20h-10a3.01 3.01 0 01-2.995-2.824L1.5 17V5l5-5h11zM16 1.5H7.5v3c0 .8-.576 1.423-1.352 1.493L6 6H3v11c0 .8.576 1.423 1.352 1.493l.148.007h10c.8 0 1.423-.576 1.493-1.352L16 17V1.5zM8.6 7.9c.941-.706 2.414-.747 3.5-.375l.2.075-.4 1.1c-.6-.25-1.75-.35-2.45.15a2.152 2.152 0 00-.64.92l-.06.18h2.85l-.3 1H8.55v.65h2.5l-.3 1H8.7c.15.5.4.85.7 1.1.562.422 1.608.536 2.52.096l.18-.096.3 1.1c-.85.6-2.8.65-3.95-.2-.5-.41-.835-.983-1.042-1.798l-.058-.252h-1l.35-1h.55v-.65h-.9l.35-1h.7c.2-.8.55-1.5 1.2-2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/12673.b9f7eecf.js b/pr-preview/pr-186/assets/js/12673.b9f7eecf.js new file mode 100644 index 000000000..96c5d8e49 --- /dev/null +++ b/pr-preview/pr-186/assets/js/12673.b9f7eecf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[12673],{12673:(h,t,e)=>{e.r(t),e.d(t,{scale_icon_user_file_html_file:()=>l});var i=e(90936);const l=class{constructor(h){(0,i.r)(this,h),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const h=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},h,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M18.652 12.077h-2.057V8.403h.743v2.987h1.314v.687zm-2.805 0h-.742v-2.073h-.034l-.901 1.617h-.237l-.897-1.617h-.032v2.073h-.743V8.403h.682l1.095 2.035h.032l1.09-2.035h.687v3.674zm-4.07-2.986h-.941v2.986h-.743V9.091h-.94v-.688h2.624v.688zM8.67 12.077h-.743v-1.523H6.612v1.523H5.87V8.403h.742v1.463h1.315V8.403h.743v3.674zM3.004 1v19a3 3 0 003 3h8.5v-4a2.5 2.5 0 012.5-2.5h4V1h-18zm12.5 18v4l5.5-5.5h-4a1.5 1.5 0 00-1.5 1.5z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M18.652 11.39h-1.314V8.404h-.743v3.673h2.057v-.687zm-5.648-1.386h.032l.897 1.617h.237l.9-1.617h.035v2.073h.742V8.404h-.687l-1.09 2.035h-.032l-1.095-2.035h-.682v3.673h.743v-2.073zm-2.911 2.073h.743V9.09h.94v-.687H9.154v.687h.94v2.986zm-3.481-1.523h1.315v1.523h.743V8.404h-.743v1.463H6.612V8.404H5.87v3.673h.742v-1.523zM19.504 17h-3a1.5 1.5 0 00-1.5 1.5v3h-9a1.5 1.5 0 01-1.5-1.5V2.5h15V17zM3.004 1v19a3 3 0 003 3h10l5-5V1h-18z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1270.308bea52.js b/pr-preview/pr-186/assets/js/1270.308bea52.js new file mode 100644 index 000000000..6aa5bca5e --- /dev/null +++ b/pr-preview/pr-186/assets/js/1270.308bea52.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1270; +exports.ids = [1270]; +exports.modules = { + +/***/ 21270: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_file_collection: () => (/* binding */ UserFileFileCollection) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileFileCollection = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.55.46V4a2.33 2.33 0 002.145 2.328l.185.007h3.62v8.875a2.245 2.245 0 01-2.052 2.242l-.198.008h-.75v.79a2.245 2.245 0 01-2.052 2.242l-.198.008h-.75v.75a2.245 2.245 0 01-2.052 2.242l-.198.008h-9a2.245 2.245 0 01-2.242-2.052L2 21.25V6.5h3v-3h3V.46h7.55zM5 8H3.5v13.25c0 .38.282.693.648.743L4.25 22h9a.75.75 0 00.743-.648L14 21.25v-.75H7.25a2.245 2.245 0 01-2.242-2.052L5 18.25V8zm3-3H6.5v13.25c0 .38.282.693.648.743L7.25 19h9a.75.75 0 00.743-.648L17 18.25v-.79h-6.75a2.245 2.245 0 01-2.242-2.052L8 15.21V5zM16.625.46L21.5 5.335h-3.545a1.33 1.33 0 01-1.322-1.185L16.625 4V.46z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75.5H8v3H5v3H2v14.75a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-.75h.75a2.25 2.25 0 002.25-2.25v-.75h.75a2.25 2.25 0 002.25-2.25V4.363L17.75.5zM14 21.25a.75.75 0 01-.75.75h-9a.75.75 0 01-.75-.75V8H5v10.25a2.25 2.25 0 002.25 2.25H14v.75zm3-3a.75.75 0 01-.75.75h-9a.75.75 0 01-.75-.75V5H8v10.25a2.25 2.25 0 002.25 2.25H17v.75zM19.25 16h-9a.75.75 0 01-.75-.75V2H16v2.17c0 .734.595 1.33 1.33 1.33H20v9.75a.75.75 0 01-.75.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileFileCollection.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1292.c2a8c2af.js b/pr-preview/pr-186/assets/js/1292.c2a8c2af.js new file mode 100644 index 000000000..2b36a49d2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1292.c2a8c2af.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1292; +exports.ids = [1292]; +exports.modules = { + +/***/ 11292: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_print: () => (/* binding */ ActionPrint) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPrint = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.5 13.5V22h-13v-8.5h13zM17 15H7v5.5h10V15zm1.5-13v4h5v9.5a3 3 0 01-2.824 2.995l-.176.005H20V12H4v6.5h-.5a3 3 0 01-2.995-2.824L.5 15.5V6h5V2h13zm1 7a1 1 0 100 2 1 1 0 000-2zM17 3.5H7V6h10V3.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.5 13.5V22h-13v-8.5h13zM17 15H7v5.5h10V15zm1.5-13v4h5v9.5a3.003 3.003 0 01-2.824 2.995l-.176.005H20V17h.5c.776 0 1.42-.598 1.493-1.356L22 15.5v-8H2v8c0 .776.598 1.42 1.356 1.493L3.5 17H4v1.5h-.5a3.003 3.003 0 01-2.995-2.824L.5 15.5V6h5V2h13zm1 7a1 1 0 110 2 1 1 0 010-2zM17 3.5H7V6h10V3.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPrint.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/12934.57d3d3bb.js b/pr-preview/pr-186/assets/js/12934.57d3d3bb.js new file mode 100644 index 000000000..60154f0b0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/12934.57d3d3bb.js @@ -0,0 +1,2 @@ +/*! For license information please see 12934.57d3d3bb.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[12934],{88114:(e,t,s)=>{s.d(t,{c:()=>o});var r,i,n,o=(r=function(e){!function(){var t={}.hasOwnProperty;function s(){for(var e=[],r=0;r{s.r(t),s.d(t,{scale_list:()=>n});var r=s(90936),i=s(88114);const n=class{constructor(e){(0,r.r)(this,e),this.isNested=!1,this.ordered=!1}orderedChanged(e){this.propagatePropsToChildren(e)}componentDidLoad(){this.propagatePropsToChildren(this.ordered)}connectedCallback(){this.isNested=null!=this.el.closest("scale-list-item"),this.isNested?this.el.setAttribute("slot","nested"):this.el.removeAttribute("slot")}propagatePropsToChildren(e){Array.from(this.el.children).filter((e=>e.matches("scale-list-item"))).forEach(((t,s)=>{t.ordered=e,t.index=s+1}))}render(){const e=this.ordered?"ol":"ul";return(0,r.h)(r.a,null,this.styles&&(0,r.h)("style",null,this.styles),(0,r.h)(e,{class:this.getCssClassMap(),part:(0,i.c)("base",this.ordered&&"ordered",this.isNested&&"nested")},(0,r.h)("slot",null)))}getCssClassMap(){return(0,i.c)("list",this.ordered&&"list--type-ordered",this.isNested&&"list--nested")}get el(){return(0,r.g)(this)}static get watchers(){return{ordered:["orderedChanged"]}}};n.style=":host{--spacing-left:0;--spacing-left-nested:var(--telekom-spacing-composition-space-04)}.list{padding-left:var(--spacing-left)}.list--nested{margin-top:0;margin-bottom:0;padding-left:var(--spacing-left-nested)}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/12934.57d3d3bb.js.LICENSE.txt b/pr-preview/pr-186/assets/js/12934.57d3d3bb.js.LICENSE.txt new file mode 100644 index 000000000..bae6dd8e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/12934.57d3d3bb.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/pr-preview/pr-186/assets/js/1299.2f52a91e.js b/pr-preview/pr-186/assets/js/1299.2f52a91e.js new file mode 100644 index 000000000..5dc641477 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1299.2f52a91e.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1299; +exports.ids = [1299]; +exports.modules = { + +/***/ 51299: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_cloudy: () => (/* binding */ WeatherCloudy) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherCloudy = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.469 8.3a5.664 5.664 0 015.29 3.608 4.368 4.368 0 012.242 3.81 4.368 4.368 0 01-4.151 4.357l-.211.006H4.81A4.015 4.015 0 01.8 16.07a4.01 4.01 0 011.897-3.405 3.635 3.635 0 013.611-3.256c.23 0 .461.024.697.074A5.659 5.659 0 0110.469 8.3zm9.278 4.646a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.064-.849-.848a.6.6 0 010-.848zM16.601 6.8c1.655 0 3 1.346 3 3 0 1.111-.61 2.08-1.51 2.598a5.558 5.558 0 00-1.379-1.314 6.835 6.835 0 00-2.598-2.947A2.992 2.992 0 0116.6 6.8zm6.25 2.4a.6.6 0 01.097 1.192l-.097.008h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zM11.758 4.957a.6.6 0 01.765-.07l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 010-.848zm8.838 0a.6.6 0 01.918.765l-.069.083-.849.849a.596.596 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.848-.848zM16.601 2.95a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 4.75v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.5 8.381a5.577 5.577 0 015.242 3.639A4.246 4.246 0 0118 15.764a4.242 4.242 0 01-4.025 4.23l-.211.006H4.673A3.877 3.877 0 01.8 16.127c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 8.381zm0 1.2a4.377 4.377 0 00-2.758.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 16.127a2.676 2.676 0 002.504 2.668l.169.005h9.09a3.04 3.04 0 003.037-3.036 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.5 9.58zm9.246 3.365a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 010-.849zM16.6 6.8c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 6.8zm6.25 2.4a.6.6 0 01.097 1.192l-.097.008h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-2.254-4.244a.6.6 0 01.917.766l-.069.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zm-8.84 0a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 010-.849zM16.6 2.95a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 4.75v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherCloudy.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/13224.c5f83463.js b/pr-preview/pr-186/assets/js/13224.c5f83463.js new file mode 100644 index 000000000..1cef671ac --- /dev/null +++ b/pr-preview/pr-186/assets/js/13224.c5f83463.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[13224],{13224:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_action_disabled_microphone:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M5.25 9.5a.75.75 0 01.743.648L6 10.25V12a6 6 0 008.097 5.622l.243-.097 1.125 1.12a7.5 7.5 0 01-2.36.77l-.355.045v4.04h-1.5v-4.04a7.5 7.5 0 01-6.746-7.21L4.5 12v-1.75a.75.75 0 01.75-.75zM2.863 2.863a.75.75 0 01.949-.092l.093.074 17.25 17.25a.745.745 0 010 1.06.75.75 0 01-.976.073l-.084-.073-17.25-17.25a.75.75 0 01.018-1.042zM7.5 10.68l5.66 5.665A4.67 4.67 0 0112 16.5a4.5 4.5 0 01-4.495-4.288L7.5 12v-1.32zM18.75 9.5a.75.75 0 01.743.648l.007.102V12a7.435 7.435 0 01-.731 3.171l-.149.294-1.12-1.125a6 6 0 00.49-2.038L18 12v-1.75a.75.75 0 01.75-.75zM12.104.539l.212.01a4.5 4.5 0 014.177 4.239L16.5 5v7a4.67 4.67 0 01-.089.874l-.066.286L7.55 4.37A4.5 4.5 0 0112.104.539z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M5.25 9.5c.367 0 .691.294.743.651L6 10.25V12c0 3.3 2.7 6 6 6 .744 0 1.41-.115 2.069-.378l.281-.122 1.1 1.15c-.7.35-1.515.623-2.344.753l-.356.047v4.05h-1.5v-4.05c-3.72-.343-6.624-3.415-6.746-7.202L4.5 12v-1.75c0-.4.35-.75.75-.75zm-2.4-6.65a.722.722 0 01.965-.074l.085.074L21.15 20.1c.3.3.3.75 0 1.05a.722.722 0 01-.965.074l-.085-.074L2.85 3.9c-.3-.3-.3-.75 0-1.05zM7.5 10.7L9 12.2a3.012 3.012 0 002.621 2.783L11.8 15l1.35 1.35c-.35.1-.75.15-1.15.15a4.48 4.48 0 01-4.495-4.287L7.5 12v-1.3zm11.25-1.2c.367 0 .691.294.743.651l.007.099V12c0 1.146-.252 2.25-.756 3.196l-.144.254-1.1-1.1a5.26 5.26 0 00.493-2.036L18 12v-1.75c0-.4.35-.75.75-.75zM12 .5a4.48 4.48 0 014.495 4.287L16.5 5v7c0 .32-.032.64-.096.934l-.054.216L15 11.8V5c0-1.65-1.35-3-3-3a3.01 3.01 0 00-2.995 2.824L9 5v.8L7.55 4.35C7.85 2.2 9.75.5 12 .5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/133.adf20602.js b/pr-preview/pr-186/assets/js/133.adf20602.js new file mode 100644 index 000000000..1965a558c --- /dev/null +++ b/pr-preview/pr-186/assets/js/133.adf20602.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 133; +exports.ids = [133]; +exports.modules = { + +/***/ 90133: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_export: () => (/* binding */ ActionExport) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionExport = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.75 10v6.75a2.25 2.25 0 004.5 0V10h6.25v10.5a3 3 0 01-3 3h-11a3 3 0 01-3-3V10h6.25zM12 1l4.58 7h-3.83v8.75a.75.75 0 01-1.5 0V8H7.42L12 1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.5 10v1.5H5v9c0 .778.596 1.42 1.356 1.493L6.5 22h11c.778 0 1.42-.596 1.493-1.356L19 20.5v-9h-3.5V10h5v10.5a3 3 0 01-2.824 2.995l-.176.005h-11a3 3 0 01-2.995-2.824L3.5 20.5V10h5zM12 1l4.582 7H12.75v8.75a.75.75 0 01-1.493.102l-.007-.102V8H7.418l4.583-7z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionExport.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1340.b3e18a69.js b/pr-preview/pr-186/assets/js/1340.b3e18a69.js new file mode 100644 index 000000000..a8b4e169c --- /dev/null +++ b/pr-preview/pr-186/assets/js/1340.b3e18a69.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1340; +exports.ids = [1340]; +exports.modules = { + +/***/ 41340: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_moon_snow: () => (/* binding */ WeatherMoonSnow) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherMoonSnow = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6.681 18.621l1.04.6L7.04 20.4H8.4v1.2H7.04l.68 1.178-1.039.6-.68-1.178-.68 1.178-1.04-.6.68-1.178h-1.36v-1.2h1.36l-.68-1.179 1.04-.6L6 19.8l.68-1.179zm5.2-3.6l1.04.6-.681 1.179h1.36V18h-1.36l.68 1.178-1.039.6-.68-1.178-.68 1.178-1.04-.6.68-1.178h-1.36v-1.2h1.36l-.68-1.179 1.04-.6.68 1.179.68-1.179zM10.108 5.95a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753 4.24 4.24 0 01-2.514 3.873l-.187.078v-1.482a1 1 0 00-.4-.8l-.1-.065-2.7-1.565a1 1 0 00-.882-.06l-.119.06-2.699 1.554a1 1 0 00-.493.748l-.007.118v1.757l-.996-.581a1 1 0 00-.889-.06l-.12.06-1.012.591H4.04a3.858 3.858 0 01-3.639-3.857c0-1.4.755-2.684 1.952-3.366.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.255zm8.07-5.445a5.37 5.37 0 012.62-.03 4.548 4.548 0 003.057 8.515 5.377 5.377 0 01-2.933 1.969 5.37 5.37 0 01-2.685.015A5.424 5.424 0 0016.3 8.79a6.749 6.749 0 00-2.137-2.676A5.403 5.403 0 0118.177.505z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6.68 18.622l1.04.6-.68 1.178H8.4v1.2H7.04l.68 1.178-1.04.6L6 22.2l-.68 1.178-1.04-.6.68-1.178H3.6v-1.2h1.36l-.68-1.178 1.04-.6L6 19.8l.68-1.178zm5.2-3.6l1.04.6-.68 1.178h1.36V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6.68-1.178H8.8v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.78-9.04a5.577 5.577 0 015.242 3.638 4.245 4.245 0 012.258 3.744 4.238 4.238 0 01-2.607 3.905l-.193.075v-1.306a3.039 3.039 0 001.6-2.674 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44 2.676 2.676 0 002.504 2.668l.169.005H7.6v1.2H4.273A3.877 3.877 0 01.4 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.176.504a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherMoonSnow.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1352.be089697.js b/pr-preview/pr-186/assets/js/1352.be089697.js new file mode 100644 index 000000000..cc3f1544c --- /dev/null +++ b/pr-preview/pr-186/assets/js/1352.be089697.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1352; +exports.ids = [1352]; +exports.modules = { + +/***/ 41352: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_fax: () => (/* binding */ DeviceFax) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceFax = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M.501 9.507v10c0 1.65 1.35 3 3 3h3.5v-16h-3.5c-1.65 0-3 1.35-3 3zm9.507-3h9.512V3.022h-9.512v3.485zm1.993 6.993h6.5V10h-6.5v3.5zm5.75 3a.75.75 0 110-1.5.75.75 0 010 1.5zm0 2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm-2.5-2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm0 2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm-2.5-2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm0 2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm8.184-12.457h.085V1.522H8.508v4.985h-.007v16h12c1.65 0 3-1.35 3-3v-10a3.008 3.008 0 00-2.566-2.964z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.251 17.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.5-2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.5 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm5-2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-5.75-1.5h6.5V10h-6.5v3.5zm5.75 4a.75.75 0 100 1.5.75.75 0 000-1.5zm4.25 2.007c0 .85-.65 1.5-1.5 1.5h-12v-13h12c.85 0 1.5.65 1.5 1.5v10zm-15 1.5h-3.5c-.85 0-1.5-.65-1.5-1.5v-10c0-.85.65-1.5 1.5-1.5h3.5v13zm3.007-14.501h9.512V3.021h-9.512v3.485zm10.677.011h.335V1.521H8.508v4.986H3.501c-1.65 0-3 1.35-3 3v10c0 1.65 1.35 3 3 3h17c1.65 0 3-1.35 3-3v-10a3.005 3.005 0 00-2.816-2.99z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceFax.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/13533.a29361b2.js b/pr-preview/pr-186/assets/js/13533.a29361b2.js new file mode 100644 index 000000000..51bda67e6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/13533.a29361b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[13533],{13533:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_t_product_magenta_tv:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M22.825 10.75L18.5 3.25A2.5 2.5 0 0016.33 2H7.67A2.5 2.5 0 005.5 3.25l-4.33 7.5a2.5 2.5 0 000 2.5l4.33 7.5A2.5 2.5 0 007.67 22h8.66a2.5 2.5 0 002.17-1.25l4.33-7.5a2.5 2.5 0 00-.005-2.5zM9.5 16.33V7.67L17 12l-7.5 4.33z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M16.35 2c.793 0 1.587.436 2.055 1.103l.095.147 4.35 7.5c.371.696.398 1.608.04 2.336l-.09.164-4.35 7.5c-.42.7-1.145 1.182-1.971 1.243L16.3 22H7.65c-.84 0-1.593-.436-2.055-1.103L5.5 20.75l-4.35-7.5a2.49 2.49 0 01-.09-2.336l.09-.164 4.35-7.5c.42-.7 1.145-1.182 1.971-1.243L7.65 2h8.7zm-.05 1.5H7.65c-.306 0-.574.153-.77.392L6.8 4l-4.35 7.5a.91.91 0 00-.06.897L6.8 20c.133.267.425.454.734.493l.116.007h8.7c.306 0 .574-.153.77-.392L17.2 20l4.35-7.5c.131-.262.148-.602.016-.883L21.5 11.5 17.15 4c-.133-.267-.425-.454-.734-.493L16.3 3.5zM9.5 7.65L17 12l-7.5 4.35v-8.7z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/13537.d8977ff7.js b/pr-preview/pr-186/assets/js/13537.d8977ff7.js new file mode 100644 index 000000000..1b0dc870f --- /dev/null +++ b/pr-preview/pr-186/assets/js/13537.d8977ff7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[13537],{13537:(t,e,l)=>{l.r(e),l.d(e,{scale_icon_home_preferred_wifi:()=>s});var i=l(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12.006 18a2 2 0 11-.001 4.001A2 2 0 0112.006 18zm-1.08-4.4c.15.684.394 1.33.722 1.926a4.494 4.494 0 00-3.501 2.162l-.11.195-1.438-1.49a6.494 6.494 0 014.327-2.792zm.517-4.584a7.157 7.157 0 00-.612 2.063 8.985 8.985 0 00-5.801 3.25l-.19.242-1.407-1.46a10.98 10.98 0 018.01-4.095zm6.505.247a.254.254 0 01.234.15l.59 1.441 1.563.115a.255.255 0 01.132.453l-1.193 1.008.373 1.517a.257.257 0 01-.099.267.258.258 0 01-.283.011l-1.324-.823-1.322.823a.257.257 0 01-.383-.278l.373-1.517-1.193-1.008a.257.257 0 01-.079-.275.252.252 0 01.225-.175l1.564-.115.59-1.443a.256.256 0 01.232-.15zM12.006 4.5c1.47 0 2.89.205 4.235.587a7.158 7.158 0 00-2.92 1.48 13.47 13.47 0 00-11.405 4.468l-.23.264L.293 9.854A15.464 15.464 0 0112.006 4.5zm5.938 1.875a5.687 5.687 0 11-.001 11.375 5.687 5.687 0 010-11.375z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12.006 18a2 2 0 11-.001 4.001A2 2 0 0112.006 18zm-1.08-4.4c.15.684.394 1.33.722 1.926a4.494 4.494 0 00-3.501 2.162l-.11.195-1.438-1.49a6.494 6.494 0 014.327-2.792zm.517-4.584a7.157 7.157 0 00-.612 2.063 8.985 8.985 0 00-5.801 3.25l-.19.242-1.407-1.46a10.98 10.98 0 018.01-4.095zm6.505.247a.254.254 0 01.234.15l.59 1.441 1.563.115a.255.255 0 01.132.453l-1.193 1.008.373 1.517a.257.257 0 01-.099.267.258.258 0 01-.283.011l-1.324-.823-1.322.823a.257.257 0 01-.383-.278l.373-1.517-1.193-1.008a.257.257 0 01-.079-.275.252.252 0 01.225-.175l1.564-.115.59-1.443a.256.256 0 01.232-.15zM12.006 4.5c1.47 0 2.89.205 4.235.587a7.158 7.158 0 00-2.92 1.48 13.47 13.47 0 00-11.405 4.468l-.23.264L.293 9.854A15.464 15.464 0 0112.006 4.5zm5.938 1.875a5.687 5.687 0 11-.001 11.375 5.687 5.687 0 010-11.375zm0 1.5a4.192 4.192 0 00-4.187 4.187 4.192 4.192 0 004.187 4.188 4.192 4.192 0 004.187-4.188 4.192 4.192 0 00-4.187-4.187z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1354.9cebb56b.js b/pr-preview/pr-186/assets/js/1354.9cebb56b.js new file mode 100644 index 000000000..15ab98969 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1354.9cebb56b.js @@ -0,0 +1,64 @@ +"use strict"; +exports.id = 1354; +exports.ids = [1354]; +exports.modules = { + +/***/ 11354: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_link: () => (/* binding */ Link) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const linkCss = ":host{--spacing-x-icon:var(--telekom-spacing-composition-space-03);--line-offset:0.0625em;--color:var(--telekom-color-text-and-icon-link-standard);--color-line-initial:var(--telekom-color-functional-interaction-subtle);--line-thickness-initial:var(--telekom-line-weight-standard);--color-visited:var(--telekom-color-text-and-icon-link-visited);--color-line-visited:currentColor;--line-thickness-visited:var(--line-thickness-initial);--color-hover:var(--telekom-color-text-and-icon-link-hovered);--color-line-hover:currentColor;--line-thickness-hover:var(--telekom-line-weight-highlight);--color-focus-outline:var(--telekom-color-functional-focus-standard);--color-focus:var(--telekom-color-text-and-icon-link-standard);--color-line-focus:transparent;--line-thickness-focus:0;--color-active:var(--telekom-color-text-and-icon-link-active);--color-line-active:currentColor;--line-thickness-active:var(--telekom-line-weight-highlight);--color-disabled:var(--telekom-color-text-and-icon-disabled);--color-line-disabled:transparent;--line-thickness-disabled:var(--line-thickness-initial)}:host{display:inline;margin-bottom:calc(var(--line-offset) + var(--line-thickness-initial))}[part='anchor']{cursor:pointer;outline:none;font-weight:var(--font-weight);color:var(--color);position:relative;display:inline-flex;text-decoration:underline;text-underline-offset:0.1875em;text-underline-position:from-font;text-decoration-thickness:var(\n --line-thickness,\n var(--line-thickness-initial)\n );text-decoration-color:var(--line-color)}[part='anchor']{display:inline-flex;align-items:center}[part='content']{position:relative}slot[name='icon']::slotted(*){position:relative;margin-left:var(--spacing-x-icon)}:host(.reverse) [part='anchor']{flex-direction:row-reverse}:host(.reverse) slot[name='icon']::slotted(*){margin-left:auto;margin-right:var(--spacing-x-icon)}:host(.no-underline){--color-line-initial:transparent;--color-line-visited:transparent;--line-color:transparent}:host(.no-underline) [part='anchor']{text-decoration:none}[part='anchor']:hover,[part='anchor']:focus,[part='anchor']:active,:host(.no-underline) [part='anchor']:hover,:host(.no-underline) [part='anchor']:active{text-decoration:underline}[part='anchor']:hover,:host(.no-underline) [part='anchor']:hover{color:var(--color-hover);text-decoration-color:var(--color-line-hover);text-decoration-thickness:var(\n --line-thickness-hover,\n var(--line-thickness-initial)\n )}[part='anchor']:focus,[part='anchor']:focus-visible{color:var(--color-focus);text-decoration-color:var(--color-line-focus);text-decoration-thickness:var(\n --line-thickness-focus,\n var(--line-thickness-initial)\n );outline:var(--telekom-line-weight-highlight) solid var(--color-focus-outline);outline-offset:var(--telekom-spacing-composition-space-01);border-radius:var(--telekom-radius-small)}[part='anchor']:active,:host(.no-underline) [part='anchor']:active{color:var(--color-active);text-decoration-color:var(--color-line-active);text-decoration-thickness:var(\n --line-thickness-active,\n var(--line-thickness-initial)\n )}[part='anchor']:visited{color:var(--color-visited);text-decoration-color:var(--color-line-visited);text-decoration-thickness:var(\n --line-thickness-visited,\n var(--line-thickness-initial)\n )}:host(.disabled){cursor:not-allowed}:host(.disabled) [part='anchor'],:host(.disabled) [part='anchor']:visited,:host(.disabled) [part='anchor']:hover,:host(.disabled) [part='anchor']:active{color:var(--color-disabled);text-decoration:none;cursor:not-allowed;pointer-events:none}"; + +const Link = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Disabled link */ + this.disabled = false; + /** (optional) Remove the initial line from the text (can also be achieved via `--line-thickness-initial: 0`) + * Remove the line for every state with `--line-thickness: 0` + */ + this.omitUnderline = false; + /** (optional) Chnage icon/content slot order */ + this.iconPosition = 'after'; + } + async setFocus() { + this.focusableElement.focus(); + } + getAnchorProps() { + const props = { + href: this.href || null, + tabIndex: this.disabled ? -1 : this.innerTabindex, + 'aria-disabled': `${this.disabled}`, + download: this.download || null, + hreflang: this.hreflang || null, + ping: this.ping || null, + referrerpolicy: this.referrerpolicy || null, + rel: this.rel || null, + target: this.target || null, + type: this.type || null, + }; + return Object.assign({}, props); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { class: { + disabled: this.disabled, + reverse: this.iconPosition === 'before', + 'no-underline': this.omitUnderline, + } }, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("a", Object.assign({ part: "anchor", ref: (el) => (this.focusableElement = el) }, this.getAnchorProps()), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "content" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "icon" })))); + } +}; +Link.style = linkCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/13606.5ac99a51.js b/pr-preview/pr-186/assets/js/13606.5ac99a51.js new file mode 100644 index 000000000..e15fd79e0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/13606.5ac99a51.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[13606],{13606:(t,i,s)=>{s.r(i),s.d(i,{scale_icon_action_fast_forward_nb:()=>l});var e=s(90936);const l=class{constructor(t){(0,e.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,e.h)("g",null,(0,e.h)("path",{d:"M11.475 11.3L2 5v14l9.475-6.3V19L22 12 11.475 5z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,e.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1375.c121d9e9.js b/pr-preview/pr-186/assets/js/1375.c121d9e9.js new file mode 100644 index 000000000..5c70b43b9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1375.c121d9e9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1375; +exports.ids = [1375]; +exports.modules = { + +/***/ 81375: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_star: () => (/* binding */ ActionStar) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionStar = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.613 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.064-5.061a1.713 1.713 0 00-1.592-1.07c-.703 0-1.327.42-1.593 1.07L8.34 7.633l-5.452.398c-.7.052-1.292.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.304 5.308a1.715 1.715 0 00.658 1.802c.568.413 1.321.44 1.918.07l4.644-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.176-3.527a1.714 1.714 0 00.526-1.845z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.613 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.064-5.061a1.713 1.713 0 00-1.592-1.07c-.703 0-1.327.42-1.593 1.07L8.34 7.633l-5.452.398c-.7.052-1.292.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.304 5.308a1.715 1.715 0 00.658 1.802c.568.413 1.321.44 1.918.07l4.644-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.176-3.527a1.714 1.714 0 00.526-1.845zm-1.494.699l-4.886 4.127 1.527 6.212c.03.119-.03.19-.084.23a.203.203 0 01-.244.009l-5.436-3.372-5.436 3.372a.206.206 0 01-.245-.009.206.206 0 01-.084-.23l1.527-6.211-4.886-4.128a.205.205 0 01-.067-.235.206.206 0 01.192-.151l6.38-.468 2.416-5.923a.205.205 0 01.203-.136c.067 0 .156.024.203.137l2.416 5.922 6.38.468a.206.206 0 01.192.151.206.206 0 01-.068.235z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionStar.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1384.144e6c12.js b/pr-preview/pr-186/assets/js/1384.144e6c12.js new file mode 100644 index 000000000..76ee0aee9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1384.144e6c12.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1384; +exports.ids = [1384]; +exports.modules = { + +/***/ 1384: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_thunder_rain: () => (/* binding */ WeatherThunderRain) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherThunderRain = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.01 18.465a.173.173 0 01.287.102v.052l-.587 3.748a1.502 1.502 0 01-1.716 1.252c-1.199-.188-1.676-1.632-.876-2.498l.094-.093 2.797-2.563zM11.773 13.5L8.569 18h3.111l-6.308 5.097c-.161.13-.373-.04-.315-.213l.026-.052 2.26-3.337H4.95L8.277 13.5h3.497zm5.082-1.731a.15.15 0 01.248.083v.05l-.652 4.167a1.626 1.626 0 01-1.858 1.355c-1.3-.203-1.817-1.771-.946-2.708l.098-.098 3.11-2.85zM13.523.565a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.127c0 3.118-2.461 5.668-5.53 5.785l-.22.004h-.329l.03-.114.024-.116.652-4.166a1.45 1.45 0 00-2.29-1.392l-.12.098-1.518 1.39h-6.95L5.14 16.477a5.27 5.27 0 01-4.877-5.26A5.299 5.299 0 012.93 6.619c.14-2.49 2.196-4.472 4.704-4.472.37 0 .737.045 1.1.134a7.558 7.558 0 014.79-1.715z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13.998 18.465a.173.173 0 01.288.102l-.001.052-.587 3.748a1.502 1.502 0 01-1.716 1.252c-1.199-.188-1.676-1.632-.876-2.498l.094-.093 2.798-2.563zM11.761 13.5L8.557 18h3.111L5.36 23.098c-.16.13-.373-.04-.315-.213l.027-.052 2.26-3.337H4.939L8.264 13.5h3.497zm5.082-1.731a.15.15 0 01.248.083v.05l-.651 4.167a1.626 1.626 0 01-1.859 1.355c-1.3-.203-1.817-1.771-.946-2.708l.099-.098 3.109-2.85zM13.511.565a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.128c0 3.118-2.46 5.667-5.53 5.784l-.22.005h-.127l.026-.1.023-.099.205-1.308c2.284-.069 4.123-1.961 4.123-4.282a4.3 4.3 0 00-2.314-3.813l-.195-.095-.303-.138-.101-.318c-.816-2.561-3.157-4.283-5.825-4.283-1.42 0-2.79.5-3.888 1.415l-.216.188-.328.301-.354-.122c-.34-.115-.66-.2-1.105-.2a3.22 3.22 0 00-3.034 2.176 3.259 3.259 0 00-.176 1.154l.014.307.017.267-.398.179a3.8 3.8 0 00-.807.471 3.798 3.798 0 00-1.487 3.014c0 2.022 1.579 3.678 3.557 3.78L5.5 15h.218l-.811 1.464C2.291 16.166.25 13.927.25 11.216a5.299 5.299 0 012.667-4.598c.14-2.49 2.197-4.472 4.705-4.472.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherThunderRain.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1384.aed9bf8a.js b/pr-preview/pr-186/assets/js/1384.aed9bf8a.js new file mode 100644 index 000000000..ce6a60198 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1384.aed9bf8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[1384],{1384:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_weather_thunder_rain:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M14.01 18.465a.173.173 0 01.287.102v.052l-.587 3.748a1.502 1.502 0 01-1.716 1.252c-1.199-.188-1.676-1.632-.876-2.498l.094-.093 2.797-2.563zM11.773 13.5L8.569 18h3.111l-6.308 5.097c-.161.13-.373-.04-.315-.213l.026-.052 2.26-3.337H4.95L8.277 13.5h3.497zm5.082-1.731a.15.15 0 01.248.083v.05l-.652 4.167a1.626 1.626 0 01-1.858 1.355c-1.3-.203-1.817-1.771-.946-2.708l.098-.098 3.11-2.85zM13.523.565a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.127c0 3.118-2.461 5.668-5.53 5.785l-.22.004h-.329l.03-.114.024-.116.652-4.166a1.45 1.45 0 00-2.29-1.392l-.12.098-1.518 1.39h-6.95L5.14 16.477a5.27 5.27 0 01-4.877-5.26A5.299 5.299 0 012.93 6.619c.14-2.49 2.196-4.472 4.704-4.472.37 0 .737.045 1.1.134a7.558 7.558 0 014.79-1.715z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M13.998 18.465a.173.173 0 01.288.102l-.001.052-.587 3.748a1.502 1.502 0 01-1.716 1.252c-1.199-.188-1.676-1.632-.876-2.498l.094-.093 2.798-2.563zM11.761 13.5L8.557 18h3.111L5.36 23.098c-.16.13-.373-.04-.315-.213l.027-.052 2.26-3.337H4.939L8.264 13.5h3.497zm5.082-1.731a.15.15 0 01.248.083v.05l-.651 4.167a1.626 1.626 0 01-1.859 1.355c-1.3-.203-1.817-1.771-.946-2.708l.099-.098 3.109-2.85zM13.511.565a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.128c0 3.118-2.46 5.667-5.53 5.784l-.22.005h-.127l.026-.1.023-.099.205-1.308c2.284-.069 4.123-1.961 4.123-4.282a4.3 4.3 0 00-2.314-3.813l-.195-.095-.303-.138-.101-.318c-.816-2.561-3.157-4.283-5.825-4.283-1.42 0-2.79.5-3.888 1.415l-.216.188-.328.301-.354-.122c-.34-.115-.66-.2-1.105-.2a3.22 3.22 0 00-3.034 2.176 3.259 3.259 0 00-.176 1.154l.014.307.017.267-.398.179a3.8 3.8 0 00-.807.471 3.798 3.798 0 00-1.487 3.014c0 2.022 1.579 3.678 3.557 3.78L5.5 15h.218l-.811 1.464C2.291 16.166.25 13.927.25 11.216a5.299 5.299 0 012.667-4.598c.14-2.49 2.197-4.472 4.705-4.472.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/139.139eb18d.js b/pr-preview/pr-186/assets/js/139.139eb18d.js new file mode 100644 index 000000000..5621a3e63 --- /dev/null +++ b/pr-preview/pr-186/assets/js/139.139eb18d.js @@ -0,0 +1,431 @@ +"use strict"; +exports.id = 139; +exports.ids = [139]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 30139: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_dropdown: () => (/* binding */ Dropdown) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); + + + + + +const dropdownCss = "scale-dropdown{--font-weight:var(--telekom-typography-font-weight-bold);--height:var(--telekom-spacing-composition-space-13);--spacing-x:var(--telekom-spacing-composition-space-05);--spacing-dropdown:18px var(--telekom-spacing-composition-space-12) 5px\n calc(var(--spacing-x) - 1px);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--radius:var(--telekom-radius-standard);--border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard);--border-danger:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard);--border-success:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-success-standard);--border-warning:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-warning-standard);--border-color-hover:var(--telekom-color-ui-border-hovered);--border-color-focus:var(--telekom-color-ui-border-hovered);--border-color-disabled:var(--telekom-color-ui-border-disabled);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--color-disabled:var(--telekom-color-text-and-icon-disabled);--background-disabled:none;--color:var(--telekom-color-text-and-icon-standard);--background-color:var(--telekom-color-ui-state-fill-standard);--margin-bottom-helper-text:var(--telekom-spacing-composition-space-03);--transition-input:var(--transition);--font-size-input:var(--telekom-typography-font-size-body);--spacing-y-meta:var(--telekom-spacing-composition-space-03);--color-meta:var(--telekom-color-text-and-icon-standard);--height-icon:var(--telekom-spacing-composition-space-07);--color-icon:var(--telekom-color-text-and-icon-standard);--color-icon-hover:var(--telekom-color-text-and-icon-standard);--color-icon-active:var(--telekom-color-text-and-icon-standard);--transition-icon:var(--transition);--color-label:var(--telekom-color-text-and-icon-additional);--z-index-label:var(--scl-z-index-10);--transition-label:var(--transition);--font-size-label:var(--telekom-typography-font-size-body);--font-weight-label:var(--telekom-typography-font-weight-medium);--font-size-label-focus:var(--telekom-typography-font-size-small);--font-weight-label-focus:var(--telekom-typography-font-weight-bold)}.dropdown{position:relative}.dropdown .input__dropdown{width:100%;height:var(--height);margin:0;display:flex;outline:none;padding:var(--spacing-dropdown);z-index:1;box-sizing:border-box;transition:var(--transition-input);font-family:inherit;font-size:var(--font-size-input);border-radius:var(--radius);border:var(--border);white-space:nowrap;line-height:var(--font-size-input);text-overflow:ellipsis;appearance:none;-webkit-appearance:none;background-color:var(--background-color);color:var(--color)}.dropdown--hide-label .input__dropdown{padding:5px var(--telekom-spacing-composition-space-12) 5px\n calc(var(--spacing-x) - 1px)}.dropdown--hide-label .input__label{visibility:hidden}.dropdown .input__dropdown-wrapper{position:relative}.dropdown.dropdown--helper-text .input__dropdown-wrapper{margin-bottom:var(--margin-bottom-helper-text)}.dropdown .input__meta{display:flex;justify-content:space-between;margin-top:var(--spacing-y-meta);color:var(--color-meta)}.dropdown.dropdown--disabled .input__dropdown-wrapper .input__dropdown-icon{color:var(--color-disabled)}.dropdown:not(.dropdown--disabled):hover .input__dropdown-icon{color:var(--color-icon-hover)}.dropdown:not(.dropdown--disabled):active .input__dropdown-icon{color:var(--color-icon-active)}.dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:hover{border-color:var(--border-color-hover);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:hover{border-color:var(--telekom-color-functional-danger-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-warning .input__dropdown:hover{border-color:var(--telekom-color-functional-warning-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-success .input__dropdown:hover{border-color:var(--telekom-color-functional-success-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:focus{border-color:var(--border-color-focus)}.dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:focus{border-color:var(--telekom-color-functional-danger-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-warning .input__dropdown:focus{border-color:var(--telekom-color-functional-warning-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-success .input__dropdown:focus{border-color:var(--telekom-color-functional-success-hovered)}.dropdown:not(.dropdown--disabled) .input__dropdown:focus{outline:var(--focus-outline);outline-offset:1px}.dropdown .input__dropdown-wrapper .input__dropdown-icon{top:50%;right:var(--spacing-x);position:absolute;transform:translateY(-50%);pointer-events:none;height:var(--height-icon);color:var(--color-icon);transition:var(--transition-icon)}.input__label{top:-2px;color:var(--color-label);display:flex;z-index:var(--z-index-label);position:absolute;transition:var(--transition-label);pointer-events:none;font-size:var(--font-size-label);transform:translate(\n var(--spacing-x),\n calc(\n (var(--telekom-spacing-composition-space-14) - var(--font-size-label)) / 2\n )\n );font-weight:var(--font-weight-label)}.animated .input__label{transform:translate(\n var(--spacing-x),\n var(--telekom-spacing-composition-space-04)\n );font-size:var(--font-size-label-focus);font-weight:var(--font-weight-label-focus);line-height:var(--telekom-typography-font-size-small)}.dropdown--variant-danger .input__dropdown{border:var(--border-danger)}.dropdown--variant-warning .input__dropdown{border:var(--border-warning)}.dropdown--variant-success .input__dropdown{border:var(--border-success)}.dropdown--transparent .input__dropdown{background-color:transparent}.dropdown--disabled label,.dropdown--disabled .input__label,.dropdown--disabled input,.dropdown--disabled .input__dropdown{cursor:not-allowed;border-color:var(--border-color-disabled);color:var(--color-disabled);background:var(--background-disabled)}[data-mode='light'] .dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:hover{background-color:var(--telekom-color-ui-state-fill-hovered)}[data-mode='light'] .dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:hover{background-color:var(--telekom-color-ui-state-fill-hovered)}[data-mode='dark'] .dropdown .input__dropdown{background-color:var(--telekom-color-background-canvas)}[data-mode='dark'] .dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:hover{background-color:#1b1b1b}[data-mode='dark'] .dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:hover{background-color:#1b1b1b}[data-mode='dark'] .dropdown--disabled .input__dropdown{background-color:var(--telekom-color-background-canvas)}@media (prefers-color-scheme: dark){.dropdown .input__dropdown{background-color:var(--telekom-color-background-canvas)}.dropdown:not(.dropdown--disabled):not(.dropdown--status-error) .input__dropdown:hover{background-color:#1b1b1b}.dropdown:not(.dropdown--disabled).dropdown--status-error .input__dropdown:hover{background-color:#1b1b1b}.dropdown--disabled .input__dropdown{background-color:var(--telekom-color-background-canvas)}}"; + +const Dropdown = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleInput = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-input", 7); + this.scaleInputLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleInput", 7); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + this.scaleFocus = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-focus", 7); + this.scaleFocusLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleFocus", 7); + this.scaleBlur = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-blur", 7); + this.scaleBlurLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleBlur", 7); + this.scaleKeyDown = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-keydown", 7); + this.scaleKeyDownLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleKeydown", 7); + /** (optional) Input name */ + this.name = ''; + /** (optional) Input label */ + this.label = ''; + /** (optional) Input helper text */ + this.helperText = ''; + /** @deprecated - invalid should replace status */ + this.status = ''; + /** (optional) Input status */ + this.invalid = false; + /** (optional) Variant */ + this.variant = 'informational'; + /** (optional) Input value */ + this.value = ''; + /** (optional) Makes type `select` behave as a controlled component in React */ + this.controlled = false; + /** (optional) to avoid displaying the label */ + this.hideLabelVisually = false; + this.internalId = (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.g)(); + // Handle change on value, not the user's input. + this.handleSelectChange = (event) => { + const target = event.target; + if (this.controlled) { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleChange', { value: target.value }); + this.selectElement.value = String(this.value); + this.forceUpdate = String(Date.now()); + } + else { + this.value = target.value || ''; + this.emitChange(); + } + }; + this.handleInput = (event) => { + const target = event.target; + if (target) { + this.value = target.value || ''; + this.emitChange(); + } + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleInput', event); + }; + this.handleChange = (event) => { + const target = event.target; + if (target) { + this.value = target.value || ''; + this.emitChange(); + } + }; + this.handleFocus = () => { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleFocus'); + }; + this.handleBlur = () => { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleBlur'); + }; + this.handleKeyDown = (event) => { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleKeyDown', event); + }; + } + componentWillLoad() { + this.hasSlotIcon = !!this.hostElement.querySelector('[slot="icon"]'); + if (this.inputId == null) { + this.inputId = 'input-dropdown-' + this.internalId; + } + } + componentDidLoad() { + // Keep this.value up-to-date for type="select". + // This is important also for React, where `value` is used to control the element state. + const select = this.selectElement; + const selectedValue = select.selectedIndex > -1 + ? select.options[select.selectedIndex].value + : null; + // If we have a `value` passed, set it on the is always in sync with the value. + const value = this.value == null ? '' : this.value.toString(); + if (this.controlled && this.selectElement.value.toString() !== value) { + this.selectElement.value = value; + } + if (this.status !== '') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "status" is deprecated. Please use the "invalid" property!', + type: 'warn', + source: this.hostElement, + }); + } + if (this.size) { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "size" is deprecated. Please use css overwrite!', + type: 'warn', + source: this.hostElement, + }); + } + } + disconnectedCallback() { + if (this.mutationObserver) { + this.mutationObserver.disconnect(); + } + } + // We're not watching `value` like we used to + // because we get unwanted `scaleChange` events + // because how we keep this.value up-to-date for type="select" + // `this.value = selectedValue` + emitChange() { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleChange', { + value: this.value == null ? this.value : this.value.toString(), + }); + } + render() { + const ariaInvalidAttr = this.status === 'error' || this.invalid ? { 'aria-invalid': 'true' } : {}; + const helperTextId = `helper-message-${this.internalId}`; + const ariaDescribedByAttr = { 'aria-describedBy': helperTextId }; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("label", { class: "input__label", htmlFor: this.inputId }, this.label), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "input__dropdown-wrapper" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("select", Object.assign({ ref: (el) => (this.selectElement = el), class: "input__dropdown", + // @ts-ignore + value: this.value, onChange: this.handleSelectChange, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, disabled: this.disabled, required: this.required, multiple: this.multiple, id: this.inputId, name: this.name, size: this.visibleSize }, ariaInvalidAttr, (this.helperText ? ariaDescribedByAttr : {})), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "input__dropdown-icon" }, this.hasSlotIcon ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "icon" })) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-down", { size: 20, decorative: true })))), this.helperText && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-helper-text", { helperText: this.helperText, variant: this.invalid ? 'danger' : this.variant }))))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('dropdown', this.disabled && `dropdown--disabled`, this.transparent && 'dropdown--transparent', this.status && `dropdown--status-${this.status}`, this.helperText && 'dropdown--helper-text', this.variant && + `dropdown--variant-${this.invalid ? 'danger' : this.variant}`, this.value != null && this.value !== '' && 'animated', this.hideLabelVisually && 'dropdown--hide-label'); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +Dropdown.style = dropdownCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/13999.71d7c7a8.js b/pr-preview/pr-186/assets/js/13999.71d7c7a8.js new file mode 100644 index 000000000..91791d2f4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/13999.71d7c7a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[13999],{13999:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_photo_camera:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M20 6.25h-2.25l-1.5-2.5h-8.5l-1.5 2.5H4A2.245 2.245 0 001.75 8.5V17A2.245 2.245 0 004 19.25h16A2.245 2.245 0 0022.25 17V8.5A2.245 2.245 0 0020 6.25zm-8 9.42a3.67 3.67 0 110-7.34 3.67 3.67 0 010 7.34zm7-5.17a1 1 0 110-2 1 1 0 010 2z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M16.7 3l1.5 2.5H20a3.01 3.01 0 012.995 2.824L23 8.5V17a3.01 3.01 0 01-2.824 2.995L20 20H4a3.01 3.01 0 01-2.995-2.824L1 17V8.5a3.01 3.01 0 012.824-2.995L4 5.5h1.85L7.35 3h9.35zm-.9 1.5H8.15L6.65 7H4c-.8 0-1.423.576-1.493 1.352L2.5 8.5V17c0 .8.576 1.423 1.352 1.493L4 18.5h16c.8 0 1.423-.576 1.493-1.352L21.5 17V8.5c0-.8-.576-1.423-1.352-1.493L20 7h-2.7l-1.5-2.5zM12 7c2.75 0 5 2.25 5 5s-2.25 5-5 5-5-2.25-5-5 2.25-5 5-5zm0 1.5c-1.95 0-3.5 1.55-3.5 3.5s1.55 3.5 3.5 3.5 3.5-1.55 3.5-3.5-1.55-3.5-3.5-3.5zm7 0a1 1 0 110 2 1 1 0 010-2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1412.d2aa9ec5.js b/pr-preview/pr-186/assets/js/1412.d2aa9ec5.js new file mode 100644 index 000000000..0736c624c --- /dev/null +++ b/pr-preview/pr-186/assets/js/1412.d2aa9ec5.js @@ -0,0 +1,135 @@ +"use strict"; +exports.id = 1412; +exports.ids = [1412]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 61412: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_telekom_footer: () => (/* binding */ TelekomFooter), +/* harmony export */ scale_telekom_footer_content: () => (/* binding */ TelekomFooterContent) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const telekomFooterCss = ".scale-telekom-footer{--font-size:var(--telekom-typography-font-size-caption);--font-color:var(--telekom-color-text-and-icon-white-standard);--font-large:var(--telekom-text-style-ui);--background-footer:var(--telekom-color-ui-black);--background-footer-minimal:var(--telekom-color-background-canvas);--_nav-items-bottom-margin:var(--telekom-spacing-composition-space-08);--_nav-items-spacing:var(--telekom-spacing-composition-space-05)}.scale-telekom-footer :where(ul),.scale-telekom-footer[type='minimal'] :where(ul){display:flex;flex-wrap:wrap;align-items:flex-start;flex-direction:column;gap:var(--_nav-items-spacing);padding:0;margin:0;width:100%;color:var(--font-color);list-style:none}.scale-telekom-footer[type='minimal'] scale-telekom-footer-content{--background-footer:var(--background-footer-minimal);--_font-color:var(--telekom-color-text-and-icon-additional);--_display-logo:none;--_navigation-container-padding:var(--telekom-spacing-composition-space-06) 0\n var(--telekom-spacing-composition-space-06) 0;--_nav-items-bottom-margin:0}.scale-telekom-footer :where(a,span),.scale-telekom-footer[type='minimal'] :where(a,span){display:flex;justify-content:center;font-size:var(--font-size);color:var(--font-color);line-height:140%;text-decoration:none;border:1px solid rgba(0, 0, 0, 0);border-radius:2px}.scale-telekom-footer[type='minimal'] :where(a,span){color:var(--telekom-color-text-and-icon-standard)}.scale-telekom-footer[type='minimal'] :where(ul){margin-bottom:0}.scale-telekom-footer[type='minimal'] a:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}.scale-telekom-footer[type='minimal'] a:active{color:var(--telekom-color-text-and-icon-primary-pressed)}.scale-telekom-footer :where(a:hover){border-radius:0;border-bottom:1px solid var(--font-color)}.scale-telekom-footer :where(a:active){color:var(--telekom-color-text-and-icon-white-additional);border-bottom:1px solid var(--telekom-color-text-and-icon-white-additional)}.scale-telekom-footer[type='minimal'] :where(a:focus-visible){outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);outline-offset:1px}.scale-telekom-footer:not([type='minimal']) :where(a:focus-visible){outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-on-dark-background);outline-offset:1px}.scale-telekom-footer:not([type='minimal']) scale-telekom-footer-extended-navigation-column :where(a:focus-visible){outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);outline-offset:1px}@media screen and (min-width: 640px){.scale-telekom-footer :where(ul),.scale-telekom-footer[type='minimal'] :where(ul){display:flex;flex-direction:row;align-items:center;list-style:none;column-gap:var(--_nav-items-spacing);row-gap:var(--telekom-spacing-composition-space-03)}}@media screen and (min-width: 1040px){.scale-telekom-footer :where(ul),.scale-telekom-footer[type='minimal'] :where(ul){--_nav-items-spacing:var(--telekom-spacing-composition-space-08);row-gap:var(--telekom-spacing-composition-space-04)}.scale-telekom-footer :where(a,span){font:var(--font-large)}}@media screen and (min-width: 1296px){.scale-telekom-footer :where(ul),.scale-telekom-footer[type='minimal'] :where(ul){--_nav-items-spacing:var(--telekom-spacing-composition-space-14)}}"; + +const TelekomFooter = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.type = 'standard'; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { class: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('scale-telekom-footer', { + // slim: this.type === 'minimal', + }) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomFooter.style = telekomFooterCss; + +const telekomFooterContentCss = ":host{--_max-width-container:none;--_spacing-x-container:var(--telekom-spacing-composition-space-06);--_nav-items-bottom-margin:var(--telekom-spacing-composition-space-08);--_nav-items-spacing:var(--telekom-spacing-composition-space-05);--_logo-top-margin:var(--telekom-spacing-composition-space-12);--_logo-bottom-margin:var(--telekom-spacing-composition-space-12);--_font-color:var(--telekom-color-text-and-icon-white-standard);--_font-size:var(--telekom-typography-font-size-caption);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--_display-logo:flex;--_navigation-container-padding:0 0 0 0}footer{width:100%;background-color:var(--background-footer);display:flex;justify-content:center;flex-direction:column;padding-bottom:var(--_nav-items-bottom-margin);align-items:center}[part~='base']{height:100%;max-width:var(--_max-width-container);padding-left:var(--_spacing-x-container);padding-right:var(--_spacing-x-container);position:relative;display:flex;flex:1;flex-direction:column;width:-moz-available;width:-webkit-fill-available;width:fill-available}[part~='logo']{display:var(--_display-logo);justify-content:center;height:100%;width:100%;margin-top:var(--_logo-top-margin);margin-bottom:var(--_logo-bottom-margin)}[part~='body']{display:flex;flex-direction:column;width:100%;padding:var(--_navigation-container-padding);margin:0;bottom:0}[part~='notice']{color:var(--_font-color);display:flex;flex:1 0 auto;margin-bottom:var(--telekom-spacing-composition-space-07);font-size:var(--_font-size);line-height:140%;margin-right:var(--telekom-spacing-composition-space-07)}[part~='app-logo']{--logo-size:var(--telekom-spacing-composition-space-11)}.scale-icon{height:16px;width:16px;margin-right:9px}@media screen and (min-width: 640px){:host{--_logo-top-margin:var(--telekom-spacing-composition-space-10);--_logo-bottom-margin:var(--telekom-spacing-composition-space-14);--_nav-items-spacing:var(--telekom-spacing-composition-space-06)}[part~='body']{flex-direction:column}[part~='navigation'] ul{list-style:none;display:flex;flex-direction:row;align-items:center}[part~='notice']{margin-bottom:var(--telekom-spacing-composition-space-04)}}@media screen and (min-width: 1040px){:host{--_logo-top-margin:var(--telekom-spacing-composition-space-14);--_logo-bottom-margin:var(--telekom-spacing-composition-space-18);--_nav-items-spacing:var(--telekom-spacing-composition-space-08);--_slim-padding:var(--telekom-spacing-composition-space-08);--_font-size:var(--telekom-typography-font-size-body);--_spacing-x-container:var(--telekom-spacing-composition-space-08)}[part~='body']{flex-direction:row}:host [part~='app-logo']{--logo-size:var(--telekom-spacing-composition-space-13)}:host [part~='notice']{margin-bottom:0}}@media screen and (min-width: 1296px){:host{--_logo-top-margin:var(--telekom-spacing-composition-space-16);--_logo-bottom-margin:var(--telekom-spacing-composition-space-19);--_nav-items-bottom-margin:var(--telekom-spacing-composition-space-10);--_nav-items-spacing:var(--telekom-spacing-composition-space-14);--_slim-padding:var(--telekom-spacing-composition-space-10)}:host [part~='app-logo']{--logo-size:var(--telekom-spacing-composition-space-14)}}@media screen and (min-width: 1680px){:host{--_max-width-container:var(--scl-grid-max-width, 1504px);--_logo-top-margin:var(--telekom-spacing-composition-space-18);--_logo-bottom-margin:96px}:host [part~='app-logo']{--logo-size:var(--telekom-spacing-composition-space-16)}}"; + +const TelekomFooterContent = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Logo link */ + this.logoHref = ''; + /** (optional) set logo specific title */ + this.logoTitle = 'Telekom Logo'; + /** (optional) set logo specific title */ + this.logoHideTitle = false; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("footer", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "extended-navigation" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "base" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "logo" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-logo", { part: "app-logo", variant: "white", style: { + '--focus-outline': 'var(--telekom-line-weight-highlight) solid var(--telekom-color-functional-focus-on-dark-background)', + }, transparent: true, href: this.logoHref, logoHideTitle: this.logoHideTitle, logoTitle: this.logoHideTitle ? undefined : this.logoTitle, focusable: this.logoHref ? true : false })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "notice" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "notice" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "navigation" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "navigation" }))))))); + } +}; +TelekomFooterContent.style = telekomFooterContentCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1420.41703c8a.js b/pr-preview/pr-186/assets/js/1420.41703c8a.js new file mode 100644 index 000000000..af95245df --- /dev/null +++ b/pr-preview/pr-186/assets/js/1420.41703c8a.js @@ -0,0 +1,207 @@ +"use strict"; +exports.id = 1420; +exports.ids = [1420]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 41420: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_carousel: () => (/* binding */ Carousel) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); + + + + +const carouselCss = ".carousel{width:400px;height:300px;position:relative}.carousel__container{width:100%;height:100%;margin:0;display:flex;padding:0;overflow:hidden;position:relative;box-sizing:border-box;align-items:center}.carousel__slide{height:100%;position:relative;min-width:100%;transition:all 0.3s ease-in-out}.carousel__arrow{top:50%;color:#fff;width:24px;border:none;cursor:pointer;height:24px;display:flex;outline:none;z-index:99;position:absolute;transform:translateY(-50%);background:rgba(31, 45, 61, 0.11);align-items:center;border-radius:50%;justify-content:center}.carousel__arrow--left{left:12px}.carousel__arrow--right{right:12px}.carousel__indicators{left:50%;bottom:12px;margin:0;display:inline-flex;padding:0;z-index:2;position:absolute;transform:translateX(-50%);list-style:none}.carousel__indicator{width:30px;border:none;cursor:pointer;height:4px;margin:0 6px;display:block;opacity:0.5;outline:none;padding:0;background:#fff;transition:0.3s}.carousel__indicator--active{opacity:1}.carousel--vertical .carousel__container{flex-direction:column}.carousel--vertical .carousel__arrow{display:none}.carousel--vertical .carousel__indicators{top:50%;left:unset;right:12px;bottom:0;display:flex;transform:translateY(-50%);flex-direction:column}.carousel--vertical .carousel__indicator{width:4px;height:30px;margin:6px 0}"; + +const Carousel = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) carousel display direction */ + this.vertical = false; + this.slidesArray = []; + this.value = 0; + this.handleSlideChange = (direction) => { + const val = this.value; + if (direction === 'prev') { + val === 0 + ? (this.value = -100 * (this.slidesArray.length - 1)) + : (this.value = val + 100); + } + if (direction === 'next') { + val === -100 * (this.slidesArray.length - 1) + ? (this.value = 0) + : (this.value = val - 100); + } + }; + this.setActiveSlide = (index) => { + this.value = -100 * index; + }; + this.setTransformValue = () => { + if (!!this.vertical) { + return `translateY(${this.value}%)`; + } + return `translateX(${this.value}%)`; + }; + this.setActiveCssClass = (index) => { + if (Math.abs(this.value) / 100 === index) { + return 'carousel__indicator--active'; + } + return ''; + }; + } + connectedCallback() { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ source: this.hostElement, type: 'warn' }); + } + componentWillLoad() { + if (this.slidesArray.length === 0) { + const children = this.hostElement.children; + // tslint:disable-next-line: prefer-for-of + for (let childIndex = 0; childIndex < children.length; childIndex++) { + if (children[childIndex].slot === '') { + // tslint:disable-next-line: prefer-for-of + for (let slideIndex = 0; slideIndex < children[childIndex].children.length; slideIndex++) { + const element = children[childIndex].children[slideIndex]; + this.slidesArray.push(element); + } + } + } + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "carousel__container" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "carousel__arrow carousel__arrow--left", onClick: () => this.handleSlideChange('prev') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "arrow-left" })), this.slidesArray.map((element) => ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "carousel__slide", style: { transform: this.setTransformValue() } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { innerHTML: element.outerHTML })))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "carousel__arrow carousel__arrow--right", onClick: () => this.handleSlideChange('next') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "arrow-right" }))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("ul", { class: "carousel__indicators" }, Array.from(Array(this.slidesArray.length).keys()).map((index) => ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("li", { key: index, class: `carousel__indicator ${this.setActiveCssClass(index)}`, onClick: () => this.setActiveSlide(index) }))))))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('carousel', this.vertical && `carousel--vertical`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +Carousel.style = carouselCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1439.e220c919.js b/pr-preview/pr-186/assets/js/1439.e220c919.js new file mode 100644 index 000000000..969bb107f --- /dev/null +++ b/pr-preview/pr-186/assets/js/1439.e220c919.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1439; +exports.ids = [1439]; +exports.modules = { + +/***/ 61439: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_sustainable: () => (/* binding */ ContentSustainable) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentSustainable = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.935 8.275c-.175-.045-4.37-1.12-7.32 1.415a7.77 7.77 0 00-2.63 6l-1 1.065v-4.46c0-3.5-1.195-7.855-10.5-10.415L.54 1.62v1c0 7.675 1.46 10.81 9.96 13.655v4.945a.75.75 0 101.5 0v-2.28l2.095-2.26a12.5 12.5 0 001.465.1 8.03 8.03 0 004.925-1.5c2.11-1.585 3-3.47 3-6.29v-.57l-.55-.145z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.617 9.691c-2.509 2.16-2.653 5.073-2.632 5.981L12 16.735v-4.44c0-2.173-.46-4.672-3.031-6.867C6.159 3.03 1.991 2.021.538 1.622c0 4.916.263 7.938 2.346 10.359 1.49 1.73 3.868 3.04 7.616 4.293v4.944a.75.75 0 101.5 0v-2.277l2.097-2.262c.5.06.992.099 1.463.099 1.942 0 3.621-.503 4.928-1.487 2.847-2.146 3.006-4.52 3.006-6.87-4.493-1.189-6.994.51-7.877 1.27zm-5.117 5c-3.237-1.121-5.266-2.253-6.522-3.768C2.533 9.18 2.11 6.93 2.047 3.607c2.774.855 4.638 1.87 5.891 2.918 2.562 2.144 2.562 4.428 2.562 5.77v2.396zm9.085-.598c-1.265.954-3.015 1.34-5.095 1.13.05-.964.378-2.907 2.106-4.395 1.777-1.53 4.267-1.378 5.381-1.213-.119 1.98-.837 3.306-2.392 4.479z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentSustainable.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1440.9506a3c9.js b/pr-preview/pr-186/assets/js/1440.9506a3c9.js new file mode 100644 index 000000000..e01321062 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1440.9506a3c9.js @@ -0,0 +1,122 @@ +"use strict"; +exports.id = 1440; +exports.ids = [1440]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 51440: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_card: () => (/* binding */ Card) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const cardCss = ":host{--background:var(--telekom-color-background-surface);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--radius:var(--telekom-radius-large);--box-shadow:var(--telekom-shadow-raised-standard);--box-shadow-hover:var(--telekom-shadow-raised-hover);--box-shadow-focus:0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard);--box-shadow-active:var(--telekom-shadow-raised-pressed);--spacing-body:var(--telekom-spacing-composition-space-08);--spacing-body-slotted:0;--spacing-body-slotted-interactive:0;--font-body-slotted:var(--telekom-text-style-body)}.card-border{border:1px solid transparent}.card{width:100%;overflow:hidden;box-sizing:border-box;background:var(--background);transition:var(--transition);border-radius:var(--radius);box-shadow:var(--box-shadow)}.card__body{padding:var(--spacing-body)}.card__body ::slotted(*){margin:var(--spacing-body-slotted)}.card--interactive{color:inherit;cursor:pointer;display:block;outline:none;text-decoration:none}.card--interactive:hover{box-shadow:var(--box-shadow-hover)}.card--interactive:focus{box-shadow:var(--telekom-shadow-raised-hover), var(--box-shadow-focus)}.card--interactive:active{border:none;box-shadow:var(--box-shadow-active)}.card--interactive .card__body ::slotted(*){margin:var(--spacing-body-slotted-interactive)}.card__body ::slotted(*){font:var(--font-body-slotted)}"; + +const Card = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Link card */ + this.to = ''; + /** (optional) Label of the card */ + this.label = ''; + /** (optional) Link card target */ + this.target = '_self'; + /** (optional) Link card rel */ + this.rel = ''; + } + render() { + const Tag = !!this.to ? 'a' : 'div'; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "card-border", part: "border" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(Tag, Object.assign({ class: this.getCssClassMap(), part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', !!this.to && 'interactive') }, (!this.to ? { role: 'group' } : {}), (!!this.to ? { href: this.to } : {}), (!!this.target ? { target: this.target } : {}), (!!this.rel ? { rel: this.rel } : {}), (!!this.label ? { ['aria-label']: this.label } : {})), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "card__body", part: "body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('card', !!this.to && 'card--interactive'); + } +}; +Card.style = cardCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/14422.89cda6ba.js b/pr-preview/pr-186/assets/js/14422.89cda6ba.js new file mode 100644 index 000000000..d4dca5633 --- /dev/null +++ b/pr-preview/pr-186/assets/js/14422.89cda6ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[14422],{14422:(t,e,l)=>{l.r(e),l.d(e,{scale_icon_device_game_controller:()=>s});var i=l(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M19 15.5a1.25 1.25 0 10-2.5 0 1.25 1.25 0 002.5 0M16 13a1.25 1.25 0 10-2.5 0 1.25 1.25 0 002.5 0m-5.25 1.25a.75.75 0 00-.75-.75H8.5V12A.75.75 0 107 12v1.5H5.5a.75.75 0 100 1.5H7v1.5a.75.75 0 001.5 0V15H10a.75.75 0 00.75-.75m12.562 7.129a4.11 4.11 0 01-2.561 2.035 4.176 4.176 0 01-4.215-1.271L14.66 20H9.34l-1.874 2.143a4.175 4.175 0 01-4.216 1.271 4.113 4.113 0 01-2.56-2.035 4.12 4.12 0 01-.292-3.259L3.707 8h16.588l3.309 10.12a4.115 4.115 0 01-.292 3.259M12 2.056c1.724 0 3.279.728 4.383 1.889l1.107-1.009A7.527 7.527 0 0012 .556a7.527 7.527 0 00-5.49 2.38l1.107 1.009A6.034 6.034 0 0112 2.056m0 1.503c1.285 0 2.446.537 3.275 1.397l-1.107 1.009A3.037 3.037 0 0012 5.058a3.04 3.04 0 00-2.168.906L8.726 4.956A4.53 4.53 0 0112 3.559","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M17.75 14.25a1.25 1.25 0 10-.001 2.498 1.25 1.25 0 00.002-2.498m-3-2.5a1.25 1.25 0 10-.002 2.498 1.25 1.25 0 00.002-2.498M10 13.5H8.5V12A.75.75 0 107 12v1.5H5.5a.75.75 0 100 1.5H7v1.5a.75.75 0 101.5 0V15H10a.75.75 0 100-1.5m11.99 7.167a2.625 2.625 0 01-1.635 1.3 2.667 2.667 0 01-2.692-.811L15.34 18.5H8.66l-2.323 2.655a2.667 2.667 0 01-2.692.812 2.63 2.63 0 01-1.636-1.3 2.626 2.626 0 01-.185-2.08L4.795 9.5h14.412l2.97 9.087a2.618 2.618 0 01-.186 2.08m1.612-2.547L20.295 8H3.707L.397 18.12a4.119 4.119 0 00.293 3.259 4.112 4.112 0 002.562 2.035 4.171 4.171 0 004.214-1.271L9.34 20h5.32l1.875 2.143a4.173 4.173 0 004.215 1.271 4.113 4.113 0 002.56-2.035 4.11 4.11 0 00.292-3.259M12 2.056c1.725 0 3.279.729 4.383 1.889l1.107-1.009A7.533 7.533 0 0012 .556a7.531 7.531 0 00-5.49 2.38l1.107 1.009A6.032 6.032 0 0112 2.056m-3.275 2.9l1.106 1.008a3.045 3.045 0 014.338.001l1.106-1.009a4.537 4.537 0 00-6.55 0","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1454.1b24f1ba.js b/pr-preview/pr-186/assets/js/1454.1b24f1ba.js new file mode 100644 index 000000000..6a7365dd3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1454.1b24f1ba.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1454; +exports.ids = [1454]; +exports.modules = { + +/***/ 61454: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_international_sms: () => (/* binding */ ContentInternationalSms) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentInternationalSms = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.551 5.388c.163 0 .327.017.49.029l.245.01v6.818c0 .365.137.714.38.982l.11.11v.069h.088a1.41 1.41 0 00.891.309 1.47 1.47 0 00.743-.22l.129-.09h.176v-.127l2.116-2.116c.146.59.251 1.188.317 1.79l.04.454h.8a6.573 6.573 0 00-.761-2.187l-.17-.287.156-.156h2.528A9.076 9.076 0 119.55 5.388zM8.327 15.492H6.284c.1 1.429.53 2.815 1.254 4.05.175.281.38.542.61.778l.179.173v-5zm4.496 0h-2.047v5.001c.932-.858 1.754-2.556 2.012-4.68l.035-.32zm-8.998 0h-.798a6.563 6.563 0 001.415 3.15 12.965 12.965 0 01-.577-2.692l-.04-.458zm12.25 0h-.798a12.965 12.965 0 01-.617 3.15 6.563 6.563 0 001.358-2.836l.057-.314zM4.442 10.256a6.563 6.563 0 00-1.358 2.836l-.057.314h.798c.075-1.072.282-2.13.617-3.15zm3.885-1.851c-.933.858-1.755 2.556-2.013 4.68l-.035.32h2.048v-5zM24 0v9.306h-9.306l-2.939 2.939V0H24zm-9.666 3.063l-.13.003a1.102 1.102 0 00-1.122 1.117.98.98 0 00.694.997l.11.027.416.122c.28.073.431.176.431.411 0 .236-.176.407-.49.407a.49.49 0 01-.51-.338l-.019-.083h-.759a1.127 1.127 0 001.25 1.102A1.107 1.107 0 0015.418 5.7a1.078 1.078 0 00-.758-1.024l-.114-.029-.411-.112c-.201-.054-.368-.147-.368-.397a.392.392 0 01.436-.397.44.44 0 01.475.319l.015.088h.7a1.097 1.097 0 00-1.06-1.086zm6.966.02a1.19 1.19 0 00-1.17 1.1.98.98 0 00.69.997l.109.027.416.122c.28.073.431.176.431.411 0 .236-.176.407-.49.407a.49.49 0 01-.505-.338l-.019-.083h-.724a1.127 1.127 0 001.114 1.108l.15-.006A1.107 1.107 0 0022.53 5.7a1.073 1.073 0 00-.776-1.026l-.116-.027-.416-.112c-.201-.054-.367-.147-.367-.397a.392.392 0 01.435-.397.431.431 0 01.477.318l.013.089h.72a1.19 1.19 0 00-1.2-1.067zm-4.647.061h-.656v3.6h.725V4.712h.034l.877 1.587h.235l.881-1.587h.035v2.032h.705l.005-3.6h-.666L17.76 5.138h-.034l-1.073-1.994z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.1 5.75a9.51 9.51 0 011.647-.222l.328-.01.286.002.429.017.21.013V14h3.65l-.15-1.35 1.25-1.25c.167.667.299 1.403.367 2.15l.033.45H17a7.452 7.452 0 00-.789-2.696L16.05 11h1.65c.5 1.15.8 2.4.8 3.75 0 5.1-4.15 9.25-9.25 9.25S0 19.85 0 14.75c0-4.35 3-8 7.1-9zm6.5 9.75H10v6.85c1.794-.582 3.306-3.326 3.578-6.547l.022-.303zm-5.1 0H4.9c.194 3.248 1.657 6.074 3.433 6.79l.167.06V15.5zm-5.1 0H1.55c.2 2.4 1.6 4.5 3.55 5.75-.89-1.406-1.518-3.252-1.675-5.331L3.4 15.5zm13.55 0H15.1c-.15 2.25-.75 4.25-1.7 5.75 1.872-1.2 3.237-3.183 3.52-5.463l.03-.287zM8.5 7.15c-1.794.582-3.306 3.326-3.578 6.547L4.9 14h3.6V7.15zm-3.4 1.1c-1.872 1.2-3.237 3.183-3.52 5.463L1.55 14H3.4c.15-2.25.75-4.25 1.7-5.75zM24 0v9.5h-9.5l-3 3V0H24zm-9.9 3.2c-.7 0-1.2.45-1.2 1.15 0 .415.17.83.669 1.01l.131.04.4.1c.3.05.45.15.45.4 0 .2-.2.4-.5.4-.267 0-.454-.119-.528-.356L13.5 5.85h-.8c.1.7.55 1.1 1.3 1.1.7 0 1.25-.4 1.2-1.1 0-.458-.294-.833-.767-1.007L14.3 4.8l-.4-.1c-.2-.05-.35-.15-.35-.4s.2-.4.45-.4c.262 0 .41.115.476.311l.024.089h.8c-.05-.65-.45-1.1-1.2-1.1zm7.2 0c-.7 0-1.2.45-1.2 1.15 0 .415.17.83.669 1.01l.131.04.4.1c.3.05.45.15.45.4 0 .2-.2.4-.5.4-.267 0-.454-.119-.528-.356L20.7 5.85h-.75c.1.7.55 1.1 1.3 1.1.7 0 1.25-.4 1.2-1.1 0-.458-.294-.833-.767-1.007L21.55 4.8l-.4-.1c-.2-.05-.35-.15-.35-.4s.2-.4.45-.4c.262 0 .41.115.476.311l.024.089h.75c-.05-.65-.45-1.1-1.2-1.1zm-4.8 0h-.7v3.65h.75V4.8h.05l.9 1.6h.2l.9-1.6h.05v2.1h.8V3.2h-.7l-1.1 2.05h-.05L16.5 3.2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentInternationalSms.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1499.1e0dc79b.js b/pr-preview/pr-186/assets/js/1499.1e0dc79b.js new file mode 100644 index 000000000..51ad4a400 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1499.1e0dc79b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1499; +exports.ids = [1499]; +exports.modules = { + +/***/ 81499: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_analytics: () => (/* binding */ UserFileAnalytics) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileAnalytics = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 17.5L15.5 23v-4a1.5 1.5 0 011.356-1.493L17 17.5h4zM21 1v15.5h-4a2.5 2.5 0 00-2.495 2.336L14.5 19v4H6a3 3 0 01-2.995-2.824L3 20V1h18zm-3.654 6.01a.755.755 0 00-.634.16l-.082.08-3.465 3.95-3-2.5-3.935 4.56a.75.75 0 00.57 1.24.76.76 0 00.49-.188l.075-.077 2.965-3.44 3 2.5 4.435-5.05a.753.753 0 00-.42-1.234z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 1v17l-5 5H6a3.01 3.01 0 01-2.995-2.824L3 20V1h18zm-1.5 1.5h-15V20c0 .8.576 1.423 1.352 1.493L6 21.5h9v-3c0-.8.576-1.423 1.352-1.493L16.5 17h3V2.5zm-2.85 4.75c.25-.3.75-.3 1.05-.05.273.227.298.661.112.964l-.062.086-4.45 5.05-3-2.5-2.95 3.45c-.15.15-.35.25-.55.25-.15 0-.35-.05-.45-.2-.32-.23-.348-.668-.157-.971l.057-.079L10.2 8.7l3 2.5 3.45-3.95z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileAnalytics.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1512.ff1ac1d8.js b/pr-preview/pr-186/assets/js/1512.ff1ac1d8.js new file mode 100644 index 000000000..cc6acad95 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1512.ff1ac1d8.js @@ -0,0 +1,55 @@ +"use strict"; +exports.id = 1512; +exports.ids = [1512]; +exports.modules = { + +/***/ 21512: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_helper_text: () => (/* binding */ HelperText) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const helperTextCss = ":host{--color-informational:var(\n --telekom-color-text-and-icon-functional-informational\n );--color-warning:var(--telekom-color-text-and-icon-functional-warning);--color-danger:var(--telekom-color-text-and-icon-functional-danger);--color-success:var(--telekom-color-text-and-icon-functional-success);--color-neutral:var(--telekom-color-text-and-icon-additional);--font-size:0.75rem;--font-weight:700;--line-height:1.35;--icon-size-helper-text:11px}.helper-text{display:flex;align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end;font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}[part='text']{text-align:left}scale-icon-alert-information,scale-icon-alert-error,scale-icon-action-success{display:flex;justify-content:center;align-items:center;margin-right:var(--telekom-spacing-composition-space-03);margin-top:0.1666em;}.scale-icon{height:var(--icon-size-helper-text);width:var(--icon-size-helper-text)}.helper-text--informational{color:var(--color-informational)}.helper-text--warning{color:var(--color-warning)}.helper-text--danger{color:var(--color-danger)}.helper-text--success{color:var(--color-success)}.helper-text--neutral{color:var(--color-neutral)}"; + +const HelperText = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Injected CSS styles */ + this.variant = 'informational'; + } + renderHelperIcon() { + const variant = this.variant; + if (variant === 'informational' || variant === 'warning') { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-information", null); + } + if (variant === 'danger') { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-error", null); + } + if (variant === 'success') { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-success", null); + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: { + 'helper-text': true, + 'helper-text--informational': this.variant === 'informational', + 'helper-text--warning': this.variant === 'warning', + 'helper-text--danger': this.variant === 'danger', + 'helper-text--success': this.variant === 'success', + 'helper-text--neutral': this.variant === 'neutral', + }, part: "base" }, this.helperText ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "text" }, this.helperText)) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "text" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))), this.renderHelperIcon()), this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles))); + } +}; +HelperText.style = helperTextCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/15290.28189bd7.js b/pr-preview/pr-186/assets/js/15290.28189bd7.js new file mode 100644 index 000000000..32d4e2aa6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/15290.28189bd7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15290],{15290:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_cloud_security:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 9.326a3.623 3.623 0 013.62 3.62V14H17v5.5a1.5 1.5 0 01-1.5 1.5h-7A1.5 1.5 0 017 19.5V14h1.38v-1.055A3.623 3.623 0 0112 9.326zm1.512-7.152a7.595 7.595 0 017.148 4.982 5.759 5.759 0 013.09 5.094 5.754 5.754 0 01-5.256 5.725v-5.342h-1.44A5.072 5.072 0 0012 7.875a5.072 5.072 0 00-5.054 4.758h-1.44V18A5.257 5.257 0 01.25 12.75c0-1.9 1.032-3.643 2.668-4.568a4.717 4.717 0 014.704-4.438c.369 0 .738.045 1.1.133a7.592 7.592 0 014.79-1.703zM12 10.826c-1.168 0-2.12.95-2.12 2.12V14h4.24v-1.055A2.122 2.122 0 0012 10.826z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 9.325a3.624 3.624 0 013.62 3.62V14H17v5.5a1.5 1.5 0 01-1.5 1.5h-7A1.5 1.5 0 017 19.5V14h1.38v-1.055A3.624 3.624 0 0112 9.325zm1.512-7.15a7.595 7.595 0 017.148 4.981 5.759 5.759 0 013.09 5.094c0 3.004-2.317 5.472-5.256 5.724v-1.506a4.255 4.255 0 003.756-4.218 4.257 4.257 0 00-2.507-3.872l-.304-.138-.101-.317a6.1 6.1 0 00-5.826-4.249 6.101 6.101 0 00-4.105 1.591l-.328.298-.42-.143a3.188 3.188 0 00-1.037-.176 3.216 3.216 0 00-3.213 3.213l.033.661-.468.21A3.755 3.755 0 001.75 12.75a3.754 3.754 0 003.55 3.745l.206.005V18A5.258 5.258 0 01.25 12.75c0-1.9 1.032-3.643 2.667-4.568a4.718 4.718 0 014.705-4.438c.369 0 .738.045 1.1.133a7.592 7.592 0 014.79-1.703zM12 10.824a2.122 2.122 0 00-2.12 2.12V14h4.24v-1.055c0-1.169-.951-2.12-2.12-2.12z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/15301.8ed18301.js b/pr-preview/pr-186/assets/js/15301.8ed18301.js new file mode 100644 index 000000000..898c1478a --- /dev/null +++ b/pr-preview/pr-186/assets/js/15301.8ed18301.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15301],{15301:(t,e,l)=>{l.r(e),l.d(e,{scale_icon_content_interview:()=>s});var i=l(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M8 12l1.08 1.055-4.825 5.155a1.085 1.085 0 001.44 1.62l.095-.085 5.15-4.805L12 16l-5.185 4.84a2.57 2.57 0 01-1.765.695 2.59 2.59 0 01-1.02-.222l-.19-.093-2.135 2.135-1.06-1.06 2.135-2.11a2.575 2.575 0 01.252-2.853l.128-.147L8 12zm4.915-8L20 11.085l-5.745 5.73-7.07-7.07L12.915 4zm.635 5.39l-1.08 1.08 1.06 1.06 1.08-1.08-1.06-1.06zm3.968-7.765a4 4 0 013.807 1.05 4 4 0 01-1.449 6.61l-.211.07-5-5a4 4 0 012.853-2.73z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M18.5 1.5a4.002 4.002 0 012.825 6.83 3.985 3.985 0 01-2.59 1.163L18.5 9.5h-.105l1.59 1.59-5.73 5.73-1.52-1.52-5.925 5.54a2.569 2.569 0 01-1.765.695c-.35 0-.693-.08-1.018-.222l-.192-.093L1.7 23.355l-1.06-1.06 2.135-2.135a2.578 2.578 0 01.255-2.826l.13-.149 5.545-5.92-1.52-1.52 5.73-5.735 1.59 1.59a3.97 3.97 0 011.165-2.93A3.998 3.998 0 0118.5 1.5zM9.765 12.325L4.26 18.21c-.4.43-.39 1.095.025 1.51a1.074 1.074 0 001.4.113l.105-.088 5.89-5.505-1.915-1.915zm3.15-6.19l-3.61 3.61 4.95 4.95 3.61-3.61-4.95-4.95zm.635 2.195l2.12 2.12-1.06 1.06-.53-.53-1.06 1.065-1.065-1.065 1.065-1.06-.535-.53 1.065-1.06z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1547.567f6d56.js b/pr-preview/pr-186/assets/js/1547.567f6d56.js new file mode 100644 index 000000000..bf9a48829 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1547.567f6d56.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1547; +exports.ids = [1547]; +exports.modules = { + +/***/ 21547: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_height: () => (/* binding */ ContentHeight) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentHeight = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.002 1.482v2.5H5.183c-.646 0-1.179.493-1.243 1.123l-.007.127V5.5h1.57a.75.75 0 01.101 1.493L5.502 7H3.933v2.5h1.57a.75.75 0 01.101 1.493l-.102.006H3.933v2.5h1.57a.75.75 0 01.101 1.493L5.502 15H3.933v2.5h1.57a.75.75 0 01.101 1.493L5.502 19H3.933v.245c0 .646.493 1.179 1.123 1.243l.127.007h2.82v2.5h-2.82a3.754 3.754 0 01-3.744-3.552l-.005-.198V5.232a3.754 3.754 0 013.55-3.744l.2-.006h2.818zm13.2 8.316c1.06 0 1.616.629 1.666 1.846l.004.187v3.624h-1.466v-3.442c0-.534-.193-.875-.715-.875-.53 0-.892.367-.938.97l-.005.132v3.215h-1.466v-3.442c0-.534-.193-.875-.716-.875-.519 0-.88.376-.926.972l-.005.13v3.215h-1.466V9.98h1.375v.67h.068c.284-.534.807-.852 1.466-.852.682 0 1.14.262 1.404.749l.061.126h.068c.308-.568.875-.875 1.591-.875zm-8.228-1.931v7.588h-1.466V9.866h-.068l-1.977 1.635V9.73l2.182-1.862h1.329z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2 4.5V20c0 1.654 1.345 3 3 3h3v-1.5H5c-.827 0-1.5-.673-1.5-1.5v-1h2a.75.75 0 100-1.5h-2V15h2a.75.75 0 100-1.5h-2V11h2a.75.75 0 100-1.5h-2V7h2a.75.75 0 100-1.5h-2v-1C3.5 3.673 4.173 3 5 3h3V1.5H5c-1.655 0-3 1.345-3 3zm19.2 5.299c-.715 0-1.283.306-1.59.875h-.069c-.25-.569-.727-.875-1.465-.875-.659 0-1.181.318-1.466.851h-.068v-.67h-1.375v5.476h1.466v-3.215c0-.67.375-1.102.931-1.102.523 0 .716.341.716.875v3.442h1.466v-3.215c0-.681.375-1.102.943-1.102.523 0 .715.341.715.875v3.442h1.466v-3.624c0-1.34-.556-2.034-1.67-2.034zM9.462 9.73v1.772l1.976-1.636h.069v5.59h1.466V7.867h-1.33L9.462 9.73z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentHeight.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/155f9d16.00506e4e.js b/pr-preview/pr-186/assets/js/155f9d16.00506e4e.js new file mode 100644 index 000000000..a882b0d6a --- /dev/null +++ b/pr-preview/pr-186/assets/js/155f9d16.00506e4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15774],{50896:e=>{e.exports=JSON.parse('{"tag":{"label":"apig","permalink":"/docs-next/pr-preview/pr-186/docs/tags/apig","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/application-services/api-gateway/selectively-exposing-cce-workloads-with-a-dedicated-gateway","title":"Selectively Exposing CCE Workloads with a Dedicated Gateway","description":"You can use APIG to selectively expose your workloads and microservices in Cloud Container Engine (CCE).","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/application-services/api-gateway/selectively-exposing-cce-workloads-with-a-dedicated-gateway"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1568.0782a400.js b/pr-preview/pr-186/assets/js/1568.0782a400.js new file mode 100644 index 000000000..2353d7933 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1568.0782a400.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[1568],{1568:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_communication_loyalty_lost:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M7.436 14.782l-1.898 1.625 2.589 3.029 1.899-1.626-2.59-3.028zm4.9 4.946l-.036.042a.391.391 0 01-.3.126.383.383 0 01-.294-.121l-.384-.456-1.905 1.623.386.454a2.888 2.888 0 004.396 0l.362-.422-1.9-1.621-.325.375zm7.548-8.928c-.11.195-.241.383-.39.557l-1.664 1.946 1.898 1.625 1.666-1.947c.252-.295.477-.616.667-.953l.247-.435-2.18-1.23-.244.437zm-15.377.556a3.547 3.547 0 01-.404-.581l-.242-.438-2.188 1.21.243.439c.197.354.43.689.692.995l1.639 1.917 1.9-1.625-1.64-1.917zm9.443 6.485l1.9 1.624 2.589-3.028-1.9-1.625-2.59 3.029zM10.447 7.728c.007.009.7.827 1.07 2.208l.484 1.796.483-1.797c.37-1.381 1.064-2.198 1.07-2.205l.403-.465L12 6.174l-1.952 1.09.398.464zm9.28-.607c.317.464.518 1.003.583 1.558l.057.497 2.484-.29-.06-.497a5.988 5.988 0 00-.997-2.674 6.151 6.151 0 00-.548-.694l-.338-.368-1.843 1.69.339.369c.115.125.224.263.324.409zm-4.24-1.261a3.6 3.6 0 012.04-.203l.49.096.479-2.453-.491-.096a6.03 6.03 0 00-3.474.347h-.001l-.196.084-.457.206 1.029 2.27.58-.251zm-8.983-.207a3.565 3.565 0 012.165.273l.456.21L10.16 3.86l-.454-.208a6.059 6.059 0 00-.467-.191 6.037 6.037 0 00-3.198-.265l-.49.092.46 2.457.492-.092zM3.696 8.65a3.509 3.509 0 01.579-1.531v-.001c.102-.15.217-.295.342-.43l.34-.365-1.83-1.704-.34.366A6.008 6.008 0 001.215 8.34l-.061.496 2.482.31.06-.496z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12.678 20.095c-.343.401-1.016.4-1.355.001l-.06-.07-1.142.972.061.072a2.39 2.39 0 003.637 0l.035-.04-1.14-.976-.036.041zm1.976-2.31l1.14.974 1.94-2.268-1.14-.975-1.94 2.268zm-8.52-14.1l.277 1.474a4.086 4.086 0 012.466.311l.621-1.365a5.581 5.581 0 00-3.364-.42zm13.74 7.994l-1.34 1.567 1.14.975 1.34-1.567c.23-.27.437-.565.612-.874l-1.307-.737a4.055 4.055 0 01-.445.636zM14.721 4.01a6.213 6.213 0 00-.182.08l.62 1.365.136-.059a4.066 4.066 0 012.326-.23l.287-1.473a5.586 5.586 0 00-3.187.317zM3.665 11.016l-1.313.726c.18.324.394.631.635.914l1.315 1.536 1.14-.975-1.315-1.537a4.044 4.044 0 01-.462-.664zm17.14-2.396l1.49-.173a5.496 5.496 0 00-1.418-3.089l-1.106 1.014a3.998 3.998 0 011.034 2.248zM12 9.805h.001c.41-1.524 1.174-2.404 1.174-2.404L12 6.745l-1.176.656s.767.88 1.176 2.403v.001zM3.861 6.838a3.93 3.93 0 01.39-.49L3.152 5.326A5.519 5.519 0 001.71 8.402l1.49.188a3.988 3.988 0 01.662-1.75zm2.38 9.624l1.94 2.268 1.14-.975-1.94-2.269-1.14.976z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1568.5536ec48.js b/pr-preview/pr-186/assets/js/1568.5536ec48.js new file mode 100644 index 000000000..8914dfed9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1568.5536ec48.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1568; +exports.ids = [1568]; +exports.modules = { + +/***/ 1568: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_loyalty_lost: () => (/* binding */ CommunicationLoyaltyLost) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationLoyaltyLost = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.436 14.782l-1.898 1.625 2.589 3.029 1.899-1.626-2.59-3.028zm4.9 4.946l-.036.042a.391.391 0 01-.3.126.383.383 0 01-.294-.121l-.384-.456-1.905 1.623.386.454a2.888 2.888 0 004.396 0l.362-.422-1.9-1.621-.325.375zm7.548-8.928c-.11.195-.241.383-.39.557l-1.664 1.946 1.898 1.625 1.666-1.947c.252-.295.477-.616.667-.953l.247-.435-2.18-1.23-.244.437zm-15.377.556a3.547 3.547 0 01-.404-.581l-.242-.438-2.188 1.21.243.439c.197.354.43.689.692.995l1.639 1.917 1.9-1.625-1.64-1.917zm9.443 6.485l1.9 1.624 2.589-3.028-1.9-1.625-2.59 3.029zM10.447 7.728c.007.009.7.827 1.07 2.208l.484 1.796.483-1.797c.37-1.381 1.064-2.198 1.07-2.205l.403-.465L12 6.174l-1.952 1.09.398.464zm9.28-.607c.317.464.518 1.003.583 1.558l.057.497 2.484-.29-.06-.497a5.988 5.988 0 00-.997-2.674 6.151 6.151 0 00-.548-.694l-.338-.368-1.843 1.69.339.369c.115.125.224.263.324.409zm-4.24-1.261a3.6 3.6 0 012.04-.203l.49.096.479-2.453-.491-.096a6.03 6.03 0 00-3.474.347h-.001l-.196.084-.457.206 1.029 2.27.58-.251zm-8.983-.207a3.565 3.565 0 012.165.273l.456.21L10.16 3.86l-.454-.208a6.059 6.059 0 00-.467-.191 6.037 6.037 0 00-3.198-.265l-.49.092.46 2.457.492-.092zM3.696 8.65a3.509 3.509 0 01.579-1.531v-.001c.102-.15.217-.295.342-.43l.34-.365-1.83-1.704-.34.366A6.008 6.008 0 001.215 8.34l-.061.496 2.482.31.06-.496z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.678 20.095c-.343.401-1.016.4-1.355.001l-.06-.07-1.142.972.061.072a2.39 2.39 0 003.637 0l.035-.04-1.14-.976-.036.041zm1.976-2.31l1.14.974 1.94-2.268-1.14-.975-1.94 2.268zm-8.52-14.1l.277 1.474a4.086 4.086 0 012.466.311l.621-1.365a5.581 5.581 0 00-3.364-.42zm13.74 7.994l-1.34 1.567 1.14.975 1.34-1.567c.23-.27.437-.565.612-.874l-1.307-.737a4.055 4.055 0 01-.445.636zM14.721 4.01a6.213 6.213 0 00-.182.08l.62 1.365.136-.059a4.066 4.066 0 012.326-.23l.287-1.473a5.586 5.586 0 00-3.187.317zM3.665 11.016l-1.313.726c.18.324.394.631.635.914l1.315 1.536 1.14-.975-1.315-1.537a4.044 4.044 0 01-.462-.664zm17.14-2.396l1.49-.173a5.496 5.496 0 00-1.418-3.089l-1.106 1.014a3.998 3.998 0 011.034 2.248zM12 9.805h.001c.41-1.524 1.174-2.404 1.174-2.404L12 6.745l-1.176.656s.767.88 1.176 2.403v.001zM3.861 6.838a3.93 3.93 0 01.39-.49L3.152 5.326A5.519 5.519 0 001.71 8.402l1.49.188a3.988 3.988 0 01.662-1.75zm2.38 9.624l1.94 2.268 1.14-.975-1.94-2.269-1.14.976z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationLoyaltyLost.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/15698.417a33f5.js b/pr-preview/pr-186/assets/js/15698.417a33f5.js new file mode 100644 index 000000000..2e1d10a42 --- /dev/null +++ b/pr-preview/pr-186/assets/js/15698.417a33f5.js @@ -0,0 +1,2 @@ +/*! For license information please see 15698.417a33f5.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15698],{15698:(h,l,v)=>{v.r(l),v.d(l,{app_logo:()=>t});var e=v(90936),c=v(94200);const t=class{constructor(h){(0,e.r)(this,h),this.href="javascript:void(0);",this.logoTitle="Telekom Logo",this.color="#fff",this.claim=!1,this.focusable=!0}componentDidRender(){(0,c.s)({tag:"deprecated",message:" is deprecated, please use ",type:"warn",source:this.hostElement})}render(){return this.claim?(0,e.h)("a",{class:"logo",href:this.href,title:this.logoTitle,onFocus:()=>{window.scrollTo({top:0})}},(0,e.h)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 284 36"},(0,e.h)("g",{fill:this.color,"fill-rule":"nonzero"},"de"===this.claimLang?(0,e.h)("path",{d:"M104.6 16v2.3h4.1v2h-4.1v2.5h4.2v2.1h-6.4v-11h6.4V16zM114 20.9h-1.1v4h-2.2v-11h4c2.1 0 3.6 1.3 3.6 3.5 0 1.7-.9 2.8-2.2 3.2l2.3 4.2h-2.5l-1.9-3.9zm-1.1-2.1h1.7c.9 0 1.5-.5 1.5-1.4 0-.9-.6-1.4-1.5-1.4h-1.7v2.8zM120 13.9h2.2v8.9h3.9v2.1H120zM129.5 16v2.3h4.1v2h-4.1v2.5h4.3v2.1h-6.5v-11h6.5V16zM143.1 21.8c0 1.7-1 3-3.4 3h-4.1V13.9h4.2c2.2 0 3.2 1.3 3.2 2.9 0 1.1-.5 2-1.3 2.5v.1c.9.4 1.4 1.3 1.4 2.4zm-5.2-5.9v2.5h1.7c.7 0 1.2-.5 1.2-1.3s-.5-1.3-1.2-1.3h-1.7v.1zm2.9 5.7c0-.8-.5-1.3-1.3-1.3h-1.6v2.6h1.6c.8 0 1.3-.5 1.3-1.3zM147 16v2.3h4.1v2H147v2.5h4.3v2.1h-6.5v-11h6.5V16zM161.6 13.9v11h-2.2l-3.9-6.9h-.1v6.9h-2.3v-11h2.3l3.9 6.9h.1v-6.9zM166 22.3v2.3c0 1.7-.7 2.8-2.5 2.9v-1.2c.9-.1 1.2-.5 1.2-1.4v-.1h-1.2v-2.5h2.5zM183.9 13.9l-2.9 11h-2.4l-1.8-7.2h-.1l-1.8 7.2h-2.4l-2.9-11h2.3l1.8 7.3h.1l1.7-7.3h2.5l1.8 7.3h.1l1.7-7.3zM189.9 22.7h-3.8l-.7 2.1h-2.2l3.7-10.9h2.2l3.7 10.9h-2.2l-.7-2.1zm-.7-2l-1.1-3.4h-.1l-1.1 3.4h2.3zM193.3 21.8h2.2c.2.9.8 1.3 1.6 1.3 1 0 1.4-.5 1.4-1.2s-.5-1-1.3-1.3l-1.3-.4c-1.8-.5-2.4-1.7-2.4-3.1 0-2.1 1.6-3.4 3.6-3.4 2.2 0 3.4 1.3 3.6 3.3h-2.2c-.2-.8-.6-1.2-1.5-1.2-.7 0-1.3.4-1.3 1.2 0 .8.5 1.1 1.1 1.2l1.3.3c1.6.4 2.6 1.6 2.6 3.2 0 2.2-1.6 3.4-3.7 3.4-2.2 0-3.5-1.2-3.7-3.3zM214 13.9l-3.5 11h-2.2l-3.6-11h2.3l2.3 7.4h.1l2.4-7.4zM217.1 16v2.3h4.1v2h-4.1v2.5h4.3v2.1h-6.5v-11h6.5V16zM226.5 20.9h-1.1v4h-2.2v-11h4c2.1 0 3.6 1.3 3.6 3.5 0 1.7-.9 2.8-2.2 3.2l2.3 4.2h-2.5l-1.9-3.9zm-1.1-2.1h1.7c.9 0 1.5-.5 1.5-1.4 0-.9-.6-1.4-1.5-1.4h-1.7v2.8zM239.9 21.8c0 1.7-1 3-3.4 3h-4.1V13.9h4.2c2.2 0 3.2 1.3 3.2 2.9 0 1.1-.5 2-1.3 2.5v.1c.9.4 1.4 1.3 1.4 2.4zm-5.2-5.9v2.5h1.7c.7 0 1.2-.5 1.2-1.3s-.5-1.3-1.2-1.3h-1.7v.1zm2.9 5.7c0-.8-.5-1.3-1.3-1.3h-1.6v2.6h1.6c.9 0 1.3-.5 1.3-1.3zM241.6 13.9h2.2v11h-2.2zM254.4 13.9v11h-2.2l-4-6.9h-.1v6.9h-2.2v-11h2.3l3.9 6.9h.1v-6.9zM256.5 13.9h3.8c2.8 0 4.6 1.9 4.6 5.5s-1.8 5.5-4.6 5.5h-3.8v-11zm3.7 8.9c1.5 0 2.5-1 2.5-3.4s-1-3.4-2.5-3.4h-1.4v6.8h1.4zM268.8 16v2.3h4v2h-4v2.5h4.2v2.1h-6.4v-11h6.4V16zM273.9 13.9h7.8V16h-2.8v8.9h-2.2V16h-2.8zM281.5 22.3h2.5v2.6h-2.5z"}):(0,e.h)("path",{d:"M103.174 13.906h2.159v8.686h3.822v2.01h-5.981zM110.296 13.906h2.16v10.696h-2.16zM116.712 15.904v2.42h3.822v1.997h-3.822v4.281h-2.16V13.906h6.13v1.998zM124.033 15.904v2.258h3.97v1.998h-3.97v2.432h4.132v2.01h-6.291V13.906h6.291v1.998zM133.662 13.906h2.16v10.696h-2.16zM137.05 21.575h2.147c.186.893.781 1.253 1.563 1.253.93 0 1.39-.509 1.39-1.204 0-.67-.447-1.005-1.278-1.228l-1.229-.348c-1.712-.459-2.382-1.7-2.382-3.04 0-2.047 1.526-3.326 3.5-3.326 2.158 0 3.325 1.254 3.536 3.214h-2.11c-.149-.794-.595-1.203-1.427-1.203-.732 0-1.29.41-1.29 1.166 0 .757.496 1.03 1.092 1.179l1.228.335c1.588.41 2.581 1.588 2.581 3.115 0 2.146-1.588 3.35-3.598 3.35-2.222 0-3.525-1.154-3.723-3.263zM151.618 15.904v2.42h3.822v1.997h-3.822v4.281h-2.16V13.906h6.13v1.998zM156.594 19.254c0-3.462 1.6-5.584 4.53-5.584 2.928 0 4.528 2.122 4.528 5.584 0 3.462-1.6 5.584-4.529 5.584-2.928 0-4.53-2.134-4.53-5.584zm6.812 0c0-2.333-.806-3.524-2.283-3.524-1.489 0-2.283 1.179-2.283 3.524 0 2.345.794 3.524 2.283 3.524 1.49 0 2.283-1.191 2.283-3.524zM170.343 20.693H169.3v3.91h-2.159V13.917h3.946c2.085 0 3.55 1.229 3.55 3.388 0 1.638-.845 2.742-2.147 3.164l2.258 4.132h-2.395l-2.01-3.909zm-1.043-1.997h1.676c.843 0 1.427-.497 1.427-1.39 0-.894-.571-1.39-1.427-1.39H169.3v2.78zM179.203 21.575h2.146c.187.893.782 1.253 1.564 1.253.93 0 1.39-.509 1.39-1.204 0-.67-.447-1.005-1.278-1.228l-1.229-.348c-1.712-.459-2.382-1.7-2.382-3.04 0-2.047 1.526-3.326 3.499-3.326 2.16 0 3.326 1.254 3.537 3.214h-2.11c-.149-.794-.596-1.203-1.427-1.203-.732 0-1.29.41-1.29 1.166 0 .757.496 1.03 1.091 1.179l1.229.335c1.588.41 2.581 1.588 2.581 3.115 0 2.146-1.588 3.35-3.599 3.35-2.22 0-3.536-1.154-3.722-3.263zM196.004 13.906v10.696h-2.159V20.16h-3.822v4.442h-2.159V13.906h2.16v4.256h3.821v-4.256zM203.4 22.53h-3.685l-.683 2.06h-2.196l3.648-10.684h2.16l3.647 10.684h-2.196l-.695-2.06zm-.67-2.01l-1.117-3.313h-.1l-1.116 3.313h2.333zM210.324 20.693h-1.042v3.91h-2.16V13.917h3.947c2.084 0 3.549 1.229 3.549 3.388 0 1.638-.844 2.742-2.147 3.164l2.258 4.132h-2.395l-2.01-3.909zm-1.042-1.997h1.675c.844 0 1.427-.497 1.427-1.39 0-.894-.57-1.39-1.427-1.39h-1.675v2.78zM215.983 13.906h2.159v10.696h-2.16zM228.503 13.906v10.696h-2.171l-3.847-6.688h-.1v6.688h-2.159V13.906h2.197l3.834 6.725h.1v-6.725zM239.026 18.969v.595c0 3.537-1.589 5.274-4.294 5.274-3.102 0-4.678-2.16-4.678-5.584 0-3.425 1.663-5.584 4.629-5.584 2.308 0 3.871 1.377 4.181 3.375h-2.308c-.235-.794-.93-1.315-1.873-1.315-1.527 0-2.383 1.216-2.383 3.524s.82 3.524 2.432 3.524c1.142 0 1.899-.533 2.085-1.948h-1.948v-1.861h4.157zM240.192 22.133h2.457v2.47h-2.457z"}),(0,e.h)("g",null,(0,e.h)("path",{d:"M7.3 16.6H0v7.3h7.3z"}),(0,e.h)("path",{d:"M.4 0L0 12.7l1.9.3c.4-3.7 1.3-6.5 2.9-8.3 1.7-1.9 4-2.9 7-3v26.6c0 2.3-.3 3.8-1 4.5-.6.6-1.5 1-2.9 1.1-.3.1-1 .1-2 .1v2h17.8v-2c-1 0-1.7 0-2.1-.1-1.4-.1-2.3-.5-2.9-1.1-.7-.7-1-2.2-1-4.5V1.7c3 .1 5.3 1.1 7 3 1.6 1.8 2.6 4.6 2.9 8.3l1.9-.3L29.2 0H.4z"}),(0,e.h)("path",{d:"M22.2 16.6v7.3h7.3v-7.3h-3.7zM44.1 16.6v7.3h7.3v-7.3h-3.6zM66 16.6v7.3h7.3v-7.3h-3.8z"}))))):(0,e.h)("a",{href:this.href,title:this.logoTitle,tabindex:!1===this.focusable?-1:void 0},(0,e.h)("svg",{width:"51",height:"24",viewBox:"0 0 51 24",xmlns:"http://www.w3.org/2000/svg"},(0,e.h)("path",{d:"M0 15.8v-4.83h4.996v4.83H0zm15.235 0v-4.83h4.997v4.83h-4.997zm14.99 0v-4.83h4.995v4.83h-4.996zm14.988 0v-4.83h4.996v4.83h-4.996zM19.984 0l.248 8.415-1.31.219c-.243-2.48-.916-4.32-2.02-5.52-1.16-1.257-2.76-1.913-4.815-1.97V18.75c0 1.538.225 2.536.689 2.997.395.392 1.062.633 2.002.723.28.023.755.034 1.428.034v1.346H4.026v-1.346c.673 0 1.148-.011 1.427-.034.94-.09 1.608-.33 2.002-.723.465-.46.687-1.46.687-2.997V1.145c-2.055.056-3.652.712-4.813 1.968-1.103 1.201-1.776 3.041-2.02 5.521L0 8.415.247 0h19.737z",fill:this.color,"fill-rule":"nonzero"})))}get hostElement(){return(0,e.g)(this)}};t.style=".logo{display:flex;align-items:center}.logo>svg{width:100%;max-width:300px;height:auto}"},94200:(h,l,v)=>{v.d(l,{s:()=>t});const e={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},c={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function t({tag:h="WIP",extraMessage:l=null,message:v=null,source:t=null,type:o="info"}){(0,console[o])(`%c scale \u2013 ${e[h]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${v||c[h]} ${l?"\n"+l:""}\n `,null!==t?"\nsource:":"","object"==typeof t?t:`${t}`,null!==t?"\n\n":"")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/15698.417a33f5.js.LICENSE.txt b/pr-preview/pr-186/assets/js/15698.417a33f5.js.LICENSE.txt new file mode 100644 index 000000000..6ba7e7f54 --- /dev/null +++ b/pr-preview/pr-186/assets/js/15698.417a33f5.js.LICENSE.txt @@ -0,0 +1,10 @@ +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/15704.24841622.js b/pr-preview/pr-186/assets/js/15704.24841622.js new file mode 100644 index 000000000..d3ffc4f41 --- /dev/null +++ b/pr-preview/pr-186/assets/js/15704.24841622.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15704],{15704:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_add:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M18.5 10.75h-5.25V5.5a1.25 1.25 0 00-2.5 0v5.25H5.5a1.25 1.25 0 000 2.5h5.25v5.25a1.25 1.25 0 002.5 0v-5.25h5.25a1.25 1.25 0 000-2.5","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M18.5 11.25h-5.75V5.5a.75.75 0 00-1.5 0v5.75H5.5a.75.75 0 000 1.5h5.75v5.75a.75.75 0 001.5 0v-5.75h5.75a.75.75 0 000-1.5","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/15736.7a3ad1ee.js b/pr-preview/pr-186/assets/js/15736.7a3ad1ee.js new file mode 100644 index 000000000..943cd0c35 --- /dev/null +++ b/pr-preview/pr-186/assets/js/15736.7a3ad1ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15736],{15736:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_minimize_screen:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M11.245 12.755l-1.76 8.43-2.45-2.45L2.88 22.89a1.252 1.252 0 01-1.868-1.66l.098-.11 4.155-4.155-2.45-2.465 8.43-1.745zM22.005.743c.332 0 .65.132.885.367a1.25 1.25 0 01.096 1.68l-.096.105-4.155 4.155 2.45 2.45-8.43 1.745 1.745-8.43 2.465 2.45L21.12 1.11a1.25 1.25 0 01.885-.367z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M11.245 12.755l-1.76 8.43L6.68 18.38l-4.155 4.155a.754.754 0 01-.53.22.754.754 0 01-.53-.22.744.744 0 01-.073-.975l.073-.085L5.62 17.32l-2.805-2.805 8.43-1.76zm10.23-11.29a.745.745 0 011.06 0c.268.264.293.68.073.975l-.073.085L18.38 6.68l2.805 2.805-8.43 1.76 1.76-8.43L17.32 5.62l4.155-4.155z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/15811.b737b9c8.js b/pr-preview/pr-186/assets/js/15811.b737b9c8.js new file mode 100644 index 000000000..bc74c4cf5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/15811.b737b9c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[15811],{15811:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_change_camera:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M13.777 1.154l.103.011A11 11 0 0123 12a10.965 10.965 0 01-3.844 8.343l-.256.212L20.5 23h-6.685l2.685-6.13 1.57 2.44a9.5 9.5 0 00-4.46-16.645.762.762 0 01.167-1.511zM10.185 1L7.5 7.13 5.93 4.715a9.5 9.5 0 004.166 16.589l.294.056-.015-.025a.762.762 0 01-.27 1.5A11 11 0 014.863 3.651l.242-.201L3.5 1h6.685zM14.5 9v1.765L15.825 9.5h.675V14h-.675L14.5 12.735V13a1.5 1.5 0 01-1.356 1.493L13 14.5H9.5a1.5 1.5 0 01-1.493-1.356L8 13V9h6.5z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M13.794 1.141l.106.009C19.05 2.1 23 6.6 23 12c0 3.335-1.495 6.343-3.853 8.392l-.247.208 1.6 2.4h-6.7l2.7-6.1 1.55 2.4c2.1-1.75 3.45-4.35 3.45-7.3 0-4.65-3.4-8.55-7.9-9.4-.42-.047-.71-.485-.583-.91l.033-.09c.09-.315.423-.468.744-.459zM10.2 1L7.55 7.1l-1.6-2.4C3.85 6.45 2.5 9.05 2.5 12c0 4.65 3.4 8.55 7.9 9.35.45.05.75.55.55 1.05-.1.35-.5.5-.85.45C4.95 21.9 1 17.4 1 12a10.94 10.94 0 013.853-8.346L5.1 3.45 3.5 1h6.7zm4.3 8v1.75l1.35-1.25h.65V14h-.65l-1.35-1.25V13c0 .8-.576 1.423-1.352 1.493L13 14.5H9.5a1.47 1.47 0 01-1.493-1.352L8 13V9h6.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1599.5e4b944c.js b/pr-preview/pr-186/assets/js/1599.5e4b944c.js new file mode 100644 index 000000000..413cb776a --- /dev/null +++ b/pr-preview/pr-186/assets/js/1599.5e4b944c.js @@ -0,0 +1,410 @@ +"use strict"; +exports.id = 1599; +exports.ids = [1599]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 31599: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_toggle_button: () => (/* binding */ ToggleButton) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); + + + + + +const toggleButtonCss = ":host{--width:auto;--spacing-x:var(--telekom-spacing-composition-space-08);--spacing-x-icon-only:var(--telekom-spacing-composition-space-04);--min-height:var(--telekom-spacing-composition-space-08);--height-xs:var(--telekom-spacing-composition-space-08);--height-small:var(--telekom-spacing-composition-space-10);--height-regular:var(--telekom-spacing-composition-space-12);--height-large:var(--telekom-spacing-composition-space-14);--radius:var(--telekom-radius-small);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard),\n border-radius var(--telekom-motion-duration-instant);--box-shadow-focus:inset 0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard);--font-weight:var(--telekom-typography-font-weight-bold);--font-size-large:var(--telekom-typography-font-size-body);--font-size-small:var(--telekom-typography-font-size-caption);--font-size-xs:var(--telekom-typography-font-size-small);--line-height:var(--telekom-spacing-composition-space-04);--spacing-icon-x:var(--telekom-spacing-composition-space-04);--vertical-align:middle;--border-color:var(--telekom-color-ui-border-standard);--border-color-disabled:var(--telekom-color-ui-border-disabled);--color-disabled:var(--telekom-color-text-and-icon-disabled);--font-size-small:var(--telekom-typography-font-size-small);--line-height-small:var(--telekom-typography-line-spacing-standard);--min-height-small:var(--telekom-spacing-composition-space-10);--radius-primary:var(--radius);--background-primary:var(--telekom-color-ui-subtle);--background-primary-disabled:var(--telekom-color-ui-disabled);--color-primary:var(--telekom-color-ui-extra-strong);--color-primary-hover:var(--telekom-color-primary-hovered);--color-primary-active:var(--telekom-color-primary-pressed);--background-secondary:transparent;--color-secondary:var(--telekom-color-text-and-icon-standard);--background-secondary-hover:var(--telekom-color-ui-state-fill-hovered);--background-secondary-active:var(--telekom-color-ui-state-fill-pressed);--background-secondary-disabled:none;--border-secondary:var(--telekom-color-ui-border-standard);--border-secondary-hover:var(--telekom-color-ui-border-hovered);--border-secondary-active:var(--telekom-color-ui-border-pressed);--border-secondary-focus:var(--telekom-color-functional-focus-standard);--color-selected:var(--telekom-color-text-and-icon-white-standard);--background-selected-light:var(--telekom-color-primary-standard);--background-selected-hover-light:var(--telekom-color-primary-hovered);--background-selected-active-light:var(--telekom-color-primary-pressed);--background-selected-dark:var(--telekom-color-ui-extra-strong);--background-selected-hover-dark:var(--telekom-color-ui-strong);--background-selected-active-dark:var(--telekom-color-ui-strong);--color-high-contrast:var(--telekom-color-text-and-icon-white-standard)}.toggle-button{box-sizing:border-box;display:inline-flex;align-items:center;position:relative;border:0;outline:none;cursor:pointer;user-select:none;font-family:inherit;word-spacing:inherit;letter-spacing:inherit;justify-content:center;text-decoration:none;font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);min-height:var(--min-height);width:var(--width);padding-left:var(--spacing-x);padding-right:var(--spacing-x);vertical-align:var(--vertical-align);transition:var(--transition);margin:0;color:var(--color-primary)}.toggle-button--primary{background:var(--background-primary)}.toggle-button--secondary{color:var(--color-secondary);background:var(--background-secondary)}.toggle-button--icon-before ::slotted(*){margin-right:var(--spacing-icon-x);pointer-events:none}.toggle-button--icon-after ::slotted(*){margin-left:var(--spacing-icon-x);pointer-events:none}.toggle-button--icon-only ::slotted(*){pointer-events:none}.toggle-button--xs{height:var(--height-xs);font-size:var(--font-size-xs)}.toggle-button--small{height:var(--height-small);font-size:var(--font-size-small)}.toggle-button--regular{height:var(--height-regular);font-size:var(--font-size-large)}.toggle-button--large{height:var(--height-large);font-size:var(--font-size-large)}.toggle-button:not(.button--disabled):focus{box-shadow:var(--box-shadow-focus)}.toggle-button:not(.button--disabled):hover{color:var(--color-secondary-hover);background-color:var(--background-secondary-hover)}.toggle-button:not(.button--disabled):active{color:var(--color-secondary-active);background-color:var(--background-secondary-active)}.toggle-button:disabled{color:var(--color-disabled);pointer-events:none;border:1px solid var(--border-color-disabled)}.toggle-button:disabled.toggle-button--primary{background:var(--background-primary-disabled)}.toggle-button--selected.toggle-button--color{color:var(--color-selected);background:var(--background-selected-light)}.toggle-button--selected:not(.button--disabled).toggle-button--color:hover{color:var(--color-selected);background:var(--background-selected-hover-light)}.toggle-button--selected:not(.button--disabled).toggle-button--color:active{color:var(--color-selected);background:var(--background-selected-active-light)}.toggle-button--selected.toggle-button--monochrome{color:var(--telekom-color-text-and-icon-inverted-standard);background:var(--background-selected-dark)}.toggle-button--selected:not(.button--disabled).toggle-button--monochrome:hover{color:var(--color-selected);background:var(--background-selected-hover-dark)}.toggle-button--selected:not(.button--disabled).toggle-button--monochrome:active{color:var(--color-selected);background:var(--background-selected-active-dark)}.toggle-button--border{border:1px solid var(--border-color)}.toggle-button--left,.toggle-button--left:disabled{border-right:0;border-radius:var(--radius-primary) 0 0 var(--radius-primary)}.toggle-button--right,.toggle-button--right:disabled{border-left:0;border-radius:0 var(--radius-primary) var(--radius-primary) 0}.toggle-button--both,.toggle-button--both:disabled{border-radius:var(--radius-primary)}.toggle-button--all,.toggle-button--all:disabled{border-radius:var(--radius-primary)}.toggle-button--neither,.toggle-button--neither:disabled{border-right:0;border-left:0;border-radius:0}@media screen and (forced-colors: active), (-ms-high-contrast: active){.toggle-button{color:var(--color-high-contrast)}}"; + +var iconSizes; +(function (iconSizes) { + iconSizes["xs"] = "12"; + iconSizes["small"] = "16"; + iconSizes["regular"] = "22"; + iconSizes["large"] = "24"; +})(iconSizes || (iconSizes = {})); +let i = 0; +const ToggleButton = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleClick = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-click", 7); + this.scaleClickLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleClick", 7); + /** (optional) The size of the button */ + this.size = 'regular'; + /** (optional) Button background */ + this.background = 'white'; + /** @deprecated - variant should replace colorScheme */ + this.colorScheme = 'color'; + /** (optional) background variant of a selected toggle-button */ + this.variant = 'color'; + /** (optional) If `true`, the button is disabled */ + this.disabled = false; + /** (optional) If `true`, the button is selected */ + this.selected = false; + /** (optional) Button type */ + this.iconOnly = false; + /** (optional) Icon position related to the label */ + this.iconPosition = 'before'; + /** (optional) set the border-radius left, right or both */ + this.radius = null; + /** (optional) translation of 'selected */ + this.ariaLangSelected = 'selected'; + /** (optional) translation of 'deselected */ + this.ariaLangDeselected = 'deselected'; + /** a11y text for getting meaningful value. `$buttonNumber` and `$selected` are template variables and will be replaces by their corresponding properties. */ + this.ariaDescriptionTranslation = '$selected'; + this.hasScaleIcon = false; + this.handleClick = (event) => { + event.preventDefault(); + this.selected = !this.selected; + this.handleIconShape(); + this.scaleClick.emit({ id: this.toggleButtonId, selected: this.selected }); + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleClick', { + id: this.toggleButtonId, + selected: this.selected, + }); + }; + this.handleIconShape = () => { + if (this.hasScaleIcon) { + Array.from(this.hostElement.children).forEach((node) => { + if (node.nodeName.substr(0, 10) === 'SCALE-ICON') { + if (this.selected) { + node.setAttribute('selected', 'true'); + } + else { + node.removeAttribute('selected'); + } + } + }); + } + }; + } + async setFocus() { + this.focusableElement.focus(); + } + connectedCallback() { + this.setIconPositionProp(); + this.handleIconShape(); + } + componentDidLoad() { + this.handleIconSize(); + } + componentDidRender() { + this.handleIconSize(); + if (this.hostElement.hasAttribute('aria-label')) { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "ariaLabel" is deprecated. Please use the "ariaLabelToggleButton" property!', + type: 'warn', + source: this.hostElement, + }); + } + } + componentWillLoad() { + if (this.toggleButtonId == null) { + this.toggleButtonId = 'toggle-button-' + i++; + } + } + getAriaDescriptionTranslation() { + const replaceSelected = this.selected + ? this.ariaLangSelected + : this.ariaLangDeselected; + const filledText = this.ariaDescriptionTranslation + .replace(/\$position/g, `${this.position}`) + .replace(/\$selected/g, `${replaceSelected}`); + return filledText; + } + handleIconSize() { + Array.from(this.hostElement.children).forEach((child) => { + if (child.tagName.substr(0, 10) === 'SCALE-ICON') { + child.setAttribute('size', iconSizes[this.size]); + } + }); + } + /** + * Detect whether a child node is a scale icon and contains text. + * If so, we set `iconPosition` to `after`, if the icon comes after the text. + */ + setIconPositionProp() { + const nodes = Array.from(this.hostElement.childNodes).filter((node) => { + if (node.nodeName.substr(0, 10) === 'SCALE-ICON') { + this.hasScaleIcon = true; + } + // ignore empty text nodes, which are probably due to formatting + return !(node.nodeType === 3 && node.nodeValue.trim() === ''); + }); + if (!this.iconOnly && + nodes && + nodes.length && + nodes[nodes.length - 1] && + nodes[nodes.length - 1].nodeName.substr(0, 10) === 'SCALE-ICON') { + this.iconPosition = 'after'; + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", { ref: (el) => (this.focusableElement = el), class: this.getCssClassMap(), id: this.toggleButtonId, onClick: this.handleClick, disabled: this.disabled, type: "button", "aria-label": this.ariaLabelToggleButton, "aria-pressed": this.selected, part: this.getBasePartMap(), "aria-description": this.getAriaDescriptionTranslation() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const prefix = mode === 'basePart' ? '' : 'toggle-button--'; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('toggle-button', this.size && `${prefix}${this.size}`, this.background && + `${prefix}${this.background === 'grey' ? 'primary' : 'secondary'}`, !this.iconOnly && + this.iconPosition && + `toggle-button--icon-${this.iconPosition}`, this.iconOnly && `${prefix}icon-only`, !this.disabled && this.selected && `${prefix}selected`, this.radius && `${prefix}${this.radius}`, this.colorScheme && `${prefix}${this.colorScheme}`, this.variant && `${prefix}${this.variant}`, !this.hideBorder && `${prefix}border`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ToggleButton.style = toggleButtonCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16074.c1dcb8ee.js b/pr-preview/pr-186/assets/js/16074.c1dcb8ee.js new file mode 100644 index 000000000..eb8e1049f --- /dev/null +++ b/pr-preview/pr-186/assets/js/16074.c1dcb8ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16074],{16074:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_weather_heavy_snow:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M8.35 17.807l1.299.75L8.816 20h1.683v1.5H8.781l.868 1.503-1.3.75-.85-1.473-.85 1.473-1.3-.75.869-1.503H4.499V20h1.684l-.833-1.443 1.299-.75.85 1.473.85-1.473zm6.5-4.5l1.298.75-.833 1.443H17V17h-1.72l.868 1.503-1.299.75L14 17.78l-.85 1.473-1.3-.75.868-1.503H11v-1.5h1.683l-.832-1.443 1.298-.75L14 14.78l.85-1.473zM13.51.547a7.596 7.596 0 017.15 5.02 5.805 5.805 0 013.088 5.127c0 3.015-2.302 5.49-5.229 5.757l-.22.016v-2.089a1 1 0 00-.402-.802l-.099-.065-3.302-1.903a1.001 1.001 0 00-.877-.06l-.119.058-3.298 1.889a.999.999 0 00-.496.75l-.007.117v2.11l-4.479-.004C2.455 16.32.25 14.017.25 11.198A5.299 5.299 0 012.916 6.6c.14-2.49 2.196-4.47 4.704-4.47.37 0 .737.045 1.1.133A7.558 7.558 0 0113.51.547z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M8.35 17.807l1.3.75L8.816 20H10.5v1.5H8.781l.868 1.503-1.298.75L7.5 22.28l-.85 1.473-1.3-.75.869-1.503H4.5V20h1.684l-.833-1.443 1.298-.75.851 1.474.85-1.474zm6.5-4.5l1.3.75-.833 1.443H17V17h-1.719l.868 1.503-1.299.75L14 17.78l-.85 1.473-1.3-.75.87-1.503H11v-1.5h1.684l-.833-1.443 1.298-.75L14 14.78l.85-1.473zM13.512.565a7.596 7.596 0 017.149 5.019 5.803 5.803 0 013.089 5.127c0 2.945-2.196 5.379-5.026 5.739l-.224.024v-1.507c2.108-.251 3.75-2.063 3.75-4.256a4.3 4.3 0 00-2.314-3.813l-.195-.095-.303-.138-.101-.317c-.816-2.563-3.157-4.284-5.825-4.284-1.42 0-2.79.5-3.888 1.415l-.216.188-.328.301-.422-.146a3.178 3.178 0 00-1.036-.176 3.21 3.21 0 00-2.806 1.665 3.382 3.382 0 00-.405 1.84l.031.4-.466.209a3.791 3.791 0 00-2.226 3.456c0 2.02 1.579 3.677 3.557 3.78L5.5 15h4v1.5h-4c-2.895 0-5.25-2.37-5.25-5.284a5.299 5.299 0 012.667-4.598c.14-2.49 2.197-4.472 4.705-4.472.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1614.2287cd75.js b/pr-preview/pr-186/assets/js/1614.2287cd75.js new file mode 100644 index 000000000..db6fcccd8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1614.2287cd75.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1614; +exports.ids = [1614]; +exports.modules = { + +/***/ 21614: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_light_dark_mode: () => (/* binding */ ActionLightDarkMode) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionLightDarkMode = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { id: "a", d: "M0 0h23.995v22.496H0z" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { transform: "translate(.005 .75)", fill: "none", "fill-rule": "evenodd" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("mask", { id: "b", fill: "#fff" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.671 17.339a6.241 6.241 0 01-1.423.169A6.248 6.248 0 1113.12 5.297a7.732 7.732 0 00-3.122 6.201 7.726 7.726 0 002.673 5.841zm5.075-12.09a6.248 6.248 0 00-6.248 6.249 6.248 6.248 0 1012.497 0 6.249 6.249 0 00-6.249-6.249zM4.708 16.727l-1.414 1.414a.749.749 0 101.061 1.06l1.414-1.414a.749.749 0 10-1.061-1.06zm6.54 2.269a.75.75 0 00-.75.75v2a.75.75 0 001.499 0v-2a.75.75 0 00-.749-.75zm-7.749-7.748a.75.75 0 00-.75-.75H.75a.75.75 0 000 1.5h1.999a.75.75 0 00.75-.75zM11.248 3.5a.75.75 0 00.749-.75v-2a.75.75 0 00-1.499 0v2c0 .414.336.75.75.75zm-6.54 2.269a.748.748 0 001.061 0 .749.749 0 000-1.06L4.355 3.295a.75.75 0 00-1.061 1.06l1.414 1.414z", fill: "#000", mask: "url(#b)" })))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M4.71 17.48l-1.414 1.413a.75.75 0 101.06 1.061l1.415-1.415a.749.749 0 10-1.061-1.06zm6.54 2.27a.75.75 0 00-.75.75v2a.75.75 0 001.5 0v-2a.75.75 0 00-.75-.75zm.195-3.01c-.065.002-.13.01-.195.01A4.756 4.756 0 016.5 12a4.756 4.756 0 014.75-4.75c.189 0 .374.013.556.035a7.833 7.833 0 011.327-1.246 6.25 6.25 0 10-1.883 12.21c.487 0 .959-.06 1.414-.167a7.815 7.815 0 01-1.22-1.343zM3.5 12a.75.75 0 00-.75-.75h-2a.75.75 0 000 1.5h2A.75.75 0 003.5 12zm7.749-7.75A.75.75 0 0012 3.5v-2a.75.75 0 00-1.5 0v2c0 .413.336.75.75.75zM17.75 6a6.25 6.25 0 100 12.499 6.25 6.25 0 000-12.5zm-13.04.52a.746.746 0 001.06 0 .749.749 0 000-1.06L4.357 4.043a.749.749 0 10-1.06 1.061L4.71 6.52z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionLightDarkMode.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16163.cc7628a2.js b/pr-preview/pr-186/assets/js/16163.cc7628a2.js new file mode 100644 index 000000000..dec7546b2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16163.cc7628a2.js @@ -0,0 +1,2 @@ +/*! For license information please see 16163.cc7628a2.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16163],{88114:(t,e,o)=>{o.d(e,{c:()=>s});var a,i,r,s=(a=function(t){!function(){var e={}.hasOwnProperty;function o(){for(var t=[],a=0;a{o.r(e),o.d(e,{scale_dropdown_select:()=>u,scale_dropdown_select_item:()=>b,scale_icon_action_hide_password:()=>g,scale_icon_action_sort:()=>m,scale_icon_content_sort_indicator_down:()=>v,scale_icon_content_sort_indicator_up:()=>f,scale_icon_service_settings:()=>x,scale_menu_flyout_item:()=>k,scale_pagination:()=>w,scale_progress_bar:()=>C,scale_switch:()=>P,scale_tag:()=>L,scale_text_field:()=>S});var a=o(90936),i=o(88114),r=o(94200),s=o(13299),l=o(91779);var n;!function(t){t.Close="Close",t.CloseSelect="CloseSelect",t.First="First",t.Last="Last",t.Next="Next",t.Open="Open",t.PageDown="PageDown",t.PageUp="PageUp",t.Previous="Previous",t.Select="Select",t.Type="Type"}(n||(n={}));const c=t=>{const e=t.getAttribute("disabled");return null!==e&&"false"!=`${e}`||"boolean"==typeof t.disable&&t.disable},d=t=>Array.from(t.children).filter((t=>"INPUT"!==t.tagName&&!1===t.hidden)).map((t=>{var e,o;return{label:t.textContent.trim(),value:null!==(e=t.getAttribute("value"))&&void 0!==e?e:(o=t,"string"==typeof o.value?o.value:null),disabled:c(t),ItemElement:(0,a.h)("span",{innerHTML:t.outerHTML})}}));function h(t=[],e){return t.filter((t=>!t.disabled&&0===t.label.toLowerCase().indexOf(e.toLowerCase())))}let p=null;const u=class{constructor(t){(0,a.r)(this,t),this.scaleChange=(0,a.c)(this,"scale-change",7),this.scaleFocus=(0,a.c)(this,"scale-focus",7),this.scaleBlur=(0,a.c)(this,"scale-blur",7),this.scaleKeydown=(0,a.c)(this,"scale-keydown",7),this.comboboxId="combobox",this.helperText="",this.invalid=!1,this.variant="informational",this.floatingStrategy="absolute",this.hideLabelVisually=!1,this.ariaLabelSelected="selected",this.hcmLabelDisabled="this field is disabled",this.options="",this.open=!1,this.currentIndex=-1,this.queryString="",this.queryTimeout=null,this.hasFocus=!1,this.selectOption=t=>{this.currentIndex=t,this.value=d(this.hostElement)[t].value,(0,l.e)(this,"scaleChange",{value:this.value})},this.handleKeyDown=t=>{var e;const{key:o}=t,a=d(this.hostElement),i=function(t,e){const{key:o,altKey:a,ctrlKey:i,metaKey:r}=t;if(!e&&["ArrowDown","ArrowUp","Enter"," "].includes(o))return n.Open;if("Home"===o)return n.First;if("End"===o)return n.Last;if(["Backspace","Clear"].includes(o)||1===o.length&&" "!==o&&!a&&!i&&!r)return n.Type;if(e){if("ArrowUp"===o&&a)return n.CloseSelect;if("ArrowDown"===o&&!a)return n.Next;switch(o){case"ArrowUp":return n.Previous;case"PageUp":return n.PageUp;case"PageDown":return n.PageDown;case"Escape":return n.Close;case"Enter":case" ":return n.CloseSelect}}}(t,this.open);switch((0,l.e)(this,"scaleKeydown",t),i){case n.Last:case n.First:this.setOpen(!0);case n.Next:case n.Previous:case n.PageUp:case n.PageDown:return t.preventDefault(),this.handleOptionChange(function(t,e,o){var a;const i=(t,e)=>{let a,i=t;do{if(i+=e,a=o[i],void 0===a)break}while(null==a?void 0:a.disabled);return a?i:t};let r;switch(e){case n.First:return(null===(a=o[0])||void 0===a?void 0:a.disabled)?i(-1,1):0;case n.Last:return r=i(o.length,-1),r===o.length?-1:r;case n.Previous:return r=i(t,-1===t?1:-1),r===o.length?-1:r;case n.Next:return i(t,1);case n.PageUp:return i(Math.max(t-10,-1),1);case n.PageDown:return r=i(Math.min(t+10,o.length),-1),r===o.length?-1:r;default:return t}}(this.currentIndex,i,a));case n.CloseSelect:if(t.preventDefault(),null===(e=a[this.currentIndex])||void 0===e?void 0:e.disabled)return;-1!==this.currentIndex&&this.selectOption(this.currentIndex);case n.Close:return t.preventDefault(),this.setOpen(!1);case n.Type:return this.buildQueryString(o);case n.Open:return t.preventDefault(),this.setOpen(!0)}},this.handleBlur=()=>{this.setOpen(!1),(0,l.e)(this,"scaleBlur")},this.handleFocus=()=>{(0,l.e)(this,"scaleFocus")},this.handleClick=()=>{p&&p!==this&&p.setOpen(!1),this.setOpen(!this.open),p=this;const t=d(this.hostElement).findIndex((({value:t})=>t===this.value));t>-1&&setTimeout((()=>{this.bringIntoView(t)}))}}valueChange(t){this.currentIndex=d(this.hostElement).findIndex((({value:e})=>e===t)),this.updateInputHidden(t)}connectedCallback(){(0,r.s)({source:this.hostElement,tag:"beta"}),this.currentIndex=d(this.hostElement).findIndex((({value:t})=>t===this.value))||-1}componentDidRender(){this.open&&("fixed"===this.floatingStrategy&&(this.listboxPadEl.style.width=`${this.comboEl.getBoundingClientRect().width}px`),(0,s.c)(this.comboEl,this.listboxPadEl,{placement:"bottom",strategy:this.floatingStrategy}).then((({x:t,y:e})=>{Object.assign(this.listboxPadEl.style,{left:`${t}px`,top:`${e}px`})})))}componentDidLoad(){this.appendInputHidden()}appendInputHidden(){const t=document.createElement("input");t.name=this.name,t.id=this.name,t.value=this.value,t.type="hidden",this.hostElement.appendChild(t),this.hiddenInput=t}updateInputHidden(t=this.value){this.hiddenInput.value=t}handleOptionChange(t){this.currentIndex=t,t>-1&&this.bringIntoView(t)}bringIntoView(t){const e=this.listboxEl.querySelectorAll("[role=option]");var o;(o=this.listboxEl)&&o.clientHeightr+i?e.scrollTop=a+o-i:s&&(e.scrollTop=a)}(e[t],this.listboxEl),function(t){const e=t.getBoundingClientRect(),o=0,a=0,i=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight;return e.top>=o&&e.left>=a&&e.bottom<=r&&e.right<=i}(e[t])||e[t].scrollIntoView({behavior:"smooth",block:"nearest"})}setOpen(t){this.open!==t&&(this.disabled||(this.open=t,this.open||(this.comboEl.scrollIntoView({behavior:"smooth",block:"nearest"}),this.comboEl.focus(),this.currentIndex=-1)))}handleOptionClick(t,e){t.stopPropagation(),d(this.hostElement)[e].disabled||(this.handleOptionChange(e),this.selectOption(e),this.setOpen(!1))}getSearchString(t){return"number"==typeof this.queryTimeout&&window.clearTimeout(this.queryTimeout),this.queryTimeout=window.setTimeout((()=>{this.queryString=""}),500),this.queryString+=t,this.queryString}buildQueryString(t){this.setOpen(!0);const e=this.getSearchString(t),o=function(t,e,o=0){const a=[...t.slice(o),...t.slice(0,o)],i=h(a,e)[0];if(i)return t.indexOf(i);if((r=e.split("")).every((t=>t===r[0]))){const o=h(a,e[0]);return t.indexOf(o[0])}var r;return-1}(d(this.hostElement),e,this.currentIndex+1);o>=0?this.handleOptionChange(o):(window.clearTimeout(this.queryTimeout),this.queryString="")}render(){var t;const e=null!==(t=d(this.hostElement).find((({value:t})=>t===this.value)))&&void 0!==t?t:{},o=e.ItemElement,i=""===e.value,r=`helper-message-${(0,l.g)()}`,s={"aria-describedBy":r};return(0,a.h)(a.a,null,(0,a.h)("div",{part:this.getBasePartMap()},(0,a.h)("div",{part:"combobox-container"},(0,a.h)("label",{id:`${this.comboboxId}-label`,part:"label"},this.label),(0,a.h)("div",Object.assign({ref:t=>this.comboEl=t,"aria-controls":`${this.comboboxId}-listbox`,"aria-expanded":this.open?"true":"false","aria-haspopup":"listbox","aria-labelledby":`${this.comboboxId}-label`,id:this.comboboxId,part:"combobox",role:"combobox",tabindex:this.disabled?"-1":"0",onBlur:this.handleBlur,onFocus:this.handleFocus,onClick:this.handleClick,onKeyDown:this.handleKeyDown},this.open?{"aria-activedescendant":(d(this.hostElement)[this.currentIndex]||{}).value}:{},this.helperText?s:{},this.invalid?{"aria-invalid":"true"}:{}),(0,a.h)("span",{part:"combobox-value"},i?"":o)),(0,a.h)("div",{part:"listbox-pad",ref:t=>this.listboxPadEl=t},(0,a.h)("div",{part:"listbox-scroll-container",onMouseDown:t=>{t.preventDefault()}},(0,a.h)("div",{ref:t=>this.listboxEl=t,part:"listbox",role:"listbox",id:`${this.comboboxId}-listbox`,"aria-labelledby":`${this.comboboxId}-label`,tabindex:"-1"},d(this.hostElement).map((({value:t,disabled:e,ItemElement:o},i)=>(0,a.h)("div",Object.assign({role:"option",part:this.getOptionPartMap(i,e),id:t,onClick:t=>{this.handleOptionClick(t,i)}},t===this.value?{"aria-selected":"true"}:{},e?{"aria-disabled":"true"}:{}),o,t===this.value?(0,a.h)("div",null,(0,a.h)("scale-icon-action-checkmark",{size:16}),(0,a.h)("span",{class:"sr-only"},this.ariaLabelSelected)):null)))))),(0,a.h)("div",{part:"icon"},this.open?(0,a.h)("scale-icon-navigation-collapse-up",{decorative:!0,size:20}):(0,a.h)("scale-icon-navigation-collapse-down",{decorative:!0,size:20}))),this.helperText&&(0,a.h)("scale-helper-text",{helperText:this.helperText,variant:this.invalid?"danger":this.variant,id:r}),this.disabled&&(0,a.h)("div",{class:"hcm-disabled"},this.hcmLabelDisabled)))}getBasePartMap(){const t=null!=this.value&&""!==this.value;return(0,i.c)("select",this.open&&"open",this.disabled&&"disabled",this.readonly&&"readonly",this.transparent&&"transparent",this.invalid&&"invalid",this.currentIndex>-1&&"steal-focus",t&&"animated",this.helperText&&"has-helper-text",this.floatingStrategy&&`strategy-${this.floatingStrategy}`,this.hideLabelVisually&&"hide-label")}getOptionPartMap(t,e){return(0,i.c)("option",t===this.currentIndex&&"current",e&&"disabled")}get hostElement(){return(0,a.g)(this)}static get watchers(){return{value:["valueChange"]}}};u.style=":host{--font-weight:var(--telekom-typography-font-weight-bold);--height:var(--telekom-spacing-composition-space-13);--color:var(--telekom-color-text-and-icon-standard);--color-disabled:var(--telekom-color-text-and-icon-disabled);--background-disabled:none;--background-hover:var(--telekom-color-ui-state-fill-hovered);--border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard);--border-color-hover:var(--telekom-color-ui-border-hovered);--border-color-focus:var(--telekom-color-ui-border-hovered);--border-color-disabled:var(--telekom-color-ui-border-disabled);--border-invalid:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-hovered);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--spacing-x:var(--telekom-spacing-composition-space-05);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--radius:var(--telekom-radius-standard);--spacing-x-for-helper-text:var(--telekom-spacing-composition-space-03);--transition-combobox:var(--transition);--background-combobox:var(--telekom-color-ui-state-fill-standard);--spacing-combobox:1.125rem\n calc(2rem - var(--telekom-spacing-composition-space-01)) 0.25rem\n calc(0.75rem - var(--telekom-spacing-composition-space-01));--spacing-y-meta:var(--telekom-spacing-composition-space-03);--color-meta:var(--telekom-color-text-and-icon-standard);--height-icon:20px;--color-icon:var(--telekom-color-text-and-icon-standard);--color-icon-hover:var(--telekom-color-text-and-icon-standard);--color-icon-active:var(--telekom-color-text-and-icon-standard);--transition-icon:var(--transition);--color-label:var(--telekom-color-text-and-icon-additional);--z-index-label:var(--scl-z-index-10);--transition-label:var(--transition);--transform-label:translate(var(--spacing-x), 0.875rem);--transform-label-animated:translate(\n var(--spacing-x),\n calc(0.25rem + var(--telekom-spacing-composition-space-01))\n );--background-listbox:var(--telekom-color-background-surface);--box-shadow-listbox:0 2px 4px 0 rgba(0, 0, 0, 0.1),\n 0 4px 16px 0 rgba(0, 0, 0, 0.1);--max-height-listbox:300px;--z-index-listbox:99}[part='combobox-container'] *,[part='combobox-container'] *::before,[part='combobox-container'] *::after{box-sizing:border-box}[part='combobox-container']{display:block;position:relative}[part='combobox']{width:100%;height:var(--height);margin:0;display:flex;align-items:center;outline:none;padding:var(--spacing-combobox);z-index:1;box-sizing:border-box;transition:var(--transition-combobox);font:var(--telekom-text-style-body);border-radius:var(--radius);border:var(--border);box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;appearance:none;-webkit-appearance:none;background-color:var(--background-combobox);color:var(--color)}[part='combobox-value']{overflow:hidden;text-overflow:ellipsis}[part~='select']:not([part~='disabled']) [part='combobox']:hover~[part='icon']{color:var(--color-icon-hover)}[part~='select']:not([part~='disabled']) [part='combobox']:active~[part='icon']{color:var(--color-icon-active)}[part~='select']:not([part~='disabled']):not([part~='invalid']) [part='combobox']:hover{border-color:var(--border-color-hover);background-color:var(--background-hover)}[part~='select']:not([part~='disabled'])[part~='invalid'] [part='combobox']:hover{background-color:var(--background-hover)}[part~='select']:not([part~='disabled']):not([part~='invalid']) [part='combobox']:focus{border-color:var(--border-color-focus)}[part~='select']:not([part~='disabled']):not([part~='steal-focus']) [part='combobox']:focus{outline:var(--focus-outline);outline-offset:1px}[part~='invalid'] [part='combobox']{border:var(--border-invalid)}[part~='transparent'] [part='combobox']{background-color:transparent}[part~='disabled'] [part='combobox']{cursor:not-allowed;border-color:var(--border-color-disabled);color:var(--color-disabled);background:var(--background-disabled)}[part='combobox_value']{width:calc(100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}[part='meta']{display:flex;justify-content:space-between;margin-top:var(--spacing-y-meta);color:var(--color-meta)}[part='icon']{top:50%;right:var(--spacing-x);position:absolute;transform:translateY(-50%);pointer-events:none;height:var(--height-icon);color:var(--color-icon);transition:var(--transition-icon)}[part~='disabled'] [part='icon']{color:var(--color-disabled)}[part='label']{width:calc(100% - 44px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;top:0;left:0;color:var(--color-label);display:inline-block;z-index:var(--z-index-label);position:absolute;transition:var(--transition-label);pointer-events:none;font:var(--telekom-text-style-ui);transform:var(--transform-label)}[part~='animated'] [part='label']{font:var(--telekom-text-style-small-bold);transform:var(--transform-label-animated)}[part~='disabled'] [part='label']{cursor:not-allowed;border-color:var(--border-color-disabled);color:var(--color-disabled);background:var(--background-disabled)}[part~='hide-label'] [part='combobox']{padding-top:0.3125rem}[part~='hide-label'] [part='label']{visibility:hidden}[part='listbox']{position:relative}[part='listbox-scroll-container']{max-height:var(--max-height-listbox);overflow-y:auto}[part='listbox-pad']{background:var(--background-listbox);box-shadow:var(--box-shadow-listbox);border-radius:var(--radius);padding:var(--radius) 0;margin-top:var(--telekom-spacing-composition-space-03);left:0;position:absolute;top:100%;width:100%;z-index:var(--z-index-listbox);display:none}[part~='open'] [part='listbox-pad']{display:block}[part~='strategy-fixed'] [part='listbox-pad']{position:fixed}[part~='transparent'] [part='listbox']{background-color:transparent}[part~='option']{color:var(--color)}[part~='option'][part~='disabled']{color:var(--color-disabled);cursor:not-allowed}[part~='option']:not([part~='disabled']):hover{background-color:var(--background-hover)}[part~='option'][part~='current']{outline:var(--focus-outline);outline-offset:-2px;border-radius:var(--radius)}[part~='option'][aria-selected='true']{padding-right:30px;position:relative}[part~='option'][aria-selected='true'] scale-icon-action-checkmark{position:absolute;right:var(--telekom-spacing-composition-space-05);top:var(--telekom-spacing-composition-space-05)}[part~='option'] scale-dropdown-select-item::part(base){padding:var(--telekom-spacing-composition-space-05)}[part~='has-helper-text'] [part~='combobox-container']{margin-bottom:var(--spacing-x-for-helper-text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.hcm-disabled{display:none}@media screen and (forced-colors: active), (-ms-high-contrast: active){[part='listbox-pad']{outline:var(--focus-outline);outline-offset:-2px;border-radius:var(--radius)}.hcm-disabled{display:block}}";const b=class{constructor(t){(0,a.r)(this,t)}render(){return(0,a.h)("div",{part:"base"},(0,a.h)("div",{part:"prefix"},(0,a.h)("slot",{name:"prefix"})),(0,a.h)("div",{part:"label"},(0,a.h)("slot",null)),(0,a.h)("div",{part:"suffix"},(0,a.h)("slot",{name:"suffix"})))}get hostElement(){return(0,a.g)(this)}};b.style="/*!*option*!*/[part~='base']{display:flex;justify-content:flex-start;align-items:center}[part~='prefix'],[part~='label'],[part~='suffix']{display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1}";const g=class{constructor(t){(0,a.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,a.h)(a.a,null,(0,a.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,a.h)("title",null,this.accessibilityTitle),(0,a.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,a.h)("g",null,(0,a.h)("path",{d:"M3.815 2.776l.085.074L21.15 20.1c.3.3.3.75 0 1.05a.722.722 0 01-.965.074l-.085-.074L2.85 3.9c-.3-.3-.3-.75 0-1.05a.722.722 0 01.965-.074zM4.2 7.35L5.25 8.4l-.018.017 2.423 2.423A4.67 4.67 0 007.5 12a4.5 4.5 0 004.5 4.5 4.67 4.67 0 00.874-.089l.286-.066 2.285 2.28-.015.005.57.57c-1.2.5-2.5.8-4 .8-4.108 0-6.987-2.283-9.1-4.68l-.364-.425-.35-.423-.334-.421-.476-.62-.726-.981L.3 12l.35-.45.595-.806C1.969 9.776 2.8 8.73 3.774 7.76l.426-.41zM12 4c4.108 0 6.987 2.283 9.1 4.68l.364.425.35.423.334.421.476.62.726.981.35.45-.35.45-.595.806c-.724.968-1.555 2.014-2.529 2.983l-.426.411-1.05-1.05.018-.017-2.423-2.423c.1-.379.152-.768.155-1.16A4.5 4.5 0 0012 7.5a4.67 4.67 0 00-.874.089l-.286.066-2.285-2.28.015-.005L8 4.8c1.2-.5 2.5-.8 4-.8zm-3 8.19l2.8 2.8a3 3 0 01-2.783-2.621L9 12.19zm3.2-3.18a3 3 0 012.783 2.621l.017.179-2.8-2.8z","fill-rule":"evenodd"})):(0,a.h)("g",null,(0,a.h)("path",{d:"M2.85 2.85a.722.722 0 01.965-.074l.085.074L21.15 20.1c.3.3.3.75 0 1.05a.722.722 0 01-.965.074l-.085-.074L2.85 3.9c-.3-.3-.3-.75 0-1.05zm1.35 4.5L5.25 8.4c-1.1 1.05-2.1 2.3-3.05 3.6l.578.778.39.506.397.494C5.766 16.458 8.287 18.5 12 18.5c.919 0 1.76-.115 2.527-.345l.323-.105L16 19.2c-1.2.5-2.5.8-4 .8-4.108 0-6.987-2.283-9.1-4.68l-.364-.425-.35-.423-.334-.421-.476-.62-.726-.981L.3 12l.35-.45.595-.806C1.969 9.776 2.8 8.73 3.774 7.76l.426-.41zM12 4c4.108 0 6.987 2.283 9.1 4.68l.364.425.35.423.334.421.476.62.726.981.35.45-.35.45-.595.806c-.724.968-1.555 2.014-2.529 2.983l-.426.411-1.05-1.05c1.1-1.05 2.1-2.3 3.05-3.6l-.578-.778-.39-.506-.397-.494C18.234 7.542 15.713 5.5 12 5.5c-.919 0-1.76.115-2.527.345l-.323.105L8 4.8c1.2-.5 2.5-.8 4-.8zm-4.35 6.85l5.5 5.5c-.35.1-.75.15-1.15.15-2.5 0-4.5-2-4.5-4.5 0-.32.032-.64.096-.934l.054-.216zM12 7.5c2.5 0 4.5 2 4.5 4.5 0 .32-.032.64-.096.934l-.054.216-5.5-5.5c.35-.1.75-.15 1.15-.15z","fill-rule":"evenodd"})))))}get hostElement(){return(0,a.g)(this)}};g.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const m=class{constructor(t){(0,a.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,a.h)(a.a,null,(0,a.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,a.h)("title",null,this.accessibilityTitle),(0,a.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,a.h)("g",null,(0,a.h)("path",{d:"M17.25 3.5c.647 0 1.18.492 1.244 1.122l.006.128V14h3.17l-4.42 6.75L12.83 14H16V4.75c0-.69.56-1.25 1.25-1.25zm-10.5-.25L11.17 10H8v9.25a1.25 1.25 0 01-2.494.128L5.5 19.25V10H2.33l4.42-6.75z","fill-rule":"evenodd"})):(0,a.h)("g",null,(0,a.h)("path",{d:"M17.25 4c.367 0 .691.294.743.651L18 4.75V14h3.65l-4.4 6.75-4.4-6.75h3.65V4.75c0-.4.35-.75.75-.75zm-10.5-.75l4.4 6.75H7.5v9.25c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L6 19.25V10H2.35l4.4-6.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,a.g)(this)}};m.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const v=class{constructor(t){(0,a.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,a.h)(a.a,null,(0,a.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,a.h)("title",null,this.accessibilityTitle),(0,a.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,a.h)("g",null,(0,a.h)("path",{d:"M6.584 9.5l5.417 5 5.416-5z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,a.g)(this)}};v.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const f=class{constructor(t){(0,a.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,a.h)(a.a,null,(0,a.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,a.h)("title",null,this.accessibilityTitle),(0,a.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,a.h)("g",null,(0,a.h)("path",{d:"M12 9.5l-5.417 5h10.834z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,a.g)(this)}};f.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const x=class{constructor(t){(0,a.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,a.h)(a.a,null,(0,a.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,a.h)("title",null,this.accessibilityTitle),(0,a.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,a.h)("g",null,(0,a.h)("path",{d:"M20.235 14.5L23 14v-4l-2.765-.5a1 1 0 01-.64-1.555l1.595-2.31-2.825-2.825-2.31 1.595a1 1 0 01-1.555-.64L14 1h-4l-.5 2.76a1 1 0 01-1.555.645L5.635 2.81 2.81 5.635l1.595 2.31a1 1 0 01-.64 1.555L1 10v4l2.76.5a1 1 0 01.645 1.555l-1.595 2.31 2.825 2.825 2.31-1.595a1 1 0 011.555.64L10 23h4l.5-2.765a1 1 0 011.555-.64l2.31 1.595 2.825-2.825-1.595-2.31a1 1 0 01.64-1.555zM12 15a3 3 0 110-6 3 3 0 010 6z","fill-rule":"evenodd"})):(0,a.h)("g",null,(0,a.h)("path",{d:"M14 1l.5 2.75a.992.992 0 001.448.71l.102-.06 2.3-1.6 2.85 2.85-1.6 2.3c-.378.567-.087 1.312.537 1.52l.113.03L23 10v4l-2.75.5a.992.992 0 00-.71 1.448l.06.102 1.6 2.3-2.85 2.85-2.3-1.6c-.567-.378-1.312-.087-1.52.537l-.03.113L14 23h-4l-.5-2.75c-.142-.661-.863-1.01-1.448-.71l-.102.06-2.3 1.6-2.85-2.85 1.6-2.3c.378-.567.087-1.312-.537-1.52l-.113-.03L1 14v-4l2.75-.5a.992.992 0 00.71-1.448L4.4 7.95l-1.6-2.3L5.65 2.8l2.3 1.6c.567.378 1.312.087 1.52-.537l.03-.113L10 1h4zm-1.25 1.5h-1.5l-.3 1.5c-.2 1.2-1.25 2.05-2.45 2.05-.438 0-.875-.115-1.246-.345L5.8 4.7 4.75 5.75l.9 1.3c.464.65.584 1.472.318 2.227L5.9 9.45c-.279.743-.902 1.27-1.67 1.462l-.18.038-1.55.3v1.5l1.55.25c.85.15 1.5.7 1.85 1.5a2.426 2.426 0 01-.149 2.247l-.101.153-.9 1.3 1.05 1.05 1.3-.9c.4-.3.9-.45 1.4-.45 1.145 0 2.154.774 2.418 1.889l.332 1.711h1.5l.3-1.55c.2-1.2 1.25-2.05 2.45-2.05.438 0 .875.115 1.246.345L18.2 19.25l1.05-1.05-.9-1.3c-.5-.7-.55-1.6-.25-2.3.279-.743.902-1.27 1.67-1.462l.18-.038 1.55-.3v-1.5l-1.55-.3c-.85-.15-1.5-.7-1.85-1.5a2.426 2.426 0 01.149-2.247l.101-.153.9-1.3-1.05-1.05-1.3.9c-.4.3-.9.45-1.4.45-1.145 0-2.154-.774-2.418-1.889L12.75 2.5zM12 9a3 3 0 110 6 3 3 0 010-6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,a.g)(this)}};x.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const k=class{constructor(t){(0,a.r)(this,t),this.scaleSelect=(0,a.c)(this,"scale-select",7),this.scaleSelectLegacy=(0,a.c)(this,"scaleSelect",7),this.cascade=!1,this.active=!1,this.checked=!1,this.disabled=!1,this.hasSlotSublist=!1}async triggerEvent(t,e=!0){const{key:o}=t;if(this.disabled)return;if("ArrowRight"===o&&!this.hasSlotSublist)return;if(this.hasSlotSublist){const t=this.hostElement.querySelector('[slot="sublist"]');return void(t.hasAttribute("opened")?t.removeAttribute("opened"):this.openSublist())}const a={eventType:t.type,key:o,item:this.hostElement,closeOnSelect:e,originalEvent:t};(0,l.e)(this,"scaleSelect",a)}connectedCallback(){this.hasSlotSublist=null!=this.hostElement.querySelector('[slot="sublist"]'),this.hasSlotSublist&&(this.cascade=!0)}openSublist(){const t=this.hostElement.querySelector('[slot="sublist"]');null!=t&&(t.trigger=()=>this.hostElement,t.direction="right",t.open())}getCssClassMap(){return(0,i.c)("menu-flyout-item",this.disabled&&"menu-flyout-item--disabled",null!=this.checkable&&"menu-flyout-item--checkable",this.active&&"menu-flyout-item--active")}render(){const t=this.checked?"true":"false";return(0,a.h)(a.a,{role:this.checkable?`menuitem${this.checkable}`:"menuitem","aria-checked":null!=this.checkable&&t,"aria-disabled":this.disabled?"true":void 0,tabindex:"-1"},this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("div",{class:this.getCssClassMap(),part:"base"},(0,a.h)("span",{part:"prefix",class:"menu-flyout-item__prefix"},null==this.checkable?(0,a.h)("slot",{name:"prefix"}):(0,a.h)("scale-icon-action-checkmark",{class:"menu-flyout-item__check",size:16})),(0,a.h)("span",{part:"label",class:"menu-flyout-item__label"},(0,a.h)("slot",null)),(0,a.h)("span",{part:"suffix",class:"menu-flyout-item__suffix"},this.cascade?(0,a.h)("scale-icon-navigation-right",{class:"menu-flyout-item__cascade",size:16}):(0,a.h)("slot",{name:"suffix"}))),(0,a.h)("slot",{name:"sublist"}))}get hostElement(){return(0,a.g)(this)}};k.style=":host{--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);display:block;position:relative;outline-color:transparent;padding-left:var(--telekom-spacing-composition-space-02);padding-right:var(--telekom-spacing-composition-space-02);--_min-width:fit-content;--_min-width-moz:-moz-fit-content}*{-webkit-tap-highlight-color:rgba(255, 255, 255, 0)}.menu-flyout-item{position:relative;display:flex;align-items:stretch;text-align:left;font-size:var(--telekom-typography-font-size-body);line-height:2.635em;padding:0\n calc(\n var(--telekom-spacing-composition-space-08) -\n var(--telekom-spacing-composition-space-02)\n );user-select:none;white-space:nowrap;border-radius:0;cursor:pointer;color:var(--telekom-color-text-and-icon-standard);max-width:calc(\n 100vw - 2 * var(--telekom-spacing-composition-space-08) - 2 * 10px\n );overflow:hidden;min-width:var(--_min-width-moz);min-width:var(--_min-width)}.menu-flyout-item:focus:not(.menu-flyout-item--disabled),.menu-flyout-item:hover:not(.menu-flyout-item--disabled){color:var(--telekom-color-text-and-icon-primary-hovered)}:host(:focus) .menu-flyout-item:not(.menu-flyout-item--disabled){color:var(--telekom-color-text-and-icon-standard)}:host(:focus) .menu-flyout-item:hover:not(.menu-flyout-item--disabled){color:var(--telekom-color-text-and-icon-primary-hovered)}:host(:focus){outline:none}:host(:focus) .menu-flyout-item{outline:var(--focus-outline);border-radius:var(--telekom-radius-small)}:host(:active) .menu-flyout-item:not(.menu-flyout-item--disabled){color:var(--telekom-color-text-and-icon-primary-pressed)}:host([aria-expanded='true']) .menu-flyout-item{color:var(--telekom-color-text-and-icon-primary-standard)}.menu-flyout-item--disabled{outline:none;color:var(--telekom-color-text-and-icon-disabled);cursor:not-allowed}:host([active])::before{content:'';display:block;position:absolute;top:0;left:0;height:100%;width:0;background-color:var(--telekom-color-primary-standard);border-left:var(--telekom-spacing-composition-space-02) solid transparent}.menu-flyout-item--active{color:var(--telekom-color-text-and-icon-primary-standard)}@media screen and (forced-colors: active), (-ms-high-contrast: active){.menu-flyout-item--disabled:not(.menu-flyout-item--disabled),.menu-flyout-item--active:not(.menu-flyout-item--disabled){color:white;stroke:white}}.menu-flyout-item__label{flex:1 1 0;overflow:hidden;text-overflow:ellipsis}.menu-flyout-item__prefix{flex:0 0 auto;display:flex;align-items:center}.menu-flyout-item__check,slot[name='prefix']::slotted(:last-of-type){margin-right:var(--telekom-spacing-composition-space-04)}.menu-flyout-item__check{visibility:hidden}:host([aria-checked='true']) .menu-flyout-item__check{visibility:visible}.menu-flyout-item__suffix{flex:0 0 auto;display:flex;align-items:center}.menu-flyout-item__cascade,slot[name='suffix']::slotted(:first-of-type){margin-left:var(--telekom-spacing-composition-space-06)}";const y="pagination",w=class{constructor(t){(0,a.r)(this,t),this.scalePagination=(0,a.c)(this,"scale-pagination",7),this.scalePaginationLegacy=(0,a.c)(this,"scalePagination",7),this.hideBorders=!1,this.hideBorder=!1,this.pageSize=10,this.startElement=0,this.totalElements=1,this.small=!1,this.ariaLabelFirstPage="Go to first page",this.ariaLabelNextPage="Go to next page",this.ariaLabelPreviousPage="Go to previous page",this.ariaLabelLastPage="Go to last page",this.maxWidth=100}componentWillLoad(){this.calculateWidth()}componentWillUpdate(){}componentDidRender(){!1!==this.hideBorders&&(0,r.s)({tag:"deprecated",message:'Property "hideBorders" is deprecated. Please use the "hideBorder" property!',type:"warn",source:this.hostElement}),!1!==this.small&&(0,r.s)({tag:"deprecated",message:'Property "small" is deprecated. Please use css overwrite!',type:"warn",source:this.hostElement}),this.size&&(0,r.s)({tag:"deprecated",message:'Property "size" is deprecated. Please use css overwrite!',type:"warn",source:this.hostElement})}componentDidLoad(){}componentDidUpdate(){}disconnectedCallback(){}calculateWidth(){this.maxWidth=9*(3*this.totalElements.toString().length+3)}goFirstPage(){this.startElement=0,this.emitUpdate("FIRST")}goPreviousPage(){this.startElement-=Math.min(this.pageSize,this.startElement),this.emitUpdate("PREVIOUS")}goNextPage(){this.startElement+=this.pageSize,this.emitUpdate("NEXT")}goLastPage(){const t=this.pageSize;this.startElement=Math.ceil((this.totalElements-t)/t)*t,this.emitUpdate("LAST")}emitUpdate(t){const e={startElement:this.startElement,direction:t};(0,l.e)(this,"scalePagination",e)}render(){const t=this.totalElements,e=this.startElement+1,o=Math.min(this.startElement+this.pageSize,t),i=1===e,r=o===t;return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("div",{part:this.getBasePartMap(),class:this.getCssClassMap()},(0,a.h)("div",{part:"info-responsive",class:`${y}__info-responsive`},(0,a.h)("span",null,e,"-",o)," ","/ ",t),(0,a.h)("div",{class:`${y}__button-wrapper`},(0,a.h)("div",{part:"info",class:`${y}__info`,style:{width:`${this.maxWidth}px`}},(0,a.h)("span",null,e,"-",o)," ","/ ",t),(0,a.h)("button",{class:`${y}__first-prompt`,part:"first-prompt",disabled:i,onClick:()=>this.goFirstPage(),"aria-label":this.ariaLabelFirstPage},(0,a.h)("scale-icon-navigation-double-left",{size:20,decorative:!0})),(0,a.h)("button",{class:`${y}__prev-prompt`,part:"prev-prompt",disabled:i,onClick:()=>this.goPreviousPage(),"aria-label":this.ariaLabelPreviousPage},(0,a.h)("scale-icon-navigation-left",{size:20,decorative:!0})),(0,a.h)("button",{class:`${y}__next-prompt`,part:"next-prompt",disabled:r,onClick:()=>this.goNextPage(),"aria-label":this.ariaLabelNextPage},(0,a.h)("scale-icon-navigation-right",{size:20,decorative:!0})),(0,a.h)("button",{class:`${y}__last-prompt`,part:"last-prompt",disabled:r,onClick:()=>this.goLastPage(),"aria-label":this.ariaLabelLastPage},(0,a.h)("scale-icon-navigation-double-right",{size:20,decorative:!0})))))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(t){const e="basePart"===t?"":`${y}--`;return(0,i.c)(y,(this.hideBorder||this.hideBorders)&&`${e}hide-borders`)}get hostElement(){return(0,a.g)(this)}static get watchers(){return{totalElements:["calculateWidth"]}}};w.style=":host{--color:var(--telekom-color-text-and-icon-standard);--radius:var(--telekom-radius-standard);--font-size:var(--telekom-typography-font-size-small);--border:1px solid var(--telekom-color-ui-faint);--color-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-active:var(--telekom-color-text-and-icon-primary-pressed);--color-button:var(--telekom-color-ui-subtle);--border-button:var(--border);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--radius-first-prompt:var(--radius) 0 0 var(--radius);--radius-last-prompt:0 var(--radius) var(--radius) 0;--radius-first-prompt-stack:0 0 0 var(--radius);--radius-last-prompt-stack:0 0 var(--radius) 0;--stroke-svg:var(--telekom-color-ui-extra-strong);--stroke-svg-high-contrast:#fff;--width-button:44px;--padding-info:var(--telekom-spacing-composition-space-04);--height-button:44px;--line-height-info:calc(var(--height-button) - 2px)}.pagination{display:flex;overflow:auto;flex-wrap:wrap}.pagination__info,.pagination__info-responsive{color:var(--color);text-align:center;font-size:var(--font-size);font-weight:var(--telekom-typography-font-weight-medium);line-height:var(--line-height-info);padding:0 var(--padding-info);border:var(--border);flex-shrink:0;border-left:0;border-right:0;white-space:nowrap;order:1}.pagination__info-responsive{display:none}.pagination__info span,.pagination__info-responsive span{color:var(--telekom-color-text-and-icon-primary-standard);font-weight:var(--telekom-typography-font-weight-bold)}button{display:flex;flex-shrink:0;justify-content:center;align-items:center;padding:0;margin:0;height:var(--height-button);width:var(--width-button);color:var(--color-button);background:none;border:var(--border-button)}button:focus{outline:var(--focus-outline);outline-offset:-3px}.pagination__first-prompt{border-radius:var(--radius-first-prompt);margin-right:-1px}.pagination__last-prompt{border-radius:var(--radius-last-prompt);margin-left:-1px;order:2}.pagination__next-prompt{order:2}button svg{display:block}button:not(:disabled){cursor:pointer}button:not(:disabled) svg{color:var(--stroke-svg)}button:disabled svg{color:var(--telekom-color-text-and-icon-disabled)}button:not(:disabled):hover{border-color:var(--telekom-color-primary-hovered);z-index:1}button:not(:disabled):hover svg{color:var(--color-hover)}button:not(:disabled):active{border-color:var(--color-active);z-index:1}button:not(:disabled):active svg{color:var(--color-active)}.pagination--hide-borders .pagination__info,.pagination--hide-borders .pagination__info-responsive{border:0}.pagination--hide-borders .pagination__info-responsive{border-bottom:var(--border)}.pagination--hide-borders button{border-radius:0;border-top-width:0;border-bottom-width:0}.pagination--hide-borders .pagination__first-prompt{border-left-color:transparent}.pagination--hide-borders .pagination__last-prompt{border-right-color:transparent}.pagination--hide-borders button:not(:disabled):hover{border-width:1px;border-color:var(--telekom-color-primary-hovered)}.pagination__button-wrapper{display:flex}@media screen and (forced-colors: active), (-ms-high-contrast: active){button:not(:disabled) svg{color:var(--stroke-svg-high-contrast)}}@media screen and (max-width: 639px){:host{width:100%}.pagination{flex-direction:column}.pagination__info-responsive{display:initial;order:0;overflow:auto;border-left:var(--border);border-right:var(--border);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;line-height:var(--line-height-info)}.pagination__info{display:none;line-height:var(--line-height-info)}.pagination__first-prompt{border-radius:var(--radius-first-prompt-stack)}.pagination__last-prompt{border-radius:var(--radius-last-prompt-stack)}.pagination__next-prompt{margin-left:-1px}button{flex:1;height:var(--height-button)}.pagination--hide-borders .pagination__first-prompt{border-left-width:0}.pagination--hide-borders .pagination__last-prompt{border-right-width:0}}";let _=0;const C=class{constructor(t){(0,a.r)(this,t),this.busy=!1,this.percentage=0,this.percentageStart=0,this.showStatus=!0,this.transitions=(t,e)=>`\n @keyframes showProgress {\n from {\n width: ${e}%;\n }\n to {\n width: ${t}%;\n }\n }\n `,this.progressStyle=()=>{const t=this.customColor?{"--background":this.customColor}:{};return Object.assign({"--progress":this.disabled?"100%":`${this.percentage}%`},t)}}componentWillLoad(){null==this.progressBarId&&(this.progressBarId="progress-bar-"+_++),this.disabled&&(this.showStatus=!1)}componentWillUpdate(){}disconnectedCallback(){}componentDidRender(){void 0!==this.customColor&&(0,r.s)({tag:"deprecated",message:'Property "customColor" is deprecated. \n Please use css variable "--background" to set the progress bar background color;\n e.g. ',type:"warn",source:this.hostElement})}render(){return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("style",null,this.transitions(this.percentage,this.percentageStart)),(0,a.h)("div",{part:this.getBasePartMap(),class:this.getCssClassMap()},(0,a.h)("div",{class:"progress-bar__top-container"},this.label?(0,a.h)("label",{part:"label",class:"progress-bar__label",htmlFor:this.progressBarId},this.label):(0,a.h)("span",null," "),!!this.showStatus&&!this.hasError&&this.percentage<=100&&100!==this.percentage&&(0,a.h)("div",{part:"status",class:"progress-bar__status","aria-hidden":"true"},this.percentage,"%"),this.hasError?(0,a.h)("div",{class:"progress-bar__icon"},(0,a.h)("scale-icon-alert-error",{size:16})):this.percentage>=100?(0,a.h)("div",{class:"progress-bar__icon"},(0,a.h)("scale-icon-action-success",{size:16})):null),(0,a.h)("div",{part:"wrapper",class:"progress-bar__wrapper"},(0,a.h)("div",{part:"outer",class:"progress-bar__outer",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.percentage,"aria-busy":this.busy,"aria-valuetext":`${this.percentage}%`,"aria-label":this.label,id:this.progressBarId},this.percentage>0&&(0,a.h)("div",{part:"inner",class:"progress-bar__inner",style:this.progressStyle()})),(0,a.h)("slot",{name:"icon"}))),!!this.statusDescription&&(0,a.h)("div",{part:"status-description",class:"progress-bar__status-description",role:"alert"},this.statusDescription),!this.mute&&(0,a.h)("span",{"aria-live":"polite",class:"progress-bar__aria-live"},this.percentage!==10*Math.round(this.percentage/10)?10*Math.round(this.percentage/10)+"%":null))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(t){const e="progress-bar",o="basePart"===t?"":`${e}--`;return(0,i.c)(e,this.hasError&&`${o}has-error`,this.disabled&&`${o}disabled`,this.percentage>=100&&`${o}completed`)}get hostElement(){return(0,a.g)(this)}};C.style=":host{--track-color:var(--telekom-color-ui-faint);--bar-color:var(--telekom-color-primary-standard);--icon-color-error:var(--telekom-color-text-and-icon-functional-danger);--track-color-error:var(--telekom-color-functional-danger-subtle);--bar-color-error:var(--telekom-color-functional-danger-standard);--icon-color-success:var(--telekom-color-text-and-icon-functional-success);--track-color-success:var(--telekom-color-functional-success-subtle);--bar-color-success:var(--telekom-color-functional-success-standard);--bar-color-disabled:var(--telekom-color-ui-disabled);--color-disabled:var(--telekom-color-text-and-icon-disabled);--progress-bar-outer-size:6px;--progress-bar-inner-size:var(--telekom-spacing-composition-space-03);--font-label:var(--telekom-text-style-ui);--color-label:var(--telekom-color-text-and-icon-standard);--color-status-description:var(--telekom-color-text-and-icon-additional);--font-status-description:var(--telekom-text-style-small-bold)}.progress-bar{width:100%;max-width:30rem}.progress-bar--disabled{cursor:not-allowed}.progress-bar__top-container{display:flex;justify-content:space-between;align-items:center}.progress-bar--disabled .progress-bar__label,.progress-bar--disabled .progress-bar__status{color:var(--color-disabled)}.progress-bar__label{display:block;padding:var(--telekom-spacing-composition-space-05) 0;color:var(--color-label);font:var(--font-label)}.progress-bar__wrapper{width:100%;display:flex;box-sizing:border-box;align-items:center}.progress-bar__outer{width:100%;height:var(--progress-bar-outer-size);margin-left:0;overflow:hidden;position:relative;border-radius:var(--telekom-radius-pill);background:var(--track-color)}.progress-bar__inner{position:absolute;top:0;left:0;width:var(--progress, 0);height:var(--progress-bar-inner-size);display:flex;align-items:center;white-space:nowrap;justify-content:flex-end;border-radius:var(--telekom-radius-pill);border:1px solid transparent;background:var(--bar-color);transition:width var(--telekom-motion-duration-immediate)\n var(--telekom-motion-easing-standard)}.progress-bar--disabled .progress-bar__inner{background:var(--bar-color-disabled)}.progress-bar__status{padding:var(--telekom-spacing-composition-space-05) 0;font:var(--font-label);font-variant-numeric:tabular-nums}.progress-bar--completed .progress-bar__icon{color:var(--icon-color-success)}.progress-bar--completed .progress-bar__outer{background:var(--track-color-success)}.progress-bar--completed .progress-bar__inner{background:var(--bar-color-success)}.progress-bar--has-error .progress-bar__icon{color:var(--icon-color-error)}.progress-bar--has-error .progress-bar__outer{background:var(--track-color-error)}.progress-bar--has-error .progress-bar__inner{background:var(--bar-color-error)}.progress-bar__status-description{color:var(--color-status-description);font:var(--font-status-description);margin-top:var(--telekom-spacing-composition-space-04)}.progress-bar__aria-live{clip:rect(0 0 0 0);width:1px;border:0;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute}";let z=0;const E=(0,l.c)(":focus-visible"),P=class{constructor(t){(0,a.r)(this,t),this.scaleChange=(0,a.c)(this,"scale-change",7),this.scaleChangeLegacy=(0,a.c)(this,"scaleChange",7),this.checked=!1,this.disabled=!1,this.size="large"}componentWillLoad(){null==this.inputId&&(this.inputId="switch-"+z++)}render(){return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("div",{class:this.getCssClassMap()},(0,a.h)("label",{id:`${this.inputId}-label`,class:"switch__wrapper"},(0,a.h)("input",{type:"checkbox",name:this.name,class:"switch__control",checked:this.checked,disabled:this.disabled,"aria-labelledby":`${this.inputId}-label`,id:this.inputId,onChange:t=>{this.checked=t.target.checked,(0,l.e)(this,"scaleChange",{value:this.checked})}}),(0,a.h)("span",{class:"switch__toggle","aria-hidden":"true"},(0,a.h)("span",{class:"switch__thumb"},(0,a.h)("scale-icon-action-checkmark",{size:12,decorative:!0,selected:!0})),(0,a.h)("span",{class:"switch__io-text"},(0,a.h)("span",null,this.checked?"I":"0"))),(0,a.h)("span",{class:"switch__toggle--overlay","aria-hidden":"true"}),this.label&&(0,a.h)("span",{class:"switch__label-text"},this.label))))}getCssClassMap(){return(0,i.c)("switch",this.checked&&"switch--checked",this.disabled&&"switch--disabled",this.size&&`switch--size-${this.size}`,E&&"switch--focus-visible-supported",!E&&"switch--focus-visible-not-supported")}};P.style="scale-switch{--width:42px;--height:24px;--offset:2px;--radius:1em;--transition-duration:var(--telekom-motion-duration-immediate);--transition-easing:var(--telekom-motion-easing-standard);--shadow-thumb:0 0 2px 0 rgba(0, 0, 0, 0.24), 0 2px 4px 0 rgba(0, 0, 0, 0.24),\n 0 4px 12px 0 rgba(0, 0, 0, 0.26);--spacing-x-label:var(--telekom-spacing-composition-space-04);--font-label:var(--telekom-text-style-ui);--font-io-text:var(--telekom-text-style-small-bold);--color-label:var(--telekom-color-text-and-icon-standard)}.switch{--_background:var(--telekom-color-ui-faint);--_color-thumb:var(--telekom-color-ui-white, #fff);--_overlay-background:transparent;display:inline-block;position:relative}.switch__control{position:absolute;margin:0;top:0;width:var(--width);height:var(--height);opacity:0}.switch__wrapper{display:flex;align-items:center;cursor:pointer}.switch__toggle{position:relative;width:var(--width);height:var(--height);background:var(--_background);border-radius:var(--radius);transition-property:background;transition-duration:var(--transition-duration);transition-timing-function:var(--transition-easing)}.switch__toggle--overlay{position:absolute;width:var(--width);height:var(--height);border-radius:var(--radius);background:var(--_overlay-background)}[data-platform='android'] .switch__toggle--overlay{display:none}.switch:hover{--_overlay-background:var(--telekom-color-ui-state-fill-hovered)}.switch:active{--_overlay-background:var(--telekom-color-ui-state-fill-pressed)}.switch--checked{--_background:var(--telekom-color-primary-standard)}[data-platform='android'] .switch.switch--checked{--_background:var(--telekom-color-primary-standard);--_color-thumb:var(--telekom-color-ui-white)}[data-platform='android'] .switch{--_color-thumb:var(--telekom-color-ui-strong)}[data-platform='android'] .switch:hover{--_background:var(--telekom-color-ui-faint)}[data-platform='android'] .switch:active{--_background:var(--telekom-color-ui-faint)}[data-platform='android'] .switch:hover{--_color-thumb:var(--telekom-color-ui-extra-strong)}[data-platform='android'] .switch:active{--_color-thumb:var(--telekom-color-ui-extra-strong)}[data-platform='android'] .switch--checked:active,[data-platform='android'] .switch--checked:hover{--_color-thumb:var(--telekom-color-ui-white)}[data-platform='android'] .switch--checked:hover,.switch--checked:hover{--_background:var(--telekom-color-primary-hovered)}[data-platform='android'] .switch--checked:active,.switch--checked:active{--_background:var(--telekom-color-primary-pressed)}[data-platform='android'] .switch--disabled{--_background:var(--telekom-color-ui-faint);--_color-thumb:var(--telekom-color-ui-border-disabled)}[data-platform='android'] .switch--disabled:hover{--_color-thumb:var(--telekom-color-ui-border-disabled);--_background:var(--telekom-color-ui-faint)}[data-platform='android'] .switch--checked.switch--disabled:hover{--_background:var(--telekom-color-ui-border-disabled);--_color-thumb:var(--telekom-color-ui-faint)}.switch--disabled,.switch--disabled:hover,.switch--disabled:active{--_background:var(--telekom-color-ui-disabled);--_color-thumb:var(--telekom-color-ui-faint);--_overlay-background:transparent}.switch--checked .switch--disabled,.switch--checked .switch--disabled:hover,.switch--checked .switch--disabled:active{--_background:var(--telekom-color-ui-faint);--_color-thumb:var(--telekom-color-ui-disabled);box-shadow:var(--telekom-shadow-raised-standard);--_overlay-background:transparent}[data-platform='android'] .switch--disabled.switch--checked{--_background:var(--telekom-color-ui-border-disabled);--_color-thumb:var(--telekom-color-ui-faint)}.switch--disabled .switch__wrapper{cursor:not-allowed}.switch--disabled .switch__thumb{box-shadow:var(--telekom-shadow-raised-standard)}.switch--size-large{--width:56px;--height:32px}.switch--focus-visible-not-supported :focus~.switch__toggle,:focus-visible~.switch__toggle{outline:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-focus-standard);outline-offset:var(--telekom-spacing-composition-space-01)}.switch__thumb{--_size:calc(var(--height) - var(--offset) * 2);position:relative;z-index:2;box-sizing:border-box;width:var(--_size);height:var(--_size);aspect-ratio:1 / 1;background:var(--_color-thumb);border-radius:50%;box-shadow:var(--shadow-thumb);margin:var(--offset);transition-property:margin, width, height, background, color;transition-duration:var(--transition-duration);transition-timing-function:var(--transition-easing);color:transparent;border:1px solid rgba(0, 0, 0, 0.04);display:inline-block}.switch--checked .switch__thumb{margin-left:1em;margin-inline-start:calc(var(--width) - var(--height) + var(--offset))}.switch__io-text{position:absolute;z-index:1;top:0;left:0;display:flex;justify-content:center;align-items:center;width:50%;height:var(--height);margin-left:calc(50% - var(--offset));font:var(--font-io-text);line-height:var(--telekom-typography-line-spacing-none)}.switch--size-large .switch__io-text{margin-top:1px;font:var(--telekom-text-style-caption-bold)}.switch--checked .switch__io-text{margin-left:var(--offset);color:var(--telekom-color-text-and-icon-white-standard)}.switch--disabled .switch__io-text{color:var(--telekom-color-text-and-icon-disabled)}.switch__label-text{font:var(--font-label);margin-inline-start:var(--spacing-x-label);color:var(--color-label)}[data-platform='android'] scale-switch{--width:56px;--height:32px;--offset:7px}[data-platform='android'] .switch__thumb{width:18px;height:18px}[data-platform='android'] scale-switch:not([disabled]):active .switch__thumb{width:28px;height:28px;--offset:2px}[data-platform='android'] .switch--checked .switch__thumb{width:24px;height:24px;--offset:4px}[data-platform='android'] .switch__thumb{display:flex;justify-content:center;align-items:center;box-shadow:none}scale-switch scale-icon-action-success{display:none !important}[data-platform='android'] .switch--checked scale-icon-action-success{position:absolute;display:inline-block !important;margin-top:2px;margin-left:1px}[data-platform='android'] .switch--checked .switch__thumb{color:var(--_background)}[data-platform='android'] .switch__io-text{display:none}[data-platform='android'] .switch--checked .switch__thumb{color:var(--telekom-color-primary-standard)}[data-platform='android'] .switch--disabled .switch__thumb{color:var(--telekom-color-ui-strong)}@media screen and (forced-colors: active), (-ms-high-contrast: active){.switch__toggle{border:1px solid}scale-icon-action-checkmark{visibility:hidden !important}}";const L=class{constructor(t){(0,a.r)(this,t),this.scaleClose=(0,a.c)(this,"scale-close",7),this.scaleCloseLegacy=(0,a.c)(this,"scaleClose",7),this.type="standard",this.color="standard",this.href="",this.target="_self",this.dismissable=!1,this.disabled=!1,this.dismissText="dismiss",this.handleClose=t=>{t.preventDefault(),t.stopPropagation(),this.disabled||(0,l.e)(this,"scaleClose",t)}}componentWillUpdate(){}disconnectedCallback(){}render(){const t=this.href&&!this.disabled?"a":"span",e=this.href?{href:this.href,target:this.target}:{};return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)(t,Object.assign({part:this.getBasePartMap(),class:this.getCssClassMap()},e),(0,a.h)("slot",null),this.dismissable&&(0,a.h)("button",{part:"button-dismissable",disabled:this.disabled,"aria-label":this.dismissText,onClick:this.handleClose},(0,a.h)("scale-icon-action-close",{part:"icon-dismissable",size:16}))))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(t){const e="basePart"===t?"":"tag--";return(0,i.c)("basePart"===t?"base":"tag",this.size&&`${e}size-${this.size}`,this.type&&`${e}type-${this.type}`,this.color&&`${e}color-${this.color}`,!!this.href&&`${e}link`,!!this.dismissable&&`${e}dismissable`,!!this.disabled&&`${e}disabled`)}};L.style=":host{--background:var(--telekom-color-ui-faint);--color:var(--telekom-color-text-and-icon-standard);--font:var(--telekom-text-style-caption-bold);--radius:2px;--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--icon-color:var(--telekom-color-text-and-icon-additional);--icon-color-hover:var(--color);--background-disabled:var(--telekom-color-ui-faint);--color-disabled:var(--telekom-color-text-and-icon-disabled);--spacing-dismissable:var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-03);--spacing-dismissable-small:var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-03);--height:24px;--height-small:20px;--border-button-dismissable-focus:1px solid transparent;--box-shadow-button-dismissable-focus:var(--box-shadow-focus);--background-button-dismissable-hover:var(\n --telekom-color-ui-state-fill-hovered\n );--background-button-standard-strong-dismissible-hover:var(\n --telekom-color-ui-state-fill-hovered-inverted\n );--background-button-standard-dismissible-hover:var(\n --telekom-color-ui-state-fill-hovered\n );--background-button-dismissable-active:var(\n --telekom-color-ui-state-fill-pressed\n );--height-button-dismissable:20px;--width-button-dismissable:20px;--height-button-dismissable-small:16px;--width-button-dismissable-small:16px;--spacing-small:0 var(--telekom-spacing-composition-space-04);--font-size-small:var(--telekom-typography-font-size-small);--line-height-small:var(--telekom-typography-line-spacing-loose)}.tag{display:inline-flex;outline:none;padding:0 8px;text-align:center;transition:all 0.15s ease-in-out;align-items:center;white-space:nowrap;border-radius:var(--telekom-radius-small);vertical-align:baseline;justify-content:center;font:var(--font);line-height:1;background:var(--background);color:var(--color);cursor:default;height:var(--height)}.tag scale-icon-action-close{color:var(--icon-color)}.tag:not(.tag--disabled) scale-icon-action-close:hover{color:var(--icon-color-hover)}.tag::slotted(*){padding:100px}.tag--dismissable{padding:0 0 0 8px}.tag--dismissable button{border:none;cursor:pointer;height:var(--height-button-dismissable);width:var(--width-button-dismissable);margin:0;outline:none;padding:0;background:transparent;margin:var(--spacing-dismissable);border-radius:var(--radius);align-items:center}.tag--dismissable scale-icon-action-close{display:flex !important;align-items:center;justify-content:center}.tag--dismissable button:focus{justify-content:center;outline:var(--focus-outline);outline-offset:1px}.tag--dismissable:not(.tag--disabled) button:hover{background:var(--background-button-dismissable-hover)}.tag--dismissable.tag--color-standard:not(.tag--disabled) button:hover{background:var(--background-button-standard-dismissible-hover)}.tag--dismissable.tag--type-strong.tag--color-standard:not(.tag--disabled) button:hover{background:var(--background-button-standard-strong-dismissible-hover)}.tag--dismissable button:active{background:var(--background-button-dismissable-active)}.tag--dismissable.tag--color-standard button:active{background:var(--background-button-standard-dismissible-hover)}.tag--dismissable.tag--type-strong.tag--color-standard button:active{background:var(--background-button-standard-strong-dismissible-hover)}.tag--size-small{font-size:var(--font-size-small);padding:0 6px;height:var(--height-small)}.tag--size-small.tag--dismissable{padding-right:0px}.tag--size-small.tag--dismissable button{height:var(--height-button-dismissable-small);width:var(--width-button-dismissable-small);margin:var(--spacing-dismissable-small)}.tag--disabled{background-color:var(--telekom-color-ui-faint) !important;color:var(--color-disabled) !important;pointer-events:none}.tag--disabled scale-icon-action-close{color:var(--color-disabled) !important;pointer-events:none}.tag--link{text-decoration:none}.tag--link:focus{outline:var(--focus-outline)}.tag--link{background:var(--background-secondary)}.tag--link:hover{background:var(--background-secondary)}.tag--type-standard.tag--color-cyan{background-color:var(--telekom-color-additional-cyan-subtle);color:var(--telekom-color-text-and-icon-on-subtle-cyan)}.tag--type-standard.tag--color-cyan.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-cyan)}.tag--type-standard.tag--color-yellow{background-color:var(--telekom-color-additional-yellow-subtle);color:var(--telekom-color-text-and-icon-on-subtle-yellow)}.tag--type-standard.tag--color-yellow.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-yellow)}.tag--type-standard.tag--color-green{background-color:var(--telekom-color-functional-success-subtle);color:var(--telekom-color-text-and-icon-on-subtle-success)}.tag--type-standard.tag--color-green.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-success)}.tag--type-standard.tag--color-orange{background-color:var(--telekom-color-functional-warning-subtle);color:var(--telekom-color-text-and-icon-on-subtle-warning)}.tag--type-standard.tag--color-orange.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-warning)}.tag--type-standard.tag--color-red{background-color:var(--telekom-color-functional-danger-subtle);color:var(--telekom-color-text-and-icon-on-subtle-danger)}.tag--type-standard.tag--color-red.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-danger)}.tag--type-standard.tag--color-violet{background-color:var(--telekom-color-additional-violet-subtle);color:var(--telekom-color-text-and-icon-on-subtle-violet)}.tag--type-standard.tag--color-violet.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-violet)}.tag--type-standard.tag--color-brown{background-color:var(--telekom-color-additional-brown-subtle);color:var(--telekom-color-text-and-icon-on-subtle-brown)}.tag--type-standard.tag--color-brown.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-brown)}.tag--type-standard.tag--color-olive{background-color:var(--telekom-color-additional-olive-subtle);color:var(--telekom-color-text-and-icon-on-subtle-olive)}.tag--type-standard.tag--color-olive.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-olive)}.tag--type-standard.tag--color-teal{background-color:var(--telekom-color-additional-teal-subtle);color:var(--telekom-color-text-and-icon-on-subtle-teal)}.tag--type-standard.tag--color-teal.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-on-subtle-teal)}.tag--type-strong.tag--color-standard{background-color:var(--telekom-color-ui-extra-strong);color:var(--telekom-color-text-and-icon-inverted-standard)}.tag--type-strong.tag--color-standard.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-inverted-additional)}.tag--type-strong.tag--color-cyan{background-color:var(--telekom-color-additional-cyan-400);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-cyan.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-yellow{background-color:var(--telekom-color-additional-yellow-400);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-yellow.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-green{background-color:var(--telekom-color-functional-success-standard);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-green.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-orange{background-color:var(--telekom-color-functional-warning-standard);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-orange.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-red{background-color:var(--telekom-color-functional-danger-standard);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-red.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-violet{background-color:var(--telekom-color-additional-violet-300);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-violet.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-brown{background-color:var(--telekom-color-additional-brown-400);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-brown.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-olive{background-color:var(--telekom-color-additional-olive-400);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-olive.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}.tag--type-strong.tag--color-teal{background-color:var(--telekom-color-additional-teal-400);color:var(--telekom-color-text-and-icon-black-standard)}.tag--type-strong.tag--color-teal.tag--dismissable scale-icon-action-close{color:var(--telekom-color-text-and-icon-black-additional)}";const S=class{constructor(t){(0,a.r)(this,t),this.scaleInput=(0,a.c)(this,"scale-input",7),this.scaleInputLegacy=(0,a.c)(this,"scaleInput",7),this.scaleChange=(0,a.c)(this,"scale-change",7),this.scaleChangeLegacy=(0,a.c)(this,"scaleChange",7),this.scaleFocus=(0,a.c)(this,"scale-focus",7),this.scaleFocusLegacy=(0,a.c)(this,"scaleFocus",7),this.scaleBlur=(0,a.c)(this,"scale-blur",7),this.scaleBlurLegacy=(0,a.c)(this,"scaleBlur",7),this.scaleKeyDown=(0,a.c)(this,"scale-keydown",7),this.scaleKeyDownLegacy=(0,a.c)(this,"scaleKeydown",7),this.type="text",this.inputModeType="text",this.name="",this.label="",this.helperText="",this.status="",this.invalid=!1,this.variant="informational",this.placeholder="",this.value="",this.step="1",this.hideLabelVisually=!1,this.experimentalControlled=!1,this.hasFocus=!1,this.internalId=(0,l.g)(),this.handleInput=t=>{const e=t.target;this.experimentalControlled&&(this.hostElement.querySelector("input").value=String(this.value),this.forceUpdate=String(Date.now())),e&&(this.value=e.value||"",this.emitChange()),(0,l.e)(this,"scaleInput",t)},this.handleChange=t=>{const e=t.target;e&&(this.value=e.value||"",this.emitChange())},this.handleFocus=()=>{(0,l.e)(this,"scaleFocus"),this.hasFocus=!0},this.handleBlur=()=>{(0,l.e)(this,"scaleBlur"),this.hasFocus=!1},this.handleKeyDown=t=>{(0,l.e)(this,"scaleKeyDown",t)}}componentWillLoad(){null==this.inputId&&(this.inputId="input-text-field-"+this.internalId)}componentDidRender(){const t=null==this.value?"":this.value.toString(),e=this.hostElement.querySelector("input");this.experimentalControlled&&e.value.toString()!==t&&(e.value=t),""!==this.status&&(0,r.s)({tag:"deprecated",message:'Property "status" is deprecated. Please use the "invalid" property!',type:"warn",source:this.hostElement}),this.size&&(0,r.s)({tag:"deprecated",message:'Property "size" is deprecated. Please use css overwrites for a small version!',type:"warn",source:this.hostElement})}emitChange(){(0,l.e)(this,"scaleChange",{value:null==this.value?this.value:this.value.toString()})}render(){const t="error"===this.status||this.invalid?{"aria-invalid":"true"}:{},e=`helper-message-${this.internalId}`,o={"aria-describedBy":e},i={"aria-details":this.ariaDetailedId};return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("div",{class:this.getCssClassMap()},(0,a.h)("label",{class:"text-field__label",htmlFor:this.inputId},this.label),(0,a.h)("input",Object.assign({type:this.type,inputMode:this.inputModeType,class:"text-field__control",value:this.value},this.name?{name:this.name}:{},this.inputAutofocus?{autofocus:"true"}:{},{required:this.required,minLength:this.minLength,maxLength:this.maxLength,min:this.min,max:this.max,id:this.inputId,list:this.list,onInput:this.handleInput,onChange:this.handleChange,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown},this.placeholder&&!this.readonly?{placeholder:this.placeholder}:{},{disabled:this.disabled,readonly:this.readonly,autocomplete:this.inputAutocomplete},i,t,this.helperText?o:{},["number","date","month","week","time","datetime-local"].includes(this.type)?{step:this.step}:{})),(!!this.helperText||!!this.counter)&&(0,a.h)("div",{class:"text-field__meta","aria-live":"polite","aria-relevant":"additions removals"},this.helperText&&(0,a.h)("scale-helper-text",{id:e,helperText:this.helperText,variant:this.invalid?"danger":this.variant}),this.counter&&(0,a.h)("div",{class:"text-field__counter"},this.value?String(this.value).length:0," /"," ",this.maxLength))))}getCssClassMap(){const t=null!=this.value&&""!==this.value||["date","month","week","time","datetime-local"].includes(this.type);return(0,i.c)("text-field",this.type&&`text-field--type-${this.type}`,this.hasFocus&&"text-field--has-focus",this.disabled&&"text-field--disabled",this.transparent&&"text-field--transparent",this.status&&`text-field--status-${this.status}`,this.invalid&&"text-field--variant-danger",this.variant&&`text-field--variant-${this.variant}`,this.helperText&&"text-field--helper-text",this.readonly&&"text-field--readonly",this.hideLabelVisually&&"text-field--hide-label",t&&"animated")}get hostElement(){return(0,a.g)(this)}};S.style="scale-text-field{--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--radius:var(--telekom-radius-standard);--border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard);--border-error:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard);--border-success:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-success-standard);--border-warning:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-warning-standard);--border-color-hover:var(--telekom-color-ui-border-hovered);--border-color-focus:var(--telekom-color-ui-border-hovered);--border-color-disabled:var(--telekom-color-ui-border-disabled);--background-color-hover:var(--telekom-color-ui-state-fill-hovered);--background-color-disabled:none;--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--height:44px;--spacing-x:var(--telekom-spacing-composition-space-05);--color-disabled:var(--telekom-color-text-and-icon-disabled);--background-disabled:none;--border-color-readonly:var(--telekom-color-ui-border-disabled);--background-readonly:var(--telekom-color-ui-disabled);--font-weight-meta:var(--telekom-line-weight-bold);--font-size-meta:var(--telekom-typography-font-size-small);--line-height-meta:var(--telekom-typography-line-spacing-standard);--spacing-y-meta:var(--telekom-spacing-composition-space-03);--color-meta:var(--telekom-color-text-and-icon-standard);--color-meta-error:var(--telekom-color-text-and-icon-functional-danger);--spacing-control:1.125rem\n calc(2rem - var(--telekom-spacing-composition-space-01)) 0.25rem\n calc(0.75rem - var(--telekom-spacing-composition-space-01));--transition-control:var(--transition);--background-control:var(--telekom-color-ui-state-fill-standard);--margin-bottom-control:var(--telekom-spacing-composition-space-03);--transition-counter:var(--transition);--color-counter-error:var(--color-meta-error);--font-size-helper-text:var(--telekom-typography-font-size-small);--line-height-helper-text:1.35;--font-weight-helper-text:var(--telekom-typography-font-weight-bold);--color-helper-text:var(\n --telekom-color-text-and-icon-functional-informational\n );--color-helper-text-error:var(--color-meta-error);--color-helper-text-success:var(\n --telekom-color-text-and-icon-functional-success\n );--color-helper-text-warning:var(\n --telekom-color-text-and-icon-functional-warning\n );--color-helper-text-neutral:var(--telekom-color-text-and-icon-additional);--helper-text-icon-size:11px;--transition-placeholder:var(--transition);--color-placeholder:var(--telekom-color-text-and-icon-additional);--color-label:var(--telekom-color-text-and-icon-additional);--color-label-readonly:var(--telekom-color-text-and-icon-standard);--z-index-label:var(--scl-z-index-10);--transition-label:var(--transition)}.text-field{position:relative}.text-field .text-field__control{width:100%;height:var(--height);margin:0;display:flex;outline:none;padding:var(--spacing-control);z-index:1;box-sizing:border-box;transition:var(--transition-control);font:var(--telekom-text-style-body);border-radius:var(--radius);border:var(--border);background-color:var(--background-control);color:var(--color-meta)}.text-field--hide-label .text-field__control{padding:5px var(--telekom-spacing-composition-space-12) 5px\n calc(var(--spacing-x) - 1px)}.text-field--hide-label .text-field__label{visibility:hidden}.text-field.text-field--helper-text .text-field__control{margin-bottom:var(--margin-bottom-control)}.text-field .text-field__counter{display:flex;transition:var(--transition-counter);margin-left:auto;justify-content:flex-end;font:var(--telekom-text-style-small);color:var(--telekom-color-text-and-icon-standard)}.text-field scale-helper-text{--color-informational:var(--color-helper-text);--color-warning:var(--color-helper-text-warning);--color-danger:var(--color-helper-text-error);--color-success:var(--color-helper-text-success);--color-neutral:var(--color-helper-text-neutral);--font-size:var(--font-size-helper-text);--font-weight:var(--font-weight-helper-text);--line-height:var(--line-height-helper-text);--icon-size-helper-text:var(--helper-text-icon-size);font-weight:var(--telekom-typography-font-weight-bold);display:flex}.text-field .text-field__meta{display:flex;justify-content:space-between;margin-top:var(--spacing-y-meta);color:var(--color-meta)}.text-field:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:hover{border-color:var(--border-color-hover);background-color:var(--background-color-hover)}.text-field:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:focus{border-color:var(--border-color-focus);outline:var(--focus-outline);outline-offset:1px}.text-field:not(.text-field--disabled) .text-field__control:focus::placeholder{color:var(--color-placeholder)}.text-field .text-field__control::placeholder,.text-field ::placeholder{color:transparent;transition:var(--transition-placeholder)}.text-field__label{top:0;left:0;color:var(--color-label);display:flex;z-index:var(--z-index-label);position:absolute;transition:var(--transition-label);pointer-events:none;font:var(--telekom-text-style-ui);transform:translate(var(--spacing-x), 0.875rem)}.text-field--has-focus:not(.text-field--readonly) .text-field__label,.animated .text-field__label{font:var(--telekom-text-style-small-bold);transform:translate(\n var(--spacing-x),\n calc(0.25rem + var(--telekom-spacing-composition-space-01))\n )}.text-field--variant-danger .text-field__control{border:var(--border-error)}.text-field--variant-success .text-field__control{border:var(--border-success)}.text-field--variant-warning .text-field__control{border:var(--border-warning)}.text-field--variant-danger:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:hover,.text-field--variant-danger:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:focus{border-color:var(--telekom-color-functional-danger-hovered)}.text-field--variant-success:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:hover,.text-field--variant-success:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:focus{border-color:var(--telekom-color-functional-success-hovered)}.text-field--variant-warning:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:hover,.text-field--variant-warning:not(.text-field--disabled):not(.text-field--readonly) .text-field__control:focus{border-color:var(--telekom-color-functional-warning-hovered)}.text-field--variant-danger .text-field__helper-text{color:var(--color-helper-text-error)}.text-field--variant-danger .text-field__counter{color:var(--color-counter-error)}.text-field--variant-success .text-field__helper-text{color:var(--color-helper-text-success)}.text-field--variant-success .text-field__counter{color:var(--telekom-color-text-and-icon-functional-success)}.text-field--variant-warning .text-field__helper-text{color:var(--color-helper-text-warning)}.text-field--variant-warning .text-field__counter{color:var(--telekom-color-text-and-icon-functional-warning)}.text-field--transparent .text-field__control{background-color:transparent}.text-field--readonly input,.text-field--readonly .text-field__control{color:var(--color-label-readonly);border:none;background:var(--background-readonly)}.text-field--readonly .text-field__control:focus{outline:var(--focus-outline);outline-offset:1px}.text-field--disabled label,.text-field--disabled .text-field__label,.text-field--disabled input,.text-field--disabled .text-field__control,.text-field--disabled .text-field__meta,.text-field--disabled .text-field__counter,.text-field--disabled .text-field__helper-text{cursor:not-allowed;border-color:var(--border-color-disabled);background-color:var(--background-color-disabled);color:var(--color-disabled);background:transparent}.text-field--disabled.animated label.text-field__label{color:var(--color-disabled)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input[type='number']{-moz-appearance:textfield}input[type='datetime-local']::-webkit-calendar-picker-indicator,input[type='time']::-webkit-calendar-picker-indicator,input[type='date']::-webkit-calendar-picker-indicator,input[type='week']::-webkit-calendar-picker-indicator,input[type='month']::-webkit-calendar-picker-indicator{position:absolute;right:12px}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{color-scheme:dark}@media screen and (forced-colors: active), (-ms-high-contrast: active){.text-field--readonly input,.text-field--readonly .text-field__control{border:1px solid}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16163.cc7628a2.js.LICENSE.txt b/pr-preview/pr-186/assets/js/16163.cc7628a2.js.LICENSE.txt new file mode 100644 index 000000000..bae6dd8e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16163.cc7628a2.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/pr-preview/pr-186/assets/js/16173.b268abf6.js b/pr-preview/pr-186/assets/js/16173.b268abf6.js new file mode 100644 index 000000000..d0366bd4d --- /dev/null +++ b/pr-preview/pr-186/assets/js/16173.b268abf6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16173],{16173:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_reply_all:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M15.25 6.514H13.5V3.352l-6.75 4.4L13.5 12V9.014h1.75c3.17 0 5.75 2.579 5.75 5.75v4.486a1.25 1.25 0 102.5 0v-4.486c0-4.55-3.7-8.25-8.25-8.25zM7.5 5.473V3.352l-6.75 4.4 6.75 4.4v-2.12l-3.497-2.28L7.5 5.472z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M4.003 7.752l1.928-1.257 1.57-1.022V3.352l-6.75 4.4 6.75 4.399v-2.12L5.93 9.009 4.003 7.752zM15.75 7H13.5V3.352l-6.75 4.4 6.75 4.399V8.5h2.25A6.257 6.257 0 0122 14.75v4.987a.75.75 0 001.5 0V14.75c0-4.273-3.476-7.75-7.75-7.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1637.632f55f7.js b/pr-preview/pr-186/assets/js/1637.632f55f7.js new file mode 100644 index 000000000..09efcb328 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1637.632f55f7.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1637; +exports.ids = [1637]; +exports.modules = { + +/***/ 21637: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_zoom_out: () => (/* binding */ ActionZoomOut) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionZoomOut = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.385 19.615l-4.92-4.915a8 8 0 10-1.765 1.765l4.915 4.92c.49.487 1.28.487 1.77 0a1.26 1.26 0 000-1.77zM13 10.75H7a.75.75 0 110-1.5h6a.75.75 0 110 1.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10 2c4.42 0 8 3.58 8 8 0 1.65-.505 3.177-1.36 4.445l-.175.25 4.92 4.92c.485.49.485 1.28.005 1.77a1.245 1.245 0 01-.885.365c-.274 0-.549-.088-.776-.268l-.109-.097-4.92-4.92A7.961 7.961 0 0110 18c-4.42 0-8-3.58-8-8s3.58-8 8-8zm0 1.5A6.506 6.506 0 003.5 10c0 3.585 2.915 6.5 6.5 6.5s6.5-2.915 6.5-6.5-2.915-6.5-6.5-6.5zm3 5.75a.749.749 0 01.102 1.493L13 10.75H7a.749.749 0 01-.102-1.493L7 9.25h6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionZoomOut.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1645.c3e96590.js b/pr-preview/pr-186/assets/js/1645.c3e96590.js new file mode 100644 index 000000000..fc53e4967 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1645.c3e96590.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1645; +exports.ids = [1645]; +exports.modules = { + +/***/ 81645: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_thunder_snow: () => (/* binding */ WeatherThunderSnow) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherThunderSnow = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.262 13.5L8.057 18h3.112L4.86 23.098c-.16.13-.373-.04-.314-.213l.026-.052 2.26-3.337H4.44L7.766 13.5h3.496zm4.589-.223l1.299.75-.85 1.474H18v1.495h-1.703l.853 1.478-1.299.75-.85-1.474-.851 1.474-1.299-.75.853-1.479H12V15.5h1.701l-.85-1.473 1.299-.75.85 1.474.851-1.473zM13.514.566a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.127c0 2.66-1.792 4.9-4.223 5.576l-.23.059v-2.002a1 1 0 00-.404-.804l-.1-.064-3.303-1.887a1 1 0 00-.868-.06l-.118.057-1.007.566-.085.049H7l-2.343 4.221a5.275 5.275 0 01-4.404-5.207A5.299 5.299 0 012.92 6.618c.14-2.489 2.197-4.471 4.705-4.471.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.262 13.5H7.765l-3.326 5.995h2.393l-2.26 3.338c-.128.189.111.408.288.265L11.168 18H8.057l3.205-4.5zm4.588-.223l1.3.75-.851 1.474H18v1.495h-1.704l.854 1.478-1.3.75L15 17.75l-.85 1.474-1.3-.75.854-1.479H12V15.5h1.701l-.85-1.473 1.298-.75.851 1.474.85-1.473zM13.512.566a7.596 7.596 0 017.149 5.019 5.804 5.804 0 013.089 5.127 5.789 5.789 0 01-4.023 5.515l-.227.067V14.72a4.292 4.292 0 002.75-4.008 4.3 4.3 0 00-2.314-3.813l-.195-.095-.303-.138-.101-.317c-.816-2.563-3.157-4.284-5.825-4.284-1.42 0-2.79.5-3.888 1.415l-.216.188-.328.301-.422-.146a3.178 3.178 0 00-1.036-.176 3.22 3.22 0 00-3.007 2.1 3.327 3.327 0 00-.2 1.37l.027.435-.466.209a3.791 3.791 0 00-2.226 3.456 3.775 3.775 0 003.283 3.75l.193.02-.78 1.407A5.285 5.285 0 01.25 11.215a5.299 5.299 0 012.667-4.598c.14-2.489 2.197-4.471 4.705-4.471.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherThunderSnow.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16453e3b.bac6b109.js b/pr-preview/pr-186/assets/js/16453e3b.bac6b109.js new file mode 100644 index 000000000..82bae5d56 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16453e3b.bac6b109.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36588],{99817:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=r(74848),t=r(28453);const i={id:"restore-kubernetes-objects",title:"Restoring Kubernetes Objects in a CCE Cluster",tags:["cce","migration","azure","velero","obs"]},o="Restoring Kubernetes Objects in a CCE Cluster",c={id:"best-practices/containers/cloud-container-engine/restore-kubernetes-objects",title:"Restoring Kubernetes Objects in a CCE Cluster",description:"In this example, the WordPress application uses Azure SSD persistent data volumes, which need to be replaced with Open Telekom Cloud SSDs.",source:"@site/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects.md",sourceDirName:"best-practices/containers/cloud-container-engine",slug:"/best-practices/containers/cloud-container-engine/restore-kubernetes-objects",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects.md",tags:[{inline:!0,label:"cce",permalink:"/docs-next/pr-preview/pr-186/docs/tags/cce"},{inline:!0,label:"migration",permalink:"/docs-next/pr-preview/pr-186/docs/tags/migration"},{inline:!0,label:"azure",permalink:"/docs-next/pr-preview/pr-186/docs/tags/azure"},{inline:!0,label:"velero",permalink:"/docs-next/pr-preview/pr-186/docs/tags/velero"},{inline:!0,label:"obs",permalink:"/docs-next/pr-preview/pr-186/docs/tags/obs"}],version:"current",frontMatter:{id:"restore-kubernetes-objects",title:"Restoring Kubernetes Objects in a CCE Cluster",tags:["cce","migration","azure","velero","obs"]},sidebar:"bestPracticesSidebar",previous:{title:"Backing Up Kubernetes Objects of other Clusters",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects"},next:{title:"Updating Resources Accordingly",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources"}},a={},l=[{value:"Creating a StorageClass",id:"creating-a-storageclass",level:2},{value:"Restoring the Application",id:"restoring-the-application",level:2}];function d(e){const s={admonition:"admonition",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"restoring-kubernetes-objects-in-a-cce-cluster",children:"Restoring Kubernetes Objects in a CCE Cluster"}),"\n",(0,n.jsx)(s.p,{children:"In this example, the WordPress application uses Azure SSD persistent data volumes, which need to be replaced with Open Telekom Cloud SSDs."}),"\n",(0,n.jsx)(s.h2,{id:"creating-a-storageclass",children:"Creating a StorageClass"}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.code,{children:"StorageClass"})," used in this example is ",(0,n.jsx)(s.code,{children:"azurefile-csi"}),"."]}),"\n",(0,n.jsx)(s.admonition,{type:"caution",children:(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"You must"})," create a ",(0,n.jsx)(s.code,{children:"StorageClass"})," with the ",(0,n.jsx)(s.strong,{children:"exact same name"})," as in the other cloud provider and use it in Open Telekom Cloud. In this case SSDs as backend storage media will be mapped to a new ",(0,n.jsx)(s.code,{children:"StorageClass"})," that has the same name, ",(0,n.jsx)(s.code,{children:"azurefile-csi"}),", as their equivalent in Azure."]})}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-yaml",metastring:'title="cce-sc-csidisk.yaml"',children:'allowVolumeExpansion: true\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azurefile-csi\n selfLink: /apis/storage.k8s.io/v1/storageclasses/csi-disk\nparameters:\n csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io\n csi.storage.k8s.io/fstype: ext4\n everest.io/disk-volume-type: SSD\n everest.io/passthrough: "true"\nprovisioner: everest-csi-provisioner\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\n'})}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"[root@ccenode-roprr hujun]# kubectl create -f cce-sc-csidisk.yaml\n"})}),"\n",(0,n.jsx)(s.h2,{id:"restoring-the-application",children:"Restoring the Application"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:'[root@ccenode-roprr hujun]# velero restore create --from-backup wordpress-backup\nRestore request "wordpress-backup-20200707212519" submitted successfully.\nRun `velero restore describe wordpress-backup-20200707212519` or `velero restore logs wordpress-backup-20200707212519` for more details\n\n[root@ccenode-roprr hujun]# velero restore get\nNAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR\nwordpress-backup-20200708112940 wordpress-backup Completed 0 02020-07-08 11:29:42 +0800 CST \n'})}),"\n",(0,n.jsx)(s.p,{children:"Check the running status of the WordPress application. Make adaptation\nif issues such as image pulling failures and service access failures\noccur."})]})}function p(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},28453:(e,s,r)=>{r.d(s,{R:()=>o,x:()=>c});var n=r(96540);const t={},i=n.createContext(t);function o(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16485.756ba7fc.js b/pr-preview/pr-186/assets/js/16485.756ba7fc.js new file mode 100644 index 000000000..8b4bc69ea --- /dev/null +++ b/pr-preview/pr-186/assets/js/16485.756ba7fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16485],{16485:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_t_product_measure_internet_speed:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M12 2.5c6.05 0 11 4.95 11 11 0 2.6-.95 5.1-2.6 7.1-.3.35-.575.625-.819.85l-.277.248-.354.302H5l-.319-.273-.247-.222a8.717 8.717 0 01-.884-.955C1.9 18.55 1 16.1 1 13.5c0-6.05 4.95-11 11-11zm6.45 8.5c.222-.133.484-.03.645.136l.055.064.03.081a.654.654 0 01-.112.554L19 11.9l-4.5 3.7A2.487 2.487 0 0112 18c-1.4 0-2.5-1.1-2.5-2.5S10.6 13 12 13c.333 0 .632.07.896.208l.154.092 5.4-2.3zM12 6c2.507 0 4.735 1.255 6.102 3.183l.148.217-1.4.6C15.75 8.5 14 7.5 12 7.5c-3.225 0-5.877 2.579-5.996 5.776L6 13.5H4.5C4.5 9.35 7.85 6 12 6z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12 2.5c6.05 0 11 4.95 11 11 0 2.6-.95 5.1-2.6 7.1-.3.35-.575.625-.819.85l-.277.248-.354.302H5l-.319-.273-.247-.222a8.717 8.717 0 01-.884-.955C1.9 18.55 1 16.1 1 13.5c0-6.05 4.95-11 11-11zM12 4c-5.25 0-9.5 4.25-9.5 9.5a9.404 9.404 0 002.864 6.78l.236.22h12.8c2-1.8 3.1-4.35 3.1-7C21.5 8.25 17.25 4 12 4zm6.45 7c.222-.133.484-.03.645.136l.055.064.03.081a.654.654 0 01-.112.554L19 11.9l-4.5 3.7A2.487 2.487 0 0112 18c-1.4 0-2.5-1.1-2.5-2.5S10.6 13 12 13c.333 0 .632.07.896.208l.154.092 5.4-2.3zM12 6c2.507 0 4.735 1.255 6.102 3.183l.148.217-1.4.6C15.75 8.5 14 7.5 12 7.5c-3.225 0-5.877 2.579-5.996 5.776L6 13.5H4.5C4.5 9.35 7.85 6 12 6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1660.d564aa27.js b/pr-preview/pr-186/assets/js/1660.d564aa27.js new file mode 100644 index 000000000..881718934 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1660.d564aa27.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1660; +exports.ids = [1660]; +exports.modules = { + +/***/ 81660: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_random: () => (/* binding */ ActionRandom) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionRandom = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2.674 4.163A6.147 6.147 0 017.45 6.451l.161.21 6.858 9.257c.65.867 1.648 1.4 2.722 1.463l.216.007h.715v-2.302l5.388 3.526-5.388 3.527v-2.302h-.715a6.147 6.147 0 01-4.775-2.288l-.162-.21-6.857-9.257A3.678 3.678 0 002.89 6.619l-.216-.007h-.98A1.224 1.224 0 011.57 4.17l.126-.007h.98zm5.246 8.66l1.528 2.057-1.837 2.478a6.147 6.147 0 01-4.658 2.473l-.264.006h-.98a1.224 1.224 0 01-.125-2.443l.125-.006h.98a3.684 3.684 0 002.804-1.3l.135-.17 2.292-3.095zM18.122 1.86l5.388 3.527-5.388 3.526V6.612h-.73a3.681 3.681 0 00-2.803 1.3l-.135.17-2.253 3.095-1.528-2.057 1.836-2.478a6.147 6.147 0 014.636-2.472l.262-.007h.715V1.861z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2.23 4.5c1.729 0 3.376.79 4.466 2.125l.159.205 7 9.45a4.28 4.28 0 003.18 1.713l.235.007H18v-2.85l5.5 3.6-5.5 3.6V19.5h-.735a5.768 5.768 0 01-4.461-2.125l-.159-.205-7-9.45a4.28 4.28 0 00-3.18-1.713L2.23 6h-.98a.749.749 0 01-.102-1.493L1.25 4.5h.98zm5.65 8.76l.935 1.26-1.965 2.65a5.768 5.768 0 01-4.361 2.324l-.259.006h-.98a.749.749 0 01-.102-1.493L1.25 18h.98c1.261 0 2.47-.571 3.27-1.535l.145-.185 2.235-3.02zM18 1.65l5.5 3.6-5.5 3.6V6h-.73a4.277 4.277 0 00-3.269 1.535l-.146.185-2.235 3.02-.935-1.26 1.965-2.65a5.768 5.768 0 014.361-2.324l.259-.006H18V1.65z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionRandom.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16633.ebcc22a4.js b/pr-preview/pr-186/assets/js/16633.ebcc22a4.js new file mode 100644 index 000000000..01e51def6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16633.ebcc22a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16633],{16633:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_user_file_image_file:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21 17.5L15.5 23v-4a1.5 1.5 0 011.356-1.493L17 17.5h4zM21 1v15.5h-4a2.5 2.5 0 00-2.495 2.336L14.5 19v4H6a3 3 0 01-2.995-2.824L3 20V1h18zm-7.5 8l-2.64 3.4-1.5-1.935L6.23 14.5h11.54L13.5 9zM7.75 7a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21 1v17l-5 5H6a3.003 3.003 0 01-2.995-2.824L3 20V1h18zm-1.5 1.5h-15V20c0 .776.598 1.42 1.356 1.493L6 21.5h9v-3c0-.781.593-1.42 1.355-1.493L16.5 17h3V2.5zm-6 6.5l4.27 5.5H6.23l3.13-4.035 1.5 1.935L13.5 9zM7.75 7a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16652.0427e149.js b/pr-preview/pr-186/assets/js/16652.0427e149.js new file mode 100644 index 000000000..c471a7d5b --- /dev/null +++ b/pr-preview/pr-186/assets/js/16652.0427e149.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16652],{16652:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_weather_moon_thunder_rain:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M10.598 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.953-.149-1.336-1.291-.713-1.984l.087-.088 2.238-2.05zM8.81 15.2l-2.562 3.6h2.487l-5.047 4.078c-.127.103-.294-.029-.252-.166l.022-.046L5.263 20H3.351l2.661-4.8H8.81zm4.066-1.385a.12.12 0 01.197.062l.001.045-.521 3.333a1.3 1.3 0 01-1.487 1.085c-1.035-.161-1.449-1.403-.769-2.154l.09-.091 2.489-2.28zM10.22 5.962A5.577 5.577 0 0115.463 9.6a4.246 4.246 0 012.258 3.743 4.24 4.24 0 01-3.908 4.22l.024-.109.522-3.332a1.42 1.42 0 00-2.24-1.365l-.118.095L10.86 13.9H5.247l-1.952 3.52a3.878 3.878 0 01-2.774-3.712c0-1.392.75-2.669 1.942-3.355a3.486 3.486 0 014.261-3.158 5.575 5.575 0 013.496-1.233zM18.297.486a5.383 5.383 0 012.621-.03 4.55 4.55 0 003.058 8.515 5.374 5.374 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.421 5.421 0 00-1.938-2.184 6.749 6.749 0 00-2.137-2.676A5.404 5.404 0 0118.297.486z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M10.598 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.953-.149-1.336-1.29-.713-1.985l.087-.087 2.238-2.05zM8.81 15.2l-2.562 3.6h2.487l-5.047 4.078c-.127.103-.295-.029-.253-.166l.022-.046L5.263 20H3.35l2.661-4.8H8.81zm4.065-1.385a.12.12 0 01.198.062l.001.045-.522 3.333a1.301 1.301 0 01-1.354 1.099l-.132-.014-.126-.026c-.942-.238-1.295-1.408-.643-2.128l.09-.091 2.488-2.28zM10.1 5.981a5.577 5.577 0 015.242 3.639 4.245 4.245 0 012.258 3.744 4.239 4.239 0 01-3.897 4.218l.035-.141.171-1.093a3.04 3.04 0 002.491-2.984 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44c0 1.319.96 2.417 2.218 2.633l.166.024-.614 1.106A3.877 3.877 0 01.4 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.176.505a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16686.8ada1b81.js b/pr-preview/pr-186/assets/js/16686.8ada1b81.js new file mode 100644 index 000000000..8b4f5f2e8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16686.8ada1b81.js @@ -0,0 +1,2 @@ +/*! For license information please see 16686.8ada1b81.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16686],{88114:(e,t,n)=>{n.d(t,{c:()=>o});var i,a,r,o=(i=function(e){!function(){var t={}.hasOwnProperty;function n(){for(var e=[],i=0;i{n.r(t),n.d(t,{scale_accordion:()=>r});var i=n(90936),a=n(88114);const r=class{constructor(e){(0,i.r)(this,e),this.dependent=!1,this.expanded=!1,this.headingLevel=null,this.iconLocation="left"}collapsibleHandler(e){e.stopPropagation();const{expanded:t}=e.detail;this.dependent&&!1!==t&&this.getCollapsibleChildren().forEach((t=>{t!==e.target&&t.hasAttribute("expanded")&&(t.expanded=!1)}))}headingLevelChanged(e){this.propagatePropsToChildren(e,this.iconLocation)}iconLocationChanged(e){this.propagatePropsToChildren(this.headingLevel,e)}connectedCallback(){this.dependent||this.getCollapsibleChildren().forEach((e=>{e.expanded=this.expanded}))}componentDidLoad(){null===this.headingLevel&&"left"===this.iconLocation||this.propagatePropsToChildren(this.headingLevel,this.iconLocation)}getCollapsibleChildren(){return Array.from(this.el.children).filter((e=>"SCALE-COLLAPSIBLE"===e.tagName))}propagatePropsToChildren(e,t){this.getCollapsibleChildren().forEach((n=>{n.headingLevel=e,n.iconLocation=t}))}render(){return(0,i.h)(i.a,null,this.styles&&(0,i.h)("style",null,this.styles),(0,i.h)("div",{class:this.getCssClassMap(),part:"base"},(0,i.h)("slot",null)))}getCssClassMap(){return(0,a.c)("accordion")}get el(){return(0,i.g)(this)}static get watchers(){return{headingLevel:["headingLevelChanged"],iconLocation:["iconLocationChanged"]}}}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16686.8ada1b81.js.LICENSE.txt b/pr-preview/pr-186/assets/js/16686.8ada1b81.js.LICENSE.txt new file mode 100644 index 000000000..bae6dd8e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16686.8ada1b81.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/pr-preview/pr-186/assets/js/16788.d93d33ad.js b/pr-preview/pr-186/assets/js/16788.d93d33ad.js new file mode 100644 index 000000000..144260205 --- /dev/null +++ b/pr-preview/pr-186/assets/js/16788.d93d33ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16788],{16788:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_alert_password_breaking:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M17.25 6.013a4.75 4.75 0 014.03 2.241l.11.186-1.345.673a3.248 3.248 0 00-2.795-1.6 3.254 3.254 0 00-3.244 3.066l-.005.184V12.5h9.5V19a3 3 0 01-2.824 2.995L20.5 22H14a3 3 0 01-2.994-2.824L11 19v-6.5h1.5v-1.737a4.756 4.756 0 014.75-4.75zm0 9.487c-.69 0-1.25.56-1.25 1.25 0 .363.157.686.404.914l.096.08V19H18v-1.256c.302-.228.5-.586.5-.994 0-.69-.559-1.25-1.25-1.25zM22 2v4.712a6.221 6.221 0 00-9.005-.514 1.248 1.248 0 00-2.494.052c0 .69.559 1.25 1.25 1.25.065 0 .128-.01.191-.02a6.19 6.19 0 00-.908 2.72l-.02.3H3.501A3.003 3.003 0 01.506 7.676L.5 7.5V2H22zM8.25 5a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm-3.5 0a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M23.5 12.5V19a3 3 0 01-2.824 2.995L20.5 22H14a3 3 0 01-2.995-2.824L11 19v-6.5h1.5v-1.736a4.756 4.756 0 014.75-4.75c1.775 0 3.327.979 4.142 2.426l-1.344.671a3.252 3.252 0 00-2.798-1.598 3.254 3.254 0 00-3.25 3.25V12.5h9.5zM22 14h-9.5v5c0 .778.596 1.42 1.356 1.493L14 20.5h6.5c.778 0 1.42-.596 1.493-1.356L22 19v-5zm-4.75 1.5a1.25 1.25 0 01.751 2.25L18 19h-1.5v-1.25a1.25 1.25 0 01.75-2.25zM22 2v4.707a6.298 6.298 0 00-1.5-1.28V3.5H2v4C2 8.327 2.673 9 3.5 9h7.753a6.22 6.22 0 00-.248 1.5H3.5c-1.655 0-3-1.345-3-3V2H22zM4.75 5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm3.5 0a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm3.5 0c.67 0 1.216.526 1.248 1.188a6.249 6.249 0 00-1.067 1.297A1.25 1.25 0 1111.75 5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1684.f4187b63.js b/pr-preview/pr-186/assets/js/1684.f4187b63.js new file mode 100644 index 000000000..c13b79832 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1684.f4187b63.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1684; +exports.ids = [1684]; +exports.modules = { + +/***/ 31684: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_loyalty: () => (/* binding */ ContentLoyalty) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentLoyalty = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.153.84c.156 0 .307.02.454.068.554.18.942.693 1.306 1.246l.271.416c.271.416.55.811.896 1.064.35.254.814.4 1.293.53l.48.13c.638.177 1.243.385 1.583.852.336.462.347 1.099.318 1.759l-.024.497c-.022.497-.026.985.109 1.401.13.402.42.785.73 1.17l.312.385c.413.517.782 1.049.782 1.642 0 .594-.37 1.125-.782 1.642l-.312.386c-.31.384-.599.767-.729 1.168-.135.417-.13.905-.109 1.402l.024.497c.029.66.018 1.298-.318 1.76-.34.466-.945.674-1.583.85l-.48.13c-.48.132-.943.277-1.293.531-.289.21-.53.52-.76.858l-.407.622c-.364.553-.752 1.066-1.307 1.247a1.457 1.457 0 01-.452.067c-.394 0-.813-.13-1.24-.288l-.643-.243c-.43-.157-.859-.289-1.269-.289-.41 0-.839.132-1.27.29l-.643.242c-.427.157-.845.288-1.239.288a1.47 1.47 0 01-.453-.067c-.554-.18-.942-.694-1.306-1.247l-.408-.622c-.229-.338-.47-.648-.759-.858-.35-.254-.814-.4-1.293-.53l-.48-.13c-.638-.177-1.244-.385-1.583-.851-.336-.463-.347-1.1-.318-1.76l.024-.497c.022-.497.026-.985-.109-1.401-.13-.402-.42-.785-.73-1.17l-.312-.385C.71 13.125.342 12.593.342 12s.37-1.125.782-1.642l.465-.578c.25-.32.468-.642.577-.976.135-.417.13-.905.108-1.402l-.024-.497c-.028-.66-.018-1.298.318-1.76.34-.466.946-.674 1.583-.85l.48-.13c.48-.132.944-.277 1.293-.531.347-.253.625-.648.896-1.064l.271-.416c.365-.553.752-1.066 1.307-1.246.146-.048.297-.069.453-.069.393 0 .812.132 1.238.29l.644.242c.43.157.859.288 1.269.288.41 0 .839-.13 1.27-.288l.643-.243c.427-.157.846-.288 1.239-.288zm-4.81 7.562a2.461 2.461 0 00-2.896.928 2.467 2.467 0 00.045 2.836l.12.153 3.742 4.376a.854.854 0 001.214.084l.084-.084 3.74-4.376c.724-.845.791-2.07.166-2.99a2.464 2.464 0 00-2.991-.89c-.672.277-1 .709-1.262 1.191l-.152.295-.15.301-.22-.44c-.296-.574-.634-1.09-1.44-1.384z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.66 12c0-1.187-1.476-2.126-1.823-3.197-.361-1.109.268-2.734-.404-3.658-.678-.932-2.422-.832-3.355-1.511-.924-.673-1.364-2.366-2.474-2.726a1.455 1.455 0 00-.453-.069c-.982 0-2.127.82-3.152.82-1.024 0-2.168-.82-3.15-.82a1.45 1.45 0 00-.454.069c-1.109.36-1.55 2.053-2.473 2.725-.933.68-2.677.58-3.356 1.513-.672.923-.043 2.548-.403 3.657C1.816 9.874.34 10.813.34 12c0 1.187 1.475 2.126 1.823 3.197.361 1.109-.268 2.733.404 3.658.678.933 2.422.832 3.356 1.511.923.672 1.364 2.366 2.473 2.727.146.047.297.067.453.067.982 0 2.127-.82 3.152-.82 1.024 0 2.168.82 3.151.82.155 0 .307-.02.453-.067 1.11-.361 1.55-2.054 2.473-2.727.934-.678 2.678-.578 3.357-1.511.672-.924.043-2.549.402-3.659.348-1.07 1.823-2.009 1.823-3.196zm-2.134.93c-.413.508-.882 1.083-1.116 1.803-.241.743-.203 1.5-.169 2.168.017.337.045.893-.023 1.071-.148.123-.694.269-1.023.357-.643.173-1.373.369-2 .825-.62.451-1.027 1.081-1.386 1.637-.193.299-.517.799-.657.87-.21 0-.652-.17-1.008-.306-.633-.241-1.35-.515-2.144-.515s-1.511.274-2.143.515c-.348.133-.778.297-1.005.305-.166-.105-.474-.582-.66-.87-.36-.555-.766-1.185-1.387-1.636-.627-.456-1.356-.652-2-.825-.33-.088-.875-.235-1.022-.358-.069-.178-.041-.733-.024-1.07.034-.668.072-1.425-.169-2.168-.234-.72-.702-1.296-1.116-1.804-.23-.283-.615-.755-.635-.925.02-.179.405-.652.635-.934.413-.508.882-1.084 1.116-1.804.241-.742.203-1.5.169-2.168-.017-.336-.045-.892.024-1.07.147-.123.693-.27 1.022-.358.644-.173 1.373-.368 2-.824.62-.452 1.027-1.082 1.386-1.637.188-.289.496-.767.661-.87.211.002.651.17 1.005.305.632.242 1.349.516 2.143.516.794 0 1.511-.274 2.143-.515.348-.132.778-.297 1.005-.304.166.105.474.581.66.87.36.555.767 1.185 1.387 1.636.627.456 1.357.652 2 .824.33.089.875.235 1.023.358.068.178.04.734.023 1.07-.034.668-.072 1.426.169 2.168.234.721.703 1.296 1.116 1.805.23.282.614.755.634.925-.02.178-.404.65-.634.933zm-7.961-4.492c-.941.389-1.207 1.08-1.565 1.788-.376-.743-.652-1.456-1.659-1.824a2.461 2.461 0 00-2.896.928 2.466 2.466 0 00.165 2.99l3.741 4.375a.854.854 0 001.298 0l3.741-4.376c.723-.845.79-2.07.165-2.99a2.464 2.464 0 00-2.99-.89z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentLoyalty.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16949.f1ab93e9.js b/pr-preview/pr-186/assets/js/16949.f1ab93e9.js new file mode 100644 index 000000000..74a4b5d2b --- /dev/null +++ b/pr-preview/pr-186/assets/js/16949.f1ab93e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[16949],{16949:(t,e,l)=>{l.r(e),l.d(e,{scale_icon_user_file_logout:()=>i});var s=l(90936);const i=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M18 16l5.7 3.75L18 23.5v-3h-3.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L14.75 19H18v-3zm-10.6-.5l3.1 3.1 3.1-3.1h2.429c.114.002.219.007.32.021l.151.029v1.95h-1.75c-1.4 0-2.5 1.25-2.2 2.7.033.067.044.133.063.2l.037.1H.3l.15-1.05a4.73 4.73 0 014.474-3.945l.226-.005H7.4zM10.5 1c3.5 0 6 2.5 6 6 0 3.4-2.4 7-6 7s-6-3.6-6-7c0-3.5 2.5-6 6-6z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M18 16l5.7 3.75L18 23.5v-3h-3.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L14.75 19H18v-3zm-10.6-.5l3.1 3.1 3.1-3.1h2.429c.114.002.219.007.32.021l.151.029v1.95h-1.75c-1.4 0-2.5 1.25-2.2 2.7.033.067.044.133.063.2l.037.1H.3l.15-1.05a4.73 4.73 0 014.474-3.945l.226-.005H7.4zM10.5 1c3.5 0 6 2.5 6 6 0 3.4-2.4 7-6 7s-6-3.6-6-7c0-3.5 2.5-6 6-6zm0 1.5C7.9 2.5 6 4.4 6 7c0 2.65 1.8 5.5 4.5 5.5S15 9.65 15 7c0-2.6-1.9-4.5-4.5-4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1695.313c9dba.js b/pr-preview/pr-186/assets/js/1695.313c9dba.js new file mode 100644 index 000000000..9287d36a4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1695.313c9dba.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1695; +exports.ids = [1695]; +exports.modules = { + +/***/ 11695: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_person_walking: () => (/* binding */ ContentPersonWalking) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentPersonWalking = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.512 5.71c1.372-.454 5.098-.372 5.847 1.452.11.27.217.547.32.823l.354.953.21.535c.165.398.328.734.463.872.042.043.1.098.172.16l.247.213.632.514.667.523.291.223a.926.926 0 01-1.119 1.473l-.835-.647-.47-.377-.308-.253-.279-.238a5.982 5.982 0 01-.32-.297c-.396-.404-.693-1.043-.989-1.804l-.198-.524-.271-.726-.176-.453-.46 5.588 2.666 2.76c.254.264.457.564.605.896l1.989 4.99a.921.921 0 01-1.613.863l-.058-.095-2.553-4.878-4.277-3.524a3.123 3.123 0 01-1.136-2.492l.012-.206.383-4.116c-.655.51-1.226 1.256-1.412 1.599a.994.994 0 00-.053.125l-.064.192-.073.25-.124.461-.133.535-.134.575-.18.826a.926.926 0 01-1.812-.376l.175-.811.114-.496.126-.516.133-.505c.135-.49.275-.917.4-1.145l.117-.199a5.95 5.95 0 01.166-.25l.212-.292c.585-.768 1.573-1.793 2.746-2.181zm-.624 9.988l.101.098.104.095 2.173 1.79-.162.608a3.114 3.114 0 01-.45.974l-.13.173-3.21 3.801a.924.924 0 01-1.534-1.005l.06-.105 2.847-4.252.201-2.177zM12.25 0a2.125 2.125 0 110 4.25 2.125 2.125 0 010-4.25z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.512 5.71c1.372-.454 5.098-.372 5.847 1.452.11.27.217.547.32.823l.354.953.21.535c.165.398.328.734.463.872.042.043.1.098.172.16l.247.213.632.514.667.523.291.223a.926.926 0 01-1.119 1.473l-.835-.647-.47-.377-.308-.253-.279-.238a5.982 5.982 0 01-.32-.297c-.396-.404-.693-1.043-.989-1.804l-.198-.524-.271-.726-.176-.453-.46 5.588 2.666 2.76c.254.264.457.564.605.896l1.989 4.99a.921.921 0 01-1.613.863l-.058-.095-2.553-4.878-4.277-3.524a3.123 3.123 0 01-1.136-2.492l.012-.206.383-4.116c-.655.51-1.226 1.256-1.412 1.599a.994.994 0 00-.053.125l-.064.192-.073.25-.124.461-.133.535-.134.575-.18.826a.926.926 0 01-1.812-.376l.175-.811.114-.496.126-.516.133-.505c.135-.49.275-.917.4-1.145l.117-.199a5.95 5.95 0 01.166-.25l.212-.292c.585-.768 1.573-1.793 2.746-2.181zm-.624 9.988l.101.098.104.095 2.173 1.79-.162.608a3.114 3.114 0 01-.45.974l-.13.173-3.21 3.801a.924.924 0 01-1.534-1.005l.06-.105 2.847-4.252.201-2.177zM12.25 0a2.125 2.125 0 110 4.25 2.125 2.125 0 010-4.25z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentPersonWalking.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/16fe915c.90cbd988.js b/pr-preview/pr-186/assets/js/16fe915c.90cbd988.js new file mode 100644 index 000000000..7f5a0c2db --- /dev/null +++ b/pr-preview/pr-186/assets/js/16fe915c.90cbd988.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[33383],{15648:e=>{e.exports=JSON.parse('{"tag":{"label":"vpc-peering","permalink":"/docs-next/pr-preview/pr-186/docs/tags/vpc-peering","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurations","title":"Unsupported VPC Peering Configurations","description":"Scenarios","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurations"},{"id":"best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internet","title":"Using a Public NAT Gateway and VPC Peering to Enable Communications Between VPCs and the Internet","description":"Two VPCs, VPC A and VPC B are in the same region. A public NAT gateway is configured for subnet A in VPC A and you can add SNAT and DNAT rules for Internet connectivity. Subnet B connects to subnet A through a VPC peering connection and uses the public NAT gateway of subnet A to communicate with the Internet.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internet"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1708.40a9bc58.js b/pr-preview/pr-186/assets/js/1708.40a9bc58.js new file mode 100644 index 000000000..0fdb44e5c --- /dev/null +++ b/pr-preview/pr-186/assets/js/1708.40a9bc58.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1708; +exports.ids = [1708]; +exports.modules = { + +/***/ 81708: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_ratings: () => (/* binding */ ContentRatings) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentRatings = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.614 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.065-5.061a1.713 1.713 0 00-1.592-1.07c-.702 0-1.327.42-1.592 1.07L8.339 7.633l-5.451.398c-.7.052-1.293.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.305 5.308a1.715 1.715 0 00.659 1.802c.567.413 1.32.44 1.917.07l4.645-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.175-3.527a1.714 1.714 0 00.527-1.845", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.613 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.064-5.061a1.713 1.713 0 00-1.592-1.07c-.703 0-1.327.42-1.593 1.07L8.34 7.633l-5.452.398c-.7.052-1.292.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.304 5.308a1.715 1.715 0 00.658 1.802c.568.413 1.321.44 1.918.07l4.644-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.176-3.527a1.714 1.714 0 00.526-1.845zm-1.494.699l-4.886 4.127 1.527 6.212c.03.119-.03.19-.084.23a.203.203 0 01-.244.009l-5.436-3.372-5.436 3.372a.206.206 0 01-.245-.009.206.206 0 01-.084-.23l1.527-6.211-4.886-4.128a.205.205 0 01-.067-.235.206.206 0 01.192-.151l6.38-.468 2.416-5.923a.205.205 0 01.203-.136c.067 0 .156.024.203.137l2.416 5.922 6.38.468a.206.206 0 01.192.151.206.206 0 01-.068.235z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentRatings.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1715.f56c71e4.js b/pr-preview/pr-186/assets/js/1715.f56c71e4.js new file mode 100644 index 000000000..2640a39a6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1715.f56c71e4.js @@ -0,0 +1,1435 @@ +"use strict"; +exports.id = 1715; +exports.ids = [1715]; +exports.modules = { + +/***/ 89971: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _: () => (/* binding */ _typeof), +/* harmony export */ a: () => (/* binding */ addMilliseconds), +/* harmony export */ b: () => (/* binding */ toDate), +/* harmony export */ c: () => (/* binding */ getTimezoneOffsetInMilliseconds), +/* harmony export */ d: () => (/* binding */ assign), +/* harmony export */ g: () => (/* binding */ getDefaultOptions), +/* harmony export */ l: () => (/* binding */ locale), +/* harmony export */ r: () => (/* binding */ requiredArgs), +/* harmony export */ t: () => (/* binding */ toInteger) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + +function toInteger(dirtyNumber) { + if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { + return NaN; + } + var number = Number(dirtyNumber); + if (isNaN(number)) { + return number; + } + return number < 0 ? Math.ceil(number) : Math.floor(number); +} + +function requiredArgs(required, args) { + if (args.length < required) { + throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); + } +} + +/** + * @name toDate + * @category Common Helpers + * @summary Convert the given argument to an instance of Date. + * + * @description + * Convert the given argument to an instance of Date. + * + * If the argument is an instance of Date, the function returns its clone. + * + * If the argument is a number, it is treated as a timestamp. + * + * If the argument is none of the above, the function returns Invalid Date. + * + * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. + * + * @param {Date|Number} argument - the value to convert + * @returns {Date} the parsed date in the local time zone + * @throws {TypeError} 1 argument required + * + * @example + * // Clone the date: + * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) + * //=> Tue Feb 11 2014 11:30:30 + * + * @example + * // Convert the timestamp to date: + * const result = toDate(1392098430000) + * //=> Tue Feb 11 2014 11:30:30 + */ +function toDate(argument) { + requiredArgs(1, arguments); + var argStr = Object.prototype.toString.call(argument); + + // Clone the date + if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') { + // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + } else if (typeof argument === 'number' || argStr === '[object Number]') { + return new Date(argument); + } else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"); + // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + +/** + * @name addMilliseconds + * @category Millisecond Helpers + * @summary Add the specified number of milliseconds to the given date. + * + * @description + * Add the specified number of milliseconds to the given date. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. + * @returns {Date} the new date with the milliseconds added + * @throws {TypeError} 2 arguments required + * + * @example + * // Add 750 milliseconds to 10 July 2014 12:45:30.000: + * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) + * //=> Thu Jul 10 2014 12:45:30.750 + */ +function addMilliseconds(dirtyDate, dirtyAmount) { + requiredArgs(2, arguments); + var timestamp = toDate(dirtyDate).getTime(); + var amount = toInteger(dirtyAmount); + return new Date(timestamp + amount); +} + +var defaultOptions = {}; +function getDefaultOptions() { + return defaultOptions; +} + +/** + * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. + * They usually appear for dates that denote time before the timezones were introduced + * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 + * and GMT+01:00:00 after that date) + * + * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, + * which would lead to incorrect calculations. + * + * This function returns the timezone offset in milliseconds that takes seconds in account. + */ +function getTimezoneOffsetInMilliseconds(date) { + var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); + utcDate.setUTCFullYear(date.getFullYear()); + return date.getTime() - utcDate.getTime(); +} + +var formatDistanceLocale = { + lessThanXSeconds: { + one: 'less than a second', + other: 'less than {{count}} seconds' + }, + xSeconds: { + one: '1 second', + other: '{{count}} seconds' + }, + halfAMinute: 'half a minute', + lessThanXMinutes: { + one: 'less than a minute', + other: 'less than {{count}} minutes' + }, + xMinutes: { + one: '1 minute', + other: '{{count}} minutes' + }, + aboutXHours: { + one: 'about 1 hour', + other: 'about {{count}} hours' + }, + xHours: { + one: '1 hour', + other: '{{count}} hours' + }, + xDays: { + one: '1 day', + other: '{{count}} days' + }, + aboutXWeeks: { + one: 'about 1 week', + other: 'about {{count}} weeks' + }, + xWeeks: { + one: '1 week', + other: '{{count}} weeks' + }, + aboutXMonths: { + one: 'about 1 month', + other: 'about {{count}} months' + }, + xMonths: { + one: '1 month', + other: '{{count}} months' + }, + aboutXYears: { + one: 'about 1 year', + other: 'about {{count}} years' + }, + xYears: { + one: '1 year', + other: '{{count}} years' + }, + overXYears: { + one: 'over 1 year', + other: 'over {{count}} years' + }, + almostXYears: { + one: 'almost 1 year', + other: 'almost {{count}} years' + } +}; +var formatDistance = function formatDistance(token, count, options) { + var result; + var tokenValue = formatDistanceLocale[token]; + if (typeof tokenValue === 'string') { + result = tokenValue; + } else if (count === 1) { + result = tokenValue.one; + } else { + result = tokenValue.other.replace('{{count}}', count.toString()); + } + if (options !== null && options !== void 0 && options.addSuffix) { + if (options.comparison && options.comparison > 0) { + return 'in ' + result; + } else { + return result + ' ago'; + } + } + return result; +}; + +function buildFormatLongFn(args) { + return function () { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + // TODO: Remove String() + var width = options.width ? String(options.width) : args.defaultWidth; + var format = args.formats[width] || args.formats[args.defaultWidth]; + return format; + }; +} + +var dateFormats = { + full: 'EEEE, MMMM do, y', + long: 'MMMM do, y', + medium: 'MMM d, y', + short: 'MM/dd/yyyy' +}; +var timeFormats = { + full: 'h:mm:ss a zzzz', + long: 'h:mm:ss a z', + medium: 'h:mm:ss a', + short: 'h:mm a' +}; +var dateTimeFormats = { + full: "{{date}} 'at' {{time}}", + long: "{{date}} 'at' {{time}}", + medium: '{{date}}, {{time}}', + short: '{{date}}, {{time}}' +}; +var formatLong = { + date: buildFormatLongFn({ + formats: dateFormats, + defaultWidth: 'full' + }), + time: buildFormatLongFn({ + formats: timeFormats, + defaultWidth: 'full' + }), + dateTime: buildFormatLongFn({ + formats: dateTimeFormats, + defaultWidth: 'full' + }) +}; + +var formatRelativeLocale = { + lastWeek: "'last' eeee 'at' p", + yesterday: "'yesterday at' p", + today: "'today at' p", + tomorrow: "'tomorrow at' p", + nextWeek: "eeee 'at' p", + other: 'P' +}; +var formatRelative = function formatRelative(token, _date, _baseDate, _options) { + return formatRelativeLocale[token]; +}; + +function buildLocalizeFn(args) { + return function (dirtyIndex, options) { + var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone'; + var valuesArray; + if (context === 'formatting' && args.formattingValues) { + var defaultWidth = args.defaultFormattingWidth || args.defaultWidth; + var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth; + valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; + } else { + var _defaultWidth = args.defaultWidth; + var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth; + valuesArray = args.values[_width] || args.values[_defaultWidth]; + } + var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; + // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it! + return valuesArray[index]; + }; +} + +var eraValues = { + narrow: ['B', 'A'], + abbreviated: ['BC', 'AD'], + wide: ['Before Christ', 'Anno Domini'] +}; +var quarterValues = { + narrow: ['1', '2', '3', '4'], + abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], + wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] +}; + +// Note: in English, the names of days of the week and months are capitalized. +// If you are making a new locale based on this one, check if the same is true for the language you're working on. +// Generally, formatted dates should look like they are in the middle of a sentence, +// e.g. in Spanish language the weekdays and months should be in the lowercase. +var monthValues = { + narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] +}; +var dayValues = { + narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] +}; +var dayPeriodValues = { + narrow: { + am: 'a', + pm: 'p', + midnight: 'mi', + noon: 'n', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'midnight', + noon: 'noon', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' + }, + wide: { + am: 'a.m.', + pm: 'p.m.', + midnight: 'midnight', + noon: 'noon', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' + } +}; +var formattingDayPeriodValues = { + narrow: { + am: 'a', + pm: 'p', + midnight: 'mi', + noon: 'n', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'midnight', + noon: 'noon', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' + }, + wide: { + am: 'a.m.', + pm: 'p.m.', + midnight: 'midnight', + noon: 'noon', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' + } +}; +var ordinalNumber = function ordinalNumber(dirtyNumber, _options) { + var number = Number(dirtyNumber); + + // If ordinal numbers depend on context, for example, + // if they are different for different grammatical genders, + // use `options.unit`. + // + // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', + // 'day', 'hour', 'minute', 'second'. + + var rem100 = number % 100; + if (rem100 > 20 || rem100 < 10) { + switch (rem100 % 10) { + case 1: + return number + 'st'; + case 2: + return number + 'nd'; + case 3: + return number + 'rd'; + } + } + return number + 'th'; +}; +var localize = { + ordinalNumber: ordinalNumber, + era: buildLocalizeFn({ + values: eraValues, + defaultWidth: 'wide' + }), + quarter: buildLocalizeFn({ + values: quarterValues, + defaultWidth: 'wide', + argumentCallback: function argumentCallback(quarter) { + return quarter - 1; + } + }), + month: buildLocalizeFn({ + values: monthValues, + defaultWidth: 'wide' + }), + day: buildLocalizeFn({ + values: dayValues, + defaultWidth: 'wide' + }), + dayPeriod: buildLocalizeFn({ + values: dayPeriodValues, + defaultWidth: 'wide', + formattingValues: formattingDayPeriodValues, + defaultFormattingWidth: 'wide' + }) +}; + +function buildMatchFn(args) { + return function (string) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var width = options.width; + var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; + var matchResult = string.match(matchPattern); + if (!matchResult) { + return null; + } + var matchedString = matchResult[0]; + var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; + var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) { + return pattern.test(matchedString); + }) : findKey(parsePatterns, function (pattern) { + return pattern.test(matchedString); + }); + var value; + value = args.valueCallback ? args.valueCallback(key) : key; + value = options.valueCallback ? options.valueCallback(value) : value; + var rest = string.slice(matchedString.length); + return { + value: value, + rest: rest + }; + }; +} +function findKey(object, predicate) { + for (var key in object) { + if (object.hasOwnProperty(key) && predicate(object[key])) { + return key; + } + } + return undefined; +} +function findIndex(array, predicate) { + for (var key = 0; key < array.length; key++) { + if (predicate(array[key])) { + return key; + } + } + return undefined; +} + +function buildMatchPatternFn(args) { + return function (string) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var matchResult = string.match(args.matchPattern); + if (!matchResult) return null; + var matchedString = matchResult[0]; + var parseResult = string.match(args.parsePattern); + if (!parseResult) return null; + var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; + value = options.valueCallback ? options.valueCallback(value) : value; + var rest = string.slice(matchedString.length); + return { + value: value, + rest: rest + }; + }; +} + +var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; +var parseOrdinalNumberPattern = /\d+/i; +var matchEraPatterns = { + narrow: /^(b|a)/i, + abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, + wide: /^(before christ|before common era|anno domini|common era)/i +}; +var parseEraPatterns = { + any: [/^b/i, /^(a|c)/i] +}; +var matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^q[1234]/i, + wide: /^[1234](th|st|nd|rd)? quarter/i +}; +var parseQuarterPatterns = { + any: [/1/i, /2/i, /3/i, /4/i] +}; +var matchMonthPatterns = { + narrow: /^[jfmasond]/i, + abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, + wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i +}; +var parseMonthPatterns = { + narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i], + any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i] +}; +var matchDayPatterns = { + narrow: /^[smtwf]/i, + short: /^(su|mo|tu|we|th|fr|sa)/i, + abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, + wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i +}; +var parseDayPatterns = { + narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], + any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] +}; +var matchDayPeriodPatterns = { + narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, + any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i +}; +var parseDayPeriodPatterns = { + any: { + am: /^a/i, + pm: /^p/i, + midnight: /^mi/i, + noon: /^no/i, + morning: /morning/i, + afternoon: /afternoon/i, + evening: /evening/i, + night: /night/i + } +}; +var match = { + ordinalNumber: buildMatchPatternFn({ + matchPattern: matchOrdinalNumberPattern, + parsePattern: parseOrdinalNumberPattern, + valueCallback: function valueCallback(value) { + return parseInt(value, 10); + } + }), + era: buildMatchFn({ + matchPatterns: matchEraPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseEraPatterns, + defaultParseWidth: 'any' + }), + quarter: buildMatchFn({ + matchPatterns: matchQuarterPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseQuarterPatterns, + defaultParseWidth: 'any', + valueCallback: function valueCallback(index) { + return index + 1; + } + }), + month: buildMatchFn({ + matchPatterns: matchMonthPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseMonthPatterns, + defaultParseWidth: 'any' + }), + day: buildMatchFn({ + matchPatterns: matchDayPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseDayPatterns, + defaultParseWidth: 'any' + }), + dayPeriod: buildMatchFn({ + matchPatterns: matchDayPeriodPatterns, + defaultMatchWidth: 'any', + parsePatterns: parseDayPeriodPatterns, + defaultParseWidth: 'any' + }) +}; + +/** + * @type {Locale} + * @category Locales + * @summary English locale (United States). + * @language English + * @iso-639-2 eng + * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp} + * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss} + */ +var locale = { + code: 'en-US', + formatDistance: formatDistance, + formatLong: formatLong, + formatRelative: formatRelative, + localize: localize, + match: match, + options: { + weekStartsOn: 0 /* Sunday */, + firstWeekContainsDate: 1 + } +}; + +function assign(target, object) { + if (target == null) { + throw new TypeError('assign requires that input parameter not be null or undefined'); + } + for (var property in object) { + if (Object.prototype.hasOwnProperty.call(object, property)) { + target[property] = object[property]; + } + } + return target; +} + + + + +/***/ }), + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 91715: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_toast: () => (/* binding */ Toast) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); +/* harmony import */ var _index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89971); + + + + + +/** + * @name addSeconds + * @category Second Helpers + * @summary Add the specified number of seconds to the given date. + * + * @description + * Add the specified number of seconds to the given date. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. + * @returns {Date} the new date with the seconds added + * @throws {TypeError} 2 arguments required + * + * @example + * // Add 30 seconds to 10 July 2014 12:45:00: + * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30) + * //=> Thu Jul 10 2014 12:45:30 + */ +function addSeconds(dirtyDate, dirtyAmount) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var amount = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.t)(dirtyAmount); + return (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.a)(dirtyDate, amount * 1000); +} + +/** + * @name compareAsc + * @category Common Helpers + * @summary Compare the two dates and return -1, 0 or 1. + * + * @description + * Compare the two dates and return 1 if the first date is after the second, + * -1 if the first date is before the second or 0 if dates are equal. + * + * @param {Date|Number} dateLeft - the first date to compare + * @param {Date|Number} dateRight - the second date to compare + * @returns {Number} the result of the comparison + * @throws {TypeError} 2 arguments required + * + * @example + * // Compare 11 February 1987 and 10 July 1989: + * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10)) + * //=> -1 + * + * @example + * // Sort the array of dates: + * const result = [ + * new Date(1995, 6, 2), + * new Date(1987, 1, 11), + * new Date(1989, 6, 10) + * ].sort(compareAsc) + * //=> [ + * // Wed Feb 11 1987 00:00:00, + * // Mon Jul 10 1989 00:00:00, + * // Sun Jul 02 1995 00:00:00 + * // ] + */ +function compareAsc(dirtyDateLeft, dirtyDateRight) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var dateLeft = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateLeft); + var dateRight = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateRight); + var diff = dateLeft.getTime() - dateRight.getTime(); + if (diff < 0) { + return -1; + } else if (diff > 0) { + return 1; + // Return 0 if diff is 0; return NaN if diff is NaN + } else { + return diff; + } +} + +/** + * @name differenceInCalendarMonths + * @category Month Helpers + * @summary Get the number of calendar months between the given dates. + * + * @description + * Get the number of calendar months between the given dates. + * + * @param {Date|Number} dateLeft - the later date + * @param {Date|Number} dateRight - the earlier date + * @returns {Number} the number of calendar months + * @throws {TypeError} 2 arguments required + * + * @example + * // How many calendar months are between 31 January 2014 and 1 September 2014? + * const result = differenceInCalendarMonths( + * new Date(2014, 8, 1), + * new Date(2014, 0, 31) + * ) + * //=> 8 + */ +function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var dateLeft = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateLeft); + var dateRight = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateRight); + var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear(); + var monthDiff = dateLeft.getMonth() - dateRight.getMonth(); + return yearDiff * 12 + monthDiff; +} + +/** + * @name differenceInMilliseconds + * @category Millisecond Helpers + * @summary Get the number of milliseconds between the given dates. + * + * @description + * Get the number of milliseconds between the given dates. + * + * @param {Date|Number} dateLeft - the later date + * @param {Date|Number} dateRight - the earlier date + * @returns {Number} the number of milliseconds + * @throws {TypeError} 2 arguments required + * + * @example + * // How many milliseconds are between + * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700? + * const result = differenceInMilliseconds( + * new Date(2014, 6, 2, 12, 30, 21, 700), + * new Date(2014, 6, 2, 12, 30, 20, 600) + * ) + * //=> 1100 + */ +function differenceInMilliseconds(dateLeft, dateRight) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + return (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dateLeft).getTime() - (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dateRight).getTime(); +} + +var roundingMap = { + ceil: Math.ceil, + round: Math.round, + floor: Math.floor, + trunc: function trunc(value) { + return value < 0 ? Math.ceil(value) : Math.floor(value); + } // Math.trunc is not supported by IE +}; + +var defaultRoundingMethod = 'trunc'; +function getRoundingMethod(method) { + return method ? roundingMap[method] : roundingMap[defaultRoundingMethod]; +} + +/** + * @name endOfDay + * @category Day Helpers + * @summary Return the end of a day for the given date. + * + * @description + * Return the end of a day for the given date. + * The result will be in the local timezone. + * + * @param {Date|Number} date - the original date + * @returns {Date} the end of a day + * @throws {TypeError} 1 argument required + * + * @example + * // The end of a day for 2 September 2014 11:55:00: + * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 02 2014 23:59:59.999 + */ +function endOfDay(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDate); + date.setHours(23, 59, 59, 999); + return date; +} + +/** + * @name endOfMonth + * @category Month Helpers + * @summary Return the end of a month for the given date. + * + * @description + * Return the end of a month for the given date. + * The result will be in the local timezone. + * + * @param {Date|Number} date - the original date + * @returns {Date} the end of a month + * @throws {TypeError} 1 argument required + * + * @example + * // The end of a month for 2 September 2014 11:55:00: + * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 30 2014 23:59:59.999 + */ +function endOfMonth(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDate); + var month = date.getMonth(); + date.setFullYear(date.getFullYear(), month + 1, 0); + date.setHours(23, 59, 59, 999); + return date; +} + +/** + * @name isLastDayOfMonth + * @category Month Helpers + * @summary Is the given date the last day of a month? + * + * @description + * Is the given date the last day of a month? + * + * @param {Date|Number} date - the date to check + * @returns {Boolean} the date is the last day of a month + * @throws {TypeError} 1 argument required + * + * @example + * // Is 28 February 2014 the last day of a month? + * const result = isLastDayOfMonth(new Date(2014, 1, 28)) + * //=> true + */ +function isLastDayOfMonth(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDate); + return endOfDay(date).getTime() === endOfMonth(date).getTime(); +} + +/** + * @name differenceInMonths + * @category Month Helpers + * @summary Get the number of full months between the given dates. + * + * @description + * Get the number of full months between the given dates using trunc as a default rounding method. + * + * @param {Date|Number} dateLeft - the later date + * @param {Date|Number} dateRight - the earlier date + * @returns {Number} the number of full months + * @throws {TypeError} 2 arguments required + * + * @example + * // How many full months are between 31 January 2014 and 1 September 2014? + * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31)) + * //=> 7 + */ +function differenceInMonths(dirtyDateLeft, dirtyDateRight) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var dateLeft = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateLeft); + var dateRight = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateRight); + var sign = compareAsc(dateLeft, dateRight); + var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight)); + var result; + + // Check for the difference of less than month + if (difference < 1) { + result = 0; + } else { + if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) { + // This will check if the date is end of Feb and assign a higher end of month date + // to compare it with Jan + dateLeft.setDate(30); + } + dateLeft.setMonth(dateLeft.getMonth() - sign * difference); + + // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full + // If so, result must be decreased by 1 in absolute value + var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; + + // Check for cases of one full calendar month + if (isLastDayOfMonth((0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) { + isLastMonthNotFull = false; + } + result = sign * (difference - Number(isLastMonthNotFull)); + } + + // Prevent negative zero + return result === 0 ? 0 : result; +} + +/** + * @name differenceInSeconds + * @category Second Helpers + * @summary Get the number of seconds between the given dates. + * + * @description + * Get the number of seconds between the given dates. + * + * @param {Date|Number} dateLeft - the later date + * @param {Date|Number} dateRight - the earlier date + * @param {Object} [options] - an object with options. + * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`) + * @returns {Number} the number of seconds + * @throws {TypeError} 2 arguments required + * + * @example + * // How many seconds are between + * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000? + * const result = differenceInSeconds( + * new Date(2014, 6, 2, 12, 30, 20, 0), + * new Date(2014, 6, 2, 12, 30, 7, 999) + * ) + * //=> 12 + */ +function differenceInSeconds(dateLeft, dateRight, options) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000; + return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff); +} + +function cloneObject(object) { + return (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.d)({}, object); +} + +var MINUTES_IN_DAY = 1440; +var MINUTES_IN_ALMOST_TWO_DAYS = 2520; +var MINUTES_IN_MONTH = 43200; +var MINUTES_IN_TWO_MONTHS = 86400; + +/** + * @name formatDistance + * @category Common Helpers + * @summary Return the distance between the given dates in words. + * + * @description + * Return the distance between the given dates in words. + * + * | Distance between dates | Result | + * |-------------------------------------------------------------------|---------------------| + * | 0 ... 30 secs | less than a minute | + * | 30 secs ... 1 min 30 secs | 1 minute | + * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes | + * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour | + * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours | + * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day | + * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days | + * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month | + * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months | + * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months | + * | 1 yr ... 1 yr 3 months | about 1 year | + * | 1 yr 3 months ... 1 yr 9 month s | over 1 year | + * | 1 yr 9 months ... 2 yrs | almost 2 years | + * | N yrs ... N yrs 3 months | about N years | + * | N yrs 3 months ... N yrs 9 months | over N years | + * | N yrs 9 months ... N+1 yrs | almost N+1 years | + * + * With `options.includeSeconds == true`: + * | Distance between dates | Result | + * |------------------------|----------------------| + * | 0 secs ... 5 secs | less than 5 seconds | + * | 5 secs ... 10 secs | less than 10 seconds | + * | 10 secs ... 20 secs | less than 20 seconds | + * | 20 secs ... 40 secs | half a minute | + * | 40 secs ... 60 secs | less than a minute | + * | 60 secs ... 90 secs | 1 minute | + * + * @param {Date|Number} date - the date + * @param {Date|Number} baseDate - the date to compare with + * @param {Object} [options] - an object with options. + * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed + * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first + * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale} + * @returns {String} the distance in words + * @throws {TypeError} 2 arguments required + * @throws {RangeError} `date` must not be Invalid Date + * @throws {RangeError} `baseDate` must not be Invalid Date + * @throws {RangeError} `options.locale` must contain `formatDistance` property + * + * @example + * // What is the distance between 2 July 2014 and 1 January 2015? + * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1)) + * //=> '6 months' + * + * @example + * // What is the distance between 1 January 2015 00:00:15 + * // and 1 January 2015 00:00:00, including seconds? + * const result = formatDistance( + * new Date(2015, 0, 1, 0, 0, 15), + * new Date(2015, 0, 1, 0, 0, 0), + * { includeSeconds: true } + * ) + * //=> 'less than 20 seconds' + * + * @example + * // What is the distance from 1 January 2016 + * // to 1 January 2015, with a suffix? + * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), { + * addSuffix: true + * }) + * //=> 'about 1 year ago' + * + * @example + * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto? + * import { eoLocale } from 'date-fns/locale/eo' + * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), { + * locale: eoLocale + * }) + * //=> 'pli ol 1 jaro' + */ + +function formatDistance(dirtyDate, dirtyBaseDate, options) { + var _ref, _options$locale; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var defaultOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.g)(); + var locale$1 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : _index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.l; + if (!locale$1.formatDistance) { + throw new RangeError('locale must contain formatDistance property'); + } + var comparison = compareAsc(dirtyDate, dirtyBaseDate); + if (isNaN(comparison)) { + throw new RangeError('Invalid time value'); + } + var localizeOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.d)(cloneObject(options), { + addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix), + comparison: comparison + }); + var dateLeft; + var dateRight; + if (comparison > 0) { + dateLeft = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyBaseDate); + dateRight = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDate); + } else { + dateLeft = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyDate); + dateRight = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.b)(dirtyBaseDate); + } + var seconds = differenceInSeconds(dateRight, dateLeft); + var offsetInSeconds = ((0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.c)(dateRight) - (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.c)(dateLeft)) / 1000; + var minutes = Math.round((seconds - offsetInSeconds) / 60); + var months; + + // 0 up to 2 mins + if (minutes < 2) { + if (options !== null && options !== void 0 && options.includeSeconds) { + if (seconds < 5) { + return locale$1.formatDistance('lessThanXSeconds', 5, localizeOptions); + } else if (seconds < 10) { + return locale$1.formatDistance('lessThanXSeconds', 10, localizeOptions); + } else if (seconds < 20) { + return locale$1.formatDistance('lessThanXSeconds', 20, localizeOptions); + } else if (seconds < 40) { + return locale$1.formatDistance('halfAMinute', 0, localizeOptions); + } else if (seconds < 60) { + return locale$1.formatDistance('lessThanXMinutes', 1, localizeOptions); + } else { + return locale$1.formatDistance('xMinutes', 1, localizeOptions); + } + } else { + if (minutes === 0) { + return locale$1.formatDistance('lessThanXMinutes', 1, localizeOptions); + } else { + return locale$1.formatDistance('xMinutes', minutes, localizeOptions); + } + } + + // 2 mins up to 0.75 hrs + } else if (minutes < 45) { + return locale$1.formatDistance('xMinutes', minutes, localizeOptions); + + // 0.75 hrs up to 1.5 hrs + } else if (minutes < 90) { + return locale$1.formatDistance('aboutXHours', 1, localizeOptions); + + // 1.5 hrs up to 24 hrs + } else if (minutes < MINUTES_IN_DAY) { + var hours = Math.round(minutes / 60); + return locale$1.formatDistance('aboutXHours', hours, localizeOptions); + + // 1 day up to 1.75 days + } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) { + return locale$1.formatDistance('xDays', 1, localizeOptions); + + // 1.75 days up to 30 days + } else if (minutes < MINUTES_IN_MONTH) { + var days = Math.round(minutes / MINUTES_IN_DAY); + return locale$1.formatDistance('xDays', days, localizeOptions); + + // 1 month up to 2 months + } else if (minutes < MINUTES_IN_TWO_MONTHS) { + months = Math.round(minutes / MINUTES_IN_MONTH); + return locale$1.formatDistance('aboutXMonths', months, localizeOptions); + } + months = differenceInMonths(dateRight, dateLeft); + + // 2 months up to 12 months + if (months < 12) { + var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH); + return locale$1.formatDistance('xMonths', nearestMonth, localizeOptions); + + // 1 year up to max Date + } else { + var monthsSinceStartOfYear = months % 12; + var years = Math.floor(months / 12); + + // N years up to 1 years 3 months + if (monthsSinceStartOfYear < 3) { + return locale$1.formatDistance('aboutXYears', years, localizeOptions); + + // N years 3 months up to N years 9 months + } else if (monthsSinceStartOfYear < 9) { + return locale$1.formatDistance('overXYears', years, localizeOptions); + + // N years 9 months up to N year 12 months + } else { + return locale$1.formatDistance('almostXYears', years + 1, localizeOptions); + } + } +} + +/** + * @name subSeconds + * @category Second Helpers + * @summary Subtract the specified number of seconds from the given date. + * + * @description + * Subtract the specified number of seconds from the given date. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of seconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. + * @returns {Date} the new date with the seconds subtracted + * @throws {TypeError} 2 arguments required + * + * @example + * // Subtract 30 seconds from 10 July 2014 12:45:00: + * const result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30) + * //=> Thu Jul 10 2014 12:44:30 + */ +function subSeconds(dirtyDate, dirtyAmount) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.r)(2, arguments); + var amount = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_3__.t)(dirtyAmount); + return addSeconds(dirtyDate, -amount); +} + +const toastCss = ":host{--width:400px;--radius:var(--telekom-radius-small);--background:var(--scl-color-background-standard);--box-shadow:var(--telekom-shadow-app-bar-top-raised);--spacing:var(--telekom-spacing-composition-space-06);--border-header:1px solid var(--scl-color-grey-20);--font-size-header:var(--telekom-text-style-heading-4);--font-size-header-small:var(--telekom-typography-font-size-small);--height-progress:var(--telekom-spacing-composition-space-02)}.toast{width:var(--width);display:flex;opacity:0;z-index:1;position:fixed;background:var(--background);box-shadow:var(--box-shadow);box-sizing:border-box;border-radius:var(--radius);flex-direction:column;justify-content:space-between}.toast__body{padding:var(--spacing)}.toast__header{margin:0;display:flex;padding:var(--spacing);border-bottom:var(--border-header);justify-content:space-between;font:var(--font-size-header)}.toast__header a{cursor:pointer}.toast__header small{margin-top:5px;margin-left:120px;font-size:var(--font-size-header-small)}.toast__progress{left:0;bottom:0;height:var(--height-progress);display:block;overflow:hidden;position:absolute;background:red}"; + +const Toast = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Toast size */ + this.size = ''; + /** (optional) Toast variant */ + this.variant = ''; + /** (optional) Toast autohide time */ + this.autoHide = false; + /** (optional) Animated toast */ + this.animated = true; + /** (optional) Toast position at the top */ + this.positionTop = 12; + /** (optional) Toast position right */ + this.positionRight = 12; + /** (optional) Toast fade duration */ + this.fadeDuration = 500; + /** (optional) Toast state progress */ + this.progress = 0; + /** (optional) Toast state height with offset */ + this.toastHeightWithOffset = 0; + this.hideToast = false; + this.timerId = null; + this.close = () => { + clearInterval(this.timerId); + this.hideToast = true; + setTimeout(() => { + this.timerId = null; + this.opened = false; + this.progress = 0; + }, this.fadeDuration); + }; + this.getTime = () => { + const formattedTime = this.time && + formatDistance(subSeconds(this.time, 3), new Date(), { addSuffix: true }); + return formattedTime; + }; + this.setToastTimeout = () => { + if (this.opened && this.autoHide !== false && !this.timerId) { + this.timerId = setInterval(() => { + this.progress += 1 / (this.getAutoHide() / 1000); + if (this.progress >= 100) { + this.close(); + } + }, 10); + } + }; + this.transitions = (offset) => ` + @keyframes fadeIn { + from { + opacity: 0; + top: -${offset}px; + } + to { + opacity: 1; + top: ${this.positionTop}px; + } + } + + @keyframes fadeOut { + from { + opacity: 1; + top: ${this.positionTop}px; + } + to { + opacity: 0; + top: -${offset}px; + } + } + `; + this.animationStyle = (offset) => { + return ` + .toast--show { + right: ${this.positionRight}px; + animation: fadeIn ${this.fadeDuration / 1000}s ease-in-out; + top: ${this.positionTop}px; + opacity: 1; + }, + .toast--show { + right: ${this.positionRight}px; + animation: fadeOut ${this.fadeDuration / 1000}s ease-in-out; + top: -${offset}px; + opacity: 0; + } + `; + }; + } + connectedCallback() { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ source: this.element, type: 'warn' }); + } + disconnectedCallback() { + if (this.timerId) { + clearTimeout(this.timerId); + this.timerId = null; + this.opened = false; + this.progress = 0; + } + } + /** Toast method: open() */ + async open() { + this.opened = true; + this.hideToast = false; + } + render() { + this.setToastTimeout(); + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.transitions(this.toastHeightWithOffset)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.animationStyle(this.toastHeightWithOffset)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), part: this.getBasePartMap() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "header", class: "toast__header" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "header" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("small", null, this.getTime()), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("a", { onClick: this.close }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { "aria-hidden": "true" }, "\u00D7"))), this.autoHide && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "progress", class: "toast__progress", style: { width: `${this.progress}%` } }, "\u00A0")), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "body", class: "toast__body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))))); + } + getToastHeightWithOffset() { + const toastHeight = this.element.shadowRoot.querySelector('.toast').scrollHeight; + this.toastHeightWithOffset = toastHeight + this.positionTop; + } + getAutoHide() { + if (typeof this.autoHide === 'number' || + typeof this.autoHide === 'string') { + return Number(this.autoHide); + } + else { + return 0; + } + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const component = 'toast'; + const prefix = mode === 'basePart' ? '' : `${component}`; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)(mode === 'basePart' ? 'base' : component, this.size && `${prefix}--size-${this.size}`, this.variant && `${prefix}--variant-${this.variant}`, !!this.opened && `${prefix}--opened`, !!!this.hideToast && `${prefix}--show`, !!this.hideToast && `${prefix}--hide`); + } + get element() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +Toast.style = toastCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1724.83c462b0.js b/pr-preview/pr-186/assets/js/1724.83c462b0.js new file mode 100644 index 000000000..ae54dfadc --- /dev/null +++ b/pr-preview/pr-186/assets/js/1724.83c462b0.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1724; +exports.ids = [1724]; +exports.modules = { + +/***/ 31724: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_device_phone: () => (/* binding */ DeviceDevicePhone) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceDevicePhone = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16 .5a3 3 0 012.995 2.824L19 3.5v17a3 3 0 01-2.824 2.995L16 23.5H8a3 3 0 01-2.995-2.824L5 20.5v-17A3 3 0 017.824.505L8 .5h8zm-4 17.75a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0 .5a1 1 0 110 2 1 1 0 010-2zm2-16.5h-4v1h4v-1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16 .5a3.01 3.01 0 012.995 2.824L19 3.5v17a3.01 3.01 0 01-2.824 2.995L16 23.5H8a3.01 3.01 0 01-2.995-2.824L5 20.5v-17A3.01 3.01 0 017.824.505L8 .5h8zM10 2H8c-.8 0-1.423.576-1.493 1.352L6.5 3.5v17c0 .8.576 1.423 1.352 1.493L8 22h8c.8 0 1.423-.576 1.493-1.352l.007-.148v-17c0-.8-.576-1.423-1.352-1.493L16 2h-2v1.5h-4V2zm2 16.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceDevicePhone.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1727.71c25ded.js b/pr-preview/pr-186/assets/js/1727.71c25ded.js new file mode 100644 index 000000000..98b46a012 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1727.71c25ded.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1727; +exports.ids = [1727]; +exports.modules = { + +/***/ 61727: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_discount: () => (/* binding */ ContentDiscount) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentDiscount = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.44 1.535l8.785 1.3 1.3 8.78-10.305 10.31a3.065 3.065 0 01-4.325 0l-5.76-5.765a3.05 3.05 0 010-4.32L12.44 1.535zm.635 12.8a1.925 1.925 0 100 2.705v.02a1.905 1.905 0 000-2.725zm-1.344.557a.785.785 0 01.574.228.83.83 0 01-1.17 1.17.79.79 0 01.035-1.14.785.785 0 01.561-.258zm3.574-3.877L6.5 13.05l1 1 8.805-2.035-1-1zm-3.423-3.446A1.925 1.925 0 009.78 8a1.905 1.905 0 000 2.7 1.925 1.925 0 102.102-3.131zm-1.287 1.266a.83.83 0 011.125-.045.775.775 0 01-.035 1.135.775.775 0 01-1.135.035.83.83 0 01.045-1.125zm7.745-3.12a1.018 1.018 0 00-1.44 0 1 1 0 000 1.44 1 1 0 001.44 0 1.018 1.018 0 000-1.44z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.441 1.533l8.781 1.302 1.303 8.782L12.22 21.922a3.048 3.048 0 01-2.162.895 3.04 3.04 0 01-1.993-.74l-.168-.155-5.762-5.762a3.056 3.056 0 01-.132-4.18l.132-.142L12.441 1.534zm.526 1.594L3.196 12.9A1.546 1.546 0 002.74 14c0 .363.124.707.352.985l.104.115 5.762 5.762c.294.294.685.456 1.1.456.364 0 .708-.124.986-.352l.114-.104 9.772-9.772-1.028-6.935-6.935-1.028zm.1 11.23c.755.755.762 1.948.008 2.701a1.906 1.906 0 01-2.71 0 1.915 1.915 0 01-.008-2.717 1.905 1.905 0 012.71.016zm-1.899.795c-.333.333-.348.82-.032 1.136.316.317.795.292 1.128-.04.332-.333.356-.812.04-1.128-.317-.316-.803-.3-1.136.032zm4.17-4.121l.982.981-8.804 2.037-.981-.982 8.803-2.037zM12.492 8.02a1.91 1.91 0 01.007 2.718c-.755.755-1.947.746-2.71-.016a1.895 1.895 0 01-.008-2.702 1.906 1.906 0 012.71 0zm-1.9.811c-.333.333-.349.82-.04 1.128.324.325.803.3 1.136-.032.332-.333.356-.811.031-1.136-.308-.309-.794-.292-1.127.04zm7.029-3.413a1.018 1.018 0 11.002 2.038 1.018 1.018 0 01-.002-2.038z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentDiscount.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1728.1183caf9.js b/pr-preview/pr-186/assets/js/1728.1183caf9.js new file mode 100644 index 000000000..0b7a866ec --- /dev/null +++ b/pr-preview/pr-186/assets/js/1728.1183caf9.js @@ -0,0 +1,103 @@ +"use strict"; +exports.id = 1728; +exports.ids = [1728]; +exports.modules = { + +/***/ 91728: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_tab_panel: () => (/* binding */ TabPanel) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94200); + + + +const tabPanelCss = ":host{--spacing-top:var(--telekom-spacing-composition-space-08)}.tab-panel{margin-top:var(--spacing-top)}"; + +let i = 0; +const TabPanel = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.generatedId = i++; + /** True for smaller height and font size */ + /** @deprecated - no more size difference */ + this.small = false; + /** (optional) size */ + /** @deprecated - no more size difference */ + this.size = 'small'; + /** (optional) adds tab-index="0" to the panel, set to false to exclude the tab-panel from the tab sequence, e.g. if the first element in the panel is a focusable button */ + this.tabbablePanel = true; + } + componentDidRender() { + if (this.small !== false) { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ + tag: 'deprecated', + message: 'Property "small" is deprecated.', + type: 'warn', + source: this.el, + }); + } + } + setTabIndex() { + if (this.tabbablePanel === true) { + return { tabindex: '0' }; + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, Object.assign({ id: `scale-tab-panel-${this.generatedId}`, role: "tabpanel" }, this.setTabIndex()), this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "tab-panel", class: "tab-panel" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + get el() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TabPanel.style = tabPanelCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/17535.2319bb01.js b/pr-preview/pr-186/assets/js/17535.2319bb01.js new file mode 100644 index 000000000..d338e777a --- /dev/null +++ b/pr-preview/pr-186/assets/js/17535.2319bb01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[17535],{17535:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_home_wifi_connected:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.4a7.15 7.15 0 00.723 1.925A4.495 4.495 0 008.14 17.69l-.11.194-1.436-1.49A6.496 6.496 0 0110.92 13.6zm7.018-7.226a5.688 5.688 0 11-.002 11.376 5.688 5.688 0 01.002-11.376zm-6.5 2.642a7.08 7.08 0 00-.612 2.062 8.992 8.992 0 00-5.802 3.25l-.19.241-1.406-1.459a10.977 10.977 0 018.01-4.094zm8.395 1.031l-2.565 2.564-1.282-1.28a.683.683 0 00-.965.964l2.247 2.247 3.53-3.53a.681.681 0 10-.965-.965zM12 4.5c1.469 0 2.89.205 4.236.588a7.148 7.148 0 00-2.921 1.481A13.602 13.602 0 0012 6.5a13.463 13.463 0 00-10.091 4.537l-.228.263L.287 9.855A15.459 15.459 0 0112 4.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.4a7.15 7.15 0 00.723 1.925A4.495 4.495 0 008.14 17.69l-.11.194-1.436-1.49A6.496 6.496 0 0110.92 13.6zm7.018-7.226a5.688 5.688 0 11-.002 11.376 5.688 5.688 0 01.002-11.376zm.006 1.501a4.193 4.193 0 00-4.188 4.187 4.193 4.193 0 004.188 4.188 4.192 4.192 0 004.187-4.188 4.192 4.192 0 00-4.187-4.187zm-6.506 1.141a7.08 7.08 0 00-.612 2.062 8.992 8.992 0 00-5.802 3.25l-.19.241-1.406-1.459a10.977 10.977 0 018.01-4.094zm8.395 1.031l-2.565 2.564-1.282-1.28a.683.683 0 00-.965.964l2.247 2.247 3.53-3.53a.681.681 0 10-.965-.965zM12 4.5c1.469 0 2.89.205 4.236.588a7.148 7.148 0 00-2.921 1.481A13.602 13.602 0 0012 6.5a13.463 13.463 0 00-10.091 4.537l-.228.263L.287 9.855A15.459 15.459 0 0112 4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/17566.c6124238.js b/pr-preview/pr-186/assets/js/17566.c6124238.js new file mode 100644 index 000000000..ab901126e --- /dev/null +++ b/pr-preview/pr-186/assets/js/17566.c6124238.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[17566],{17566:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_upload:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21.25 20.185a1.065 1.065 0 01.116 2.124l-.116.006H2.75a1.065 1.065 0 01-.116-2.124l.116-.006h18.5zM12 2l4.58 7h-3.33v6.75a1.25 1.25 0 01-2.494.128l-.006-.128V9H7.42L12 2z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21.25 20.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L21.25 22H2.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743l.099-.007h18.5zM12 2l4.6 7h-3.85v6.75c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651l-.007-.099V9H7.4L12 2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1778.15ce696d.js b/pr-preview/pr-186/assets/js/1778.15ce696d.js new file mode 100644 index 000000000..b650c22a7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1778.15ce696d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1778; +exports.ids = [1778]; +exports.modules = { + +/***/ 91778: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_apple: () => (/* binding */ ContentApple) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentApple = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.408 16.361c-.855-.619-1.996-1.829-1.996-3.879a4.65 4.65 0 011.391-3.374c.504-.502.952-.731.952-.731s-.566-1.024-1.91-1.664c-.61-.291-1.382-.503-2.333-.503-1.769 0-3.129 1.006-3.86 1.006-.854 0-2.128-.946-3.769-.946-.158 0-.316.009-.474.027a4.64 4.64 0 00-1.854.629 5.198 5.198 0 00-.84.624c-.665.606-1.223 1.423-1.587 2.445-.292.818-.46 1.767-.46 2.844 0 4.379 3.18 9.828 5.696 9.828.88 0 2.228-.885 3.587-.885.5 0 .951.12 1.386.27.58.2 1.132.453 1.735.546.15.024.304.037.463.037 2.756 0 4.796-5.744 4.796-5.744s-.41-.158-.923-.53M11.53 5.988l.016.002.041.003.051.004.05.001.068.001h.002c.061 0 .131-.003.206-.008l.058-.005c.078-.007.16-.018.25-.033l.02-.002a3.364 3.364 0 00.375-.09 3.855 3.855 0 00.342-.118 3.799 3.799 0 00.447-.221 4.04 4.04 0 00.373-.237l.008-.006c.126-.092.253-.199.38-.315l.095-.089a5.02 5.02 0 001.157-1.669 4.735 4.735 0 00.366-1.558c.024-.4-.017-.648-.017-.648s-.626.003-1.428.34a4.79 4.79 0 00-1.975 1.546c-.712.938-.922 1.8-.969 2.375-.036.447.025.72.025.72s.023.004.06.007", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.408 16.361c-.855-.619-1.996-1.829-1.996-3.879a4.65 4.65 0 011.391-3.374c.504-.502.952-.731.952-.731s-.566-1.024-1.91-1.664c-.61-.291-1.382-.503-2.333-.503-1.769 0-3.129 1.006-3.86 1.006-.854 0-2.128-.946-3.769-.946-.158 0-.316.009-.474.027a4.64 4.64 0 00-1.854.629 5.198 5.198 0 00-.84.624c-.665.606-1.223 1.423-1.587 2.445-.292.818-.46 1.767-.46 2.844 0 4.379 3.18 9.828 5.696 9.828.88 0 2.228-.885 3.587-.885.5 0 .951.12 1.386.27.58.2 1.132.453 1.735.546.15.024.304.037.463.037 2.756 0 4.796-5.744 4.796-5.744s-.41-.158-.923-.53M11.53 5.988l.016.002.041.003.051.004.05.001.068.001h.002c.061 0 .131-.003.206-.008l.058-.005c.078-.007.16-.018.25-.033l.02-.002a3.364 3.364 0 00.375-.09 3.855 3.855 0 00.342-.118 3.799 3.799 0 00.447-.221 4.04 4.04 0 00.373-.237l.008-.006c.126-.092.253-.199.38-.315l.095-.089a5.02 5.02 0 001.157-1.669 4.735 4.735 0 00.366-1.558c.024-.4-.017-.648-.017-.648s-.626.003-1.428.34a4.79 4.79 0 00-1.975 1.546c-.712.938-.922 1.8-.969 2.375-.036.447.025.72.025.72s.023.004.06.007", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentApple.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/17896441.dc55f4f7.js b/pr-preview/pr-186/assets/js/17896441.dc55f4f7.js new file mode 100644 index 000000000..caef20f6c --- /dev/null +++ b/pr-preview/pr-186/assets/js/17896441.dc55f4f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[18401],{27567:(e,t,n)=>{n.r(t),n.d(t,{default:()=>oe});var s=n(96540),a=n(1003),i=n(89532),o=n(74848);const l=s.createContext(null);function r(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,o.jsx)(l.Provider,{value:a,children:t})}function c(){const e=(0,s.useContext)(l);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,o.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(34164),m=n(24581),h=n(21312),b=n(28774);function x(e){const{permalink:t,title:n,subLabel:s,isNext:a}=e;return(0,o.jsxs)(b.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,o.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,o.jsx)("div",{className:"pagination-nav__label",children:n})]})}function p(e){const{previous:t,next:n}=e;return(0,o.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,o.jsx)(x,{...t,subLabel:(0,o.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,o.jsx)(x,{...n,subLabel:(0,o.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function v(){const{metadata:e}=c();return(0,o.jsx)(p,{previous:e.previous,next:e.next})}var g=n(44586),j=n(44070),f=n(17559),_=n(55597),A=n(32252);const N={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,o.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function C(e){const t=N[e.versionMetadata.banner];return(0,o.jsx)(t,{...e})}function L(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,o.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,o.jsx)("b",{children:(0,o.jsx)(b.A,{to:n,onClick:s,children:(0,o.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function T(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,g.default)(),{pluginId:a}=(0,j.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,_.g1)(a),{latestDocSuggestion:l,latestVersionSuggestion:r}=(0,j.HW)(a),c=l??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,o.jsxs)("div",{className:(0,u.A)(t,f.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,o.jsx)("div",{children:(0,o.jsx)(C,{siteTitle:s,versionMetadata:n})}),(0,o.jsx)("div",{className:"margin-top--md",children:(0,o.jsx)(L,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function k(e){let{className:t}=e;const n=(0,A.r)();return n.banner?(0,o.jsx)(T,{className:t,versionMetadata:n}):null}function M(e){let{className:t}=e;const n=(0,A.r)();return n.badge?(0,o.jsx)("span",{className:(0,u.A)(t,f.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}var w=n(56133);const B={tags:"tags_jXut",tag:"tag_QGVx"};function I(e){let{tags:t}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,u.A)(B.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,o.jsx)("li",{className:B.tag,children:(0,o.jsx)(w.A,{...e})},e.permalink)))})]})}var V=n(12153);function H(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,l=!!(t||n||s);return i||l?(0,o.jsxs)("footer",{className:(0,u.A)(f.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,o.jsx)("div",{className:(0,u.A)("row margin-top--sm",f.G.docs.docFooterTagsRow),children:(0,o.jsx)("div",{className:"col",children:(0,o.jsx)(I,{tags:a})})}),l&&(0,o.jsx)(V.A,{className:(0,u.A)("margin-top--sm",f.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var y=n(41422),E=n(65195);const G={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function P(e){let{collapsed:t,...n}=e;return(0,o.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",G.tocCollapsibleButton,!t&&G.tocCollapsibleButtonExpanded,n.className),children:(0,o.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const F={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function R(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:l}=(0,y.u)({initialState:!0});return(0,o.jsxs)("div",{className:(0,u.A)(F.tocCollapsible,!i&&F.tocCollapsibleExpanded,n),children:[(0,o.jsx)(P,{collapsed:i,onClick:l}),(0,o.jsx)(y.N,{lazy:!0,className:F.tocCollapsibleContent,collapsed:i,children:(0,o.jsx)(E.A,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const D={tocMobile:"tocMobile_ITEo"};function S(){const{toc:e,frontMatter:t}=c();return(0,o.jsx)(R,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(f.G.docs.docTocMobile,D.tocMobile)})}var U=n(67763);function O(){const{toc:e,frontMatter:t}=c();return(0,o.jsx)(U.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:f.G.docs.docTocDesktop})}var W=n(51107),z=n(88509);function Q(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,o.jsxs)("div",{className:(0,u.A)(f.G.docs.docMarkdown,"markdown"),children:[n&&(0,o.jsx)("header",{children:(0,o.jsx)(W.A,{as:"h1",children:n})}),(0,o.jsx)(z.A,{children:t})]})}var X=n(84142),Y=n(99169),Z=n(86025);function $(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const q={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function J(){const e=(0,Z.Ay)("/");return(0,o.jsx)("li",{className:"breadcrumbs__item",children:(0,o.jsx)(b.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,o.jsx)($,{className:q.breadcrumbHomeIcon})})})}const K={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function ee(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,o.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,o.jsx)(b.A,{className:a,href:n,itemProp:"item",children:(0,o.jsx)("span",{itemProp:"name",children:t})}):(0,o.jsx)("span",{className:a,children:t})}function te(e){let{children:t,active:n,index:s,addMicrodata:a}=e;return(0,o.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,o.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ne(){const e=(0,X.OF)(),t=(0,Y.Dt)();return e?(0,o.jsx)("nav",{className:(0,u.A)(f.G.docs.docBreadcrumbs,K.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,o.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,o.jsx)(J,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,o.jsx)(te,{active:s,index:n,addMicrodata:!!a,children:(0,o.jsx)(ee,{href:a,isLast:s,children:t.label})},n)}))]})}):null}var se=n(50996);const ae={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function ie(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,o.jsx)(S,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,o.jsx)(O,{})}}(),{metadata:{unlisted:s}}=c();return(0,o.jsxs)("div",{className:"row",children:[(0,o.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&ae.docItemCol),children:[s&&(0,o.jsx)(se.A,{}),(0,o.jsx)(k,{}),(0,o.jsxs)("div",{className:ae.docItemContainer,children:[(0,o.jsxs)("article",{children:[(0,o.jsx)(ne,{}),(0,o.jsx)(M,{}),n.mobile,(0,o.jsx)(Q,{children:t}),(0,o.jsx)(H,{})]}),(0,o.jsx)(v,{})]})]}),n.desktop&&(0,o.jsx)("div",{className:"col col--3",children:n.desktop})]})}function oe(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,o.jsx)(r,{content:e.content,children:(0,o.jsxs)(a.e3,{className:t,children:[(0,o.jsx)(d,{}),(0,o.jsx)(ie,{children:(0,o.jsx)(n,{})})]})})}},56133:(e,t,n)=>{n.d(t,{A:()=>l});n(96540);var s=n(34164),a=n(28774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var o=n(74848);function l(e){let{permalink:t,label:n,count:l,description:r}=e;return(0,o.jsxs)(a.A,{href:t,title:r,className:(0,s.A)(i.tag,l?i.tagWithCount:i.tagRegular),children:[n,l&&(0,o.jsx)("span",{children:l})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1790.dbe5a3d0.js b/pr-preview/pr-186/assets/js/1790.dbe5a3d0.js new file mode 100644 index 000000000..8987b3e92 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1790.dbe5a3d0.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1790; +exports.ids = [1790]; +exports.modules = { + +/***/ 71790: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_import: () => (/* binding */ ActionImport) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionImport = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 7v13a3 3 0 01-2.824 2.995L18 23H6a3 3 0 01-2.995-2.824L3 20V7h7.25v3.5H5.568L12 20.326l6.432-9.826h-4.683L13.746 7H21zm-9-5a.75.75 0 01.743.648l.007.102v8.75h3.832L12 18.5l-4.582-7h3.832V2.75A.75.75 0 0112 2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.5 7v1.5h-4V20c0 .778.596 1.42 1.356 1.493L6 21.5h12c.778 0 1.42-.596 1.493-1.356L19.5 20V8.5h-4V7H21v13a3 3 0 01-2.824 2.995L18 23H6a3 3 0 01-2.995-2.824L3 20V7h5.5zM12 2a.75.75 0 01.743.648l.007.102v8.75h3.832L12 18.5l-4.582-7h3.832V2.75A.75.75 0 0112 2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionImport.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/17917.c1384d06.js b/pr-preview/pr-186/assets/js/17917.c1384d06.js new file mode 100644 index 000000000..749195f44 --- /dev/null +++ b/pr-preview/pr-186/assets/js/17917.c1384d06.js @@ -0,0 +1,2 @@ +/*! For license information please see 17917.c1384d06.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[17917],{88114:(e,t,a)=>{a.d(t,{c:()=>l});var n,i,o,l=(n=function(e){!function(){var t={}.hasOwnProperty;function a(){for(var e=[],n=0;n{a.r(t),a.d(t,{scale_icon_action_menu:()=>l,scale_telekom_header:()=>r,scale_telekom_mega_menu:()=>s,scale_telekom_mega_menu_column:()=>c,scale_telekom_mobile_menu:()=>h,scale_telekom_mobile_menu_item:()=>m,scale_telekom_nav_list:()=>d});var n=a(90936),i=a(88114),o=a(91779);const l=class{constructor(e){(0,n.r)(this,e),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const e=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,n.h)(n.a,null,(0,n.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},e,t),this.accessibilityTitle&&(0,n.h)("title",null,this.accessibilityTitle),(0,n.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,n.h)("g",null,(0,n.h)("path",{d:"M14.335 16.055a1.25 1.25 0 01.128 2.494l-.128.006H4.75a1.25 1.25 0 01-.128-2.494l.128-.006h9.585zM19.25 10.5a1.25 1.25 0 01.128 2.494L19.25 13H4.75a1.25 1.25 0 01-.128-2.494l.128-.006h14.5zm0-5.5a1.25 1.25 0 01.128 2.494l-.128.006H4.75a1.25 1.25 0 01-.128-2.494L4.75 5h14.5z","fill-rule":"evenodd"})):(0,n.h)("g",null,(0,n.h)("path",{d:"M14.75 16.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L14.75 18H4.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743l.099-.007h10.5zm5-5.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743l-.099.007H4.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L4.25 11h15.5zm0-5.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L19.75 7H4.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L4.25 5.5h15.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,n.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const r=class{constructor(e){(0,n.r)(this,e),this.type="",this.metaNavAriaLabel="Meta navigation",this.metaNavExternalAriaLabel="External meta navigation",this.langSwitcherAriaLabel="Language switcher",this.mainNavAriaLabel="Main navigation",this.scrolledBack=!1,this.pageYOffset=0}onScroll(){this.scrolled=window.pageYOffset>48,this.scrolledBack=this.pageYOffset!==window.pageYOffset&&window.pageYOffset<=0,this.pageYOffset=pageYOffset}render(){return(0,n.h)(n.a,{scrolled:"subtle"!==this.type&&this.scrolled,"scrolled-back":"subtle"!==this.type&&this.scrolledBack},(0,n.h)("header",{part:(0,i.c)("base",this.type,{scrolled:"subtle"!==this.type&&this.scrolled,"scrolled-back":"subtle"!==this.type&&this.scrolledBack})},(0,n.h)("div",{part:"fixed-wrapper"},(0,n.h)("div",{part:"container"},(0,n.h)("slot",{name:"logo"},(0,n.h)("scale-logo",{part:"app-logo",variant:"white",href:this.logoHref,logoTitle:this.logoTitle,logoHideTitle:this.logoHideTitle,focusable:!!this.logoHref})),(0,n.h)("div",{part:"body"},(0,n.h)("div",{part:"top-bar"},this.appName?(0,n.h)("div",{part:"top-app-name"},this.appNameLink?(0,n.h)("a",{part:"app-name-text",onClick:this.appNameClick,href:this.appNameLink},this.appName):(0,n.h)("span",{part:"app-name-text"},this.appName)):null,(0,n.h)("div",{part:"top-body"},(0,n.h)("nav",{part:"meta-nav-external","aria-label":this.metaNavExternalAriaLabel},(0,n.h)("slot",{name:"meta-nav-external"})),(0,n.h)("nav",{part:"meta-nav","aria-label":this.metaNavAriaLabel},(0,n.h)("slot",{name:"meta-nav"})),(0,n.h)("nav",{part:"lang-switcher","aria-label":this.langSwitcherAriaLabel},(0,n.h)("slot",{name:"lang-switcher"})))),(0,n.h)("div",{part:"bottom-bar"},this.appName?(0,n.h)("div",{part:"bottom-app-name"},this.appNameLink?(0,n.h)("a",{part:"app-name-text",onClick:this.appNameClick,href:this.appNameLink},this.appName):(0,n.h)("span",{part:"app-name-text"},this.appName)):null,(0,n.h)("div",{part:"bottom-body"},(0,n.h)("nav",{part:"main-nav","aria-label":this.mainNavAriaLabel},(0,n.h)("slot",{name:"main-nav"})),(0,n.h)("slot",{name:"functions"}))))))))}get hostElement(){return(0,n.g)(this)}};r.style=":host{--shadow:0px 2px 9px rgba(0, 0, 0, 0.15);--background:var(--telekom-color-background-surface);--background-logo:var(--telekom-color-primary-standard);--transition-common-scrolled:height var(--telekom-motion-duration-immediate)\n var(--telekom-motion-easing-standard),\n width var(--telekom-motion-duration-immediate),\n margin var(--telekom-motion-duration-immediate);--font-size-app-name:var(--telekom-typography-font-size-body);--line-height-app-name:var(--telekom-typography-line-spacing-tight);--font-weight-app-name:var(--telekom-typography-font-weight-extra-bold);--_height:60px;--_base-height:60px;--_height-logo-svg:36px;--_height-bottom-bar:60px;--_height-top-bar:0;--_display-bottom-app-name:none;--_display-top-app-name:none;--_display-main-nav:none;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_max-width-container:none;--_spacing-x-container:var(--telekom-spacing-composition-space-06);--_column-gap-container:var(--telekom-spacing-composition-space-10);--_grid-template-columns-container:auto;--_grid-column-body:auto;--_spacing-left-body:0;--_spacing-right-top-app-name:var(--telekom-spacing-composition-space-10);--_spacing-right-bottom-app-name:var(--telekom-spacing-composition-space-10);--_left-logo:0;--_justify-content-bottom-body:end;--_animation-name:toggle;--scl-telekom-header-height:var(--_height)}@media screen and (min-width: 640px){:host{--_display-bottom-app-name:block;--_spacing-left-body:74px}}@media screen and (min-width: 1040px){:host,:host([scrolled-back]){--_height:84px;--_base-height:84px;--_height-logo-svg:44px;--_height-top-bar:30px;--_height-bottom-bar:54px;--_display-main-nav:block;--_display-meta-nav:block;--_display-meta-nav-external:block;--_display-lang-switcher:block;--_display-top-app-name:block;--_display-bottom-app-name:none;--_grid-template-columns-container:repeat(16, minmax(0, 1fr));--_grid-column-body:3 / span 14;--_spacing-left-body:0;--_spacing-right-bottom-app-name:52px;--_spacing-x-container:var(--telekom-spacing-composition-space-08);--_justify-content-bottom-body:space-between;--scl-telekom-header-height:var(--_height)}:host([type='slim']){--_animation-name:none;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-07\n )}:host([type='slim'][scrolled]){--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-07\n )}:host([type='slim']),:host([scrolled]){--_height:72px;--_height-logo-svg:40px;--_height-top-bar:0;--_height-bottom-bar:72px;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_display-top-app-name:none;--_display-bottom-app-name:block;--_spacing-left-body:var(--telekom-spacing-composition-space-06);--scl-telekom-header-height:var(--_height)}:host([scrolled]){--_spacing-left-body:0}:host([type='slim']),:host([scrolled][app-name]){--_grid-column-body:2 / span 15}}@media screen and (min-width: 1296px){:host,:host([scrolled-back]){--_height:96px;--_base-height:96px;--_height-logo-svg:48px;--_height-top-bar:30px;--_height-bottom-bar:66px;--scl-telekom-header-height:var(--_height)}:host([type='slim']){--_height:84px;--_base-height:84px;--_height-logo-svg:44px;--_height-top-bar:0;--_height-bottom-bar:84px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-14\n );--_spacing-left-body:4px}:host([type='slim'][scrolled]){--_height:72px;--_height-logo-svg:40px;--_height-top-bar:0;--_height-bottom-bar:72px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-15\n );--_spacing-left-body:0}}@media screen and (min-width: 1680px){:host,:host([scrolled-back]){--_height:120px;--_base-height:120px;--_height-logo-svg:60px;--_height-top-bar:30px;--_height-bottom-bar:90px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-12\n );--_left-logo:var(--_spacing-x-container);--scl-telekom-header-height:var(--_height)}:host{--_max-width-container:var(--scl-grid-max-width, 1504px)}:host([type='slim']){--_height:96px;--_base-height:96px;--_height-logo-svg:48px;--_height-top-bar:0;--_height-bottom-bar:96px;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_display-top-app-name:none;--_display-bottom-app-name:block;--_spacing-left-body:24px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-14\n );--scl-telekom-header-height:var(--_height);--scl-telekom-header-bottom-spacing:36px}:host([type='slim'][scrolled]){--_height:72px;--_height-logo-svg:40px;--_height-top-bar:0;--_height-bottom-bar:72px;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_display-top-app-name:none;--_display-bottom-app-name:block;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-12\n );--scl-telekom-header-height:var(--_height)}}:host([type='subtle']){--shadow:none;--background:transparent}slot[name='logo']{position:absolute;top:0;left:var(--_left-logo);display:flex;align-items:center;justify-content:center;height:var(--_height);width:var(--_height);background:var(--background-logo);transition:var(--transition-common-scrolled)}[part~='meta-nav-external']{display:var(--_display-meta-nav-external);flex:1}[part~='meta-nav']{display:var(--_display-meta-nav);}[part~='lang-switcher']{display:var(--_display-lang-switcher);}slot[name='main-nav']{display:var(--_display-main-nav);flex:1}slot[name='functions']{display:block;}@media screen and (min-width: 1040px){slot[name='main-nav'],slot[name='functions']{padding-top:var(--telekom-spacing-composition-space-06)}}@media screen and (min-width: 1296px){slot[name='main-nav'],slot[name='functions']{padding-top:var(--telekom-spacing-composition-space-07)}}@media screen and (min-width: 1680px){slot[name='main-nav'],slot[name='functions']{padding-top:var(--telekom-spacing-composition-space-10)}:host([scrolled]) slot[name='functions'],:host([scrolled]) slot[name='main-nav']{padding-top:var(--telekom-spacing-composition-space-02)}}[part~='base']{height:var(--_base-height);width:100%;transition:var(--transition-common-scrolled)}[part~='fixed-wrapper']{position:fixed;z-index:99;width:100%;height:var(--_height);background-color:var(--background);box-shadow:var(--shadow);transition:var(--transition-common-scrolled)}[part~='container']{box-sizing:content-box;display:grid;grid-template-columns:var(--_grid-template-columns-container);column-gap:var(--_column-gap-container);position:relative;max-width:var(--_max-width-container);margin-left:auto;margin-right:auto;padding-left:var(--_spacing-x-container);padding-right:var(--_spacing-x-container);transition:var(--transition-common-scrolled)}[part~='app-logo']{height:var(--_height);width:var(--_height);display:flex;align-items:center;justify-content:center;transition:var(--transition-common-scrolled)}:host::part(logo-svg){height:var(--_height-logo-svg);transition:var(--transition-common-scrolled);margin-top:4px}:host::part(logo){height:calc(var(--_height) - 6px);width:calc(var(--_height) - 6px);display:flex;align-items:center;justify-content:center;transition:var(--transition-common-scrolled)}[part~='body']{display:block;grid-column:var(--_grid-column-body);flex:1;margin-left:var(--_spacing-left-body);transition:var(--transition-common-scrolled)}[part~='top-bar']{height:var(--_height-top-bar);display:flex;align-items:end;width:100%;transition:var(--transition-common-scrolled)}[part~='top-app-name']{display:var(--_display-top-app-name);margin-right:var(--_spacing-right-top-app-name)}[part~='top-body']{display:inline-flex;flex:1;transition:var(--transition-common-scrolled)}[part~='bottom-bar']{display:flex;justify-content:space-between;align-items:center;transition:var(--transition-common-scrolled)}[part~='bottom-app-name']{display:var(--_display-bottom-app-name);margin-right:var(--_spacing-right-bottom-app-name);animation-duration:var(--telekom-motion-duration-animation);min-width:108px}@media screen and (min-width: 1040px){:host([scrolled]) [part~='bottom-app-name']{animation-name:var(--_animation-name);animation-timing-function:var(--telekom-motion-easing-enter)}:host([scrolled-back]) [part~=' bottom-app-name']{animation-name:var(--_animation-name);animation-direction:reverse;animation-timing-function:var(--telekom-motion-easing-exit)}}[part~='bottom-body'],[part~='main-nav']{justify-content:var(--_justify-content-bottom-body);height:var(--_height-bottom-bar);display:inline-flex;flex:1;transition:var(--transition-common-scrolled)}[part~='app-name-text']{font-size:var(--font-size-app-name);font-weight:var(--font-weight-app-name);line-height:var(--line-height-app-name);color:var(--telekom-color-text-and-icon-primary-standard);letter-spacing:0.02em;text-decoration:none}@media screen and (min-width: 1040px){:host{--font-size-app-name:var(--telekom-typography-font-size-small)}}[part~='app-name-text']:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}[part~='app-name-text']:active{color:var(--telekom-color-text-and-icon-primary-pressed)}@keyframes toggle{from{opacity:0;transform:translate3d(\n var(--translate-x),\n var(--translate-y),\n var(--translate-z)\n )}}";const s=class{constructor(e){(0,n.r)(this,e),this.childrenTooMany=!1}connectedCallback(){this.hostElement.children.length>4&&(this.childrenTooMany=!0)}render(){return(0,n.h)(n.a,{class:"scale-telekom-mega-menu","children-too-many":this.childrenTooMany},(0,n.h)("div",{class:"scale-telekom-mega-menu-container"},(0,n.h)("slot",null)))}get hostElement(){return(0,n.g)(this)}};s.style=".scale-telekom-mega-menu{--spacing-y:var(--telekom-spacing-composition-space-18);--column-gap:var(--telekom-spacing-composition-space-10);--max-width-container:var(--scl-grid-max-width, 1504px);--spacing-x:var(--telekom-spacing-composition-space-08);--grid-template-columns:repeat(16, minmax(0, 1fr));display:block;padding-left:var(--spacing-x);padding-right:var(--spacing-x);margin-left:auto;margin-right:auto;max-width:var(--max-width-container)}.scale-telekom-mega-menu-container{box-sizing:border-box;display:grid;grid-template-columns:var(--grid-template-columns);grid-column:auto;column-gap:var(--column-gap);padding-top:var(--spacing-y);padding-bottom:var(--spacing-y);font-size:var(--telekom-typography-font-size-body);line-height:var(--telekom-typography-line-spacing-standard)}.scale-telekom-mega-menu :where(ul,ol){list-style:none;margin:0;padding:0}.scale-telekom-mega-menu :where(a){display:inline-block;color:var(--telekom-color-text-and-icon-standard);text-decoration:none}.scale-telekom-mega-menu :where(ul a){width:100%}.scale-telekom-mega-menu .scale-icon{width:20px;height:20px}.scale-telekom-mega-menu :where(a):hover{color:var(--telekom-color-text-and-icon-primary-hovered)}.scale-telekom-mega-menu :where(a):active{color:var(--telekom-color-text-and-icon-primary-pressed)}.scale-telekom-mega-menu :where(a):focus-visible{outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);outline-offset:1px;border-radius:var(--telekom-radius-small)}.scale-telekom-mega-menu :where(li+li){margin-top:var(--telekom-spacing-composition-space-07)}@media screen and (min-width: 1040px){.scale-telekom-mega-menu{--spacing-x:var(--telekom-spacing-composition-space-08)}}.scale-telekom-mega-menu[children-too-many] scale-telekom-mega-menu-column:first-child{grid-column:2 / span 3}@media screen and (min-width: 1680px){.scale-telekom-mega-menu[children-too-many] scale-telekom-mega-menu-column:first-child{grid-column:1 / span 3}}";const c=class{constructor(e){(0,n.r)(this,e),this.headingLevel=2,this.headingHasLink=!1}connectedCallback(){this.hostElement.querySelector('a[slot="heading"]')&&(this.headingHasLink=!0)}render(){return(0,n.h)(n.a,null,(0,n.h)("div",{part:(0,i.c)({base:!0,"heading-has-link":this.headingHasLink})},(0,n.h)("div",{part:"icon","aria-hidden":"true"},(0,n.h)("slot",{name:"icon"})),(0,n.h)("div",{part:"body"},(0,n.h)("div",{part:"heading",role:"heading","aria-level":this.headingLevel},(0,n.h)("slot",{name:"heading"}),(0,n.h)("scale-icon-navigation-right",{part:"icon-arrow-right",size:11,selected:!0})),(0,n.h)("slot",null))))}get hostElement(){return(0,n.g)(this)}};c.style=":host{--spacing-x-icon:1ch;grid-column:auto / span 3}:host(:first-child){grid-column:3 / span 3}[part~='base']{display:flex;flex-direction:column}[part~='icon']{transform:translateY(-0.125ch)}@media screen and (min-width: 1296px){[part~='base']{flex-direction:row}[part~='icon'] ::slotted(*){padding-right:var(--spacing-x-icon)}}[part~='heading']{display:flex;align-items:flex-start;height:calc(var(--telekom-typography-line-spacing-standard) * 2rem);font-weight:var(--telekom-typography-font-weight-bold);line-height:var(--telekom-typography-line-spacing-tight)}[part~='heading-has-link'] [part~='heading']:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}[part~='heading-has-link'] [part~='heading']:active{color:var(--telekom-color-text-and-icon-primary-pressed)}[part~='icon-arrow-right']{margin-top:0.5ch;margin-left:0.5ch}";function p(e){let t=0;for(;null!==e.parentElement;)e=e.parentElement,t++;return t}const h=class{constructor(e){(0,n.r)(this,e),this.scaleCloseNavFlyout=(0,n.c)(this,"scale-close-nav-flyout",7),this.backButtonTitle="Back",this.setLevelAttributeForAllItems=()=>{const e=Math.min(...Array.from(this.menuItems).map((e=>p(e))));Array.from(this.menuItems).forEach((t=>{const a=p(t)-e;t.setAttribute("level",String(a))}))},this.back=()=>{Array.from(this.openItems).forEach((e=>{if(e.getAttribute("level")===String(+this.currentLevel-1))return e.setAttribute("active",""),e.open=!1,e.removeAttribute("open")})),this.currentLevel=String(+this.currentLevel-1),Array.from(this.menuItems).forEach((e=>{e.setAttribute("current-level",this.currentLevel)}))}}handleSetMenuItemActive(e){this.menuItems.forEach((e=>e.removeAttribute("active"))),e.target.setAttribute("active",""),"SCALE-TELEKOM-MOBILE-MENU-ITEM"===e.target.parentElement.tagName&&e.target.parentElement.setAttribute("active","")}handleSetMenuItemOpen(e){e.target.setAttribute("open",""),this.currentLevel=String(+e.target.getAttribute("level")+1),Array.from(this.menuItems).forEach((e=>{e.setAttribute("current-level",this.currentLevel)}))}connectedCallback(){this.setLevelAttributeForAllItems(),this.currentLevel=this.activeItem?String(+this.activeItem.getAttribute("level")):"0",Array.from(this.menuItems).forEach((e=>{e.setAttribute("current-level",this.currentLevel)}))}componentWillRender(){}get menuItems(){return this.hostElement.querySelectorAll("scale-telekom-mobile-menu-item")}get activeItem(){return Array.from(this.menuItems).find((e=>e.hasAttribute("active")||e.active))}get openItems(){return Array.from(this.menuItems).filter((e=>e.hasAttribute("open")||e.open))}render(){return(0,n.h)(n.a,null,(0,n.h)("div",{part:"base"},(0,n.h)("nav",{part:"nav"},+this.currentLevel>0?(0,n.h)("button",{part:"back-button",onClick:()=>{this.back()}},(0,n.h)("scale-icon-navigation-left",{size:20}),this.backButtonTitle):null,(0,n.h)("slot",null))))}get hostElement(){return(0,n.g)(this)}};h.style=":host{--spacing:var(--telekom-spacing-composition-space-06);--background:var(--telekom-color-background-surface);--max-width:572px;--spacing-close-button:var(--telekom-spacing-composition-space-04);--radius-close-button:var(--telekom-radius-standard);--transition-close-button:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--box-shadow-close-button-focus:0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard);--color:var(--telekom-color-text-and-icon-standard);--color-hover:var(--telekom-color-primary-hovered);--color-active:var(--telekom-color-primary-pressed)}:host::part(base){margin:0 auto;background:var(--background);display:flex;justify-content:center;flex-direction:column;max-width:var(--max-width)}:host::part(back-button){display:flex;align-items:center;border:none;background:transparent;color:var(--color);font:var(--telekom-text-style-lead-text);width:100%;height:72px;cursor:pointer;padding:0}scale-icon-navigation-left{margin-right:12px}:host::part(nav){padding:var(--spacing) 0;max-width:var(--max-width);width:100%}:host::part(links-top){display:flex}[part~='app-name']>*{font-size:var(--font-size-app-name);font-weight:var(--font-weight-app-name);line-height:var(--line-height-app-name);color:var(--telekom-color-text-and-icon-primary-standard);letter-spacing:0.02em;text-decoration:none}[part~='app-name']>*:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}[part~='app-name']>*:active{color:var(--telekom-color-text-and-icon-primary-pressed)}";const m=class{constructor(e){(0,n.r)(this,e),this.scaleSetMenuItemActive=(0,n.c)(this,"scale-set-menu-item-active",7),this.scaleSetMenuItemOpen=(0,n.c)(this,"scale-set-menu-item-open",7),this.scaleCloseNavFlyout=(0,n.c)(this,"scale-close-nav-flyout",7),this.open=!1,this.active=!1,this.level="0",this.currentLevel="0",this.handleClick=e=>{e.stopImmediatePropagation();const t=!(e.target.getAttribute("href")||"").includes("javascript:void(0)");if(t&&!this.children.length)return(0,o.e)(this,"scaleCloseNavFlyout",e),(0,o.e)(this,"scaleSetMenuItemActive",e.detail);return t&&this.children.length&&this.open?((0,o.e)(this,"scaleCloseNavFlyout",e),(0,o.e)(this,"scaleSetMenuItemActive",e.detail)):(e.preventDefault(),this.toggleChildrenVisibility(!0),(0,o.e)(this,"scaleSetMenuItemOpen",e.detail))}}openChanged(e){this.toggleChildrenVisibility(e)}toggleChildrenVisibility(e){this.children.forEach((t=>{e&&t.getAttribute("level")===String(+this.level+1)?t.removeAttribute("hidden"):t.setAttribute("hidden","")}))}get children(){return this.hostElement.querySelectorAll("scale-telekom-mobile-menu-item")}get openChildren(){return Array.from(this.hostElement.querySelectorAll("scale-telekom-mobile-menu-item")).filter((e=>e.hasAttribute("open")||e.open))}render(){return(0,n.h)(n.a,{onClick:this.handleClick},(0,n.h)("nav",{part:(0,i.c)("base",`level-${this.level}`,`current-level-${this.currentLevel}`,{open:this.open,active:this.active,hidden:!this.open&&this.level!==this.currentLevel})},(0,n.h)("div",{part:(0,i.c)("header",{hidden:!!this.openChildren.length})},(0,n.h)("slot",null),(0,n.h)("div",{part:"icon-right-container"},!!this.children.length&&!this.open&&(0,n.h)("scale-icon-navigation-right",{size:20,color:this.active?"var(--telekom-color-primary-standard)":"var(--telekom-color-text-and-icon-standard)"}))),(0,n.h)("slot",{name:"children"})))}get hostElement(){return(0,n.g)(this)}static get watchers(){return{open:["openChanged"]}}};m.style=":host{--height:72px;--max-width:572px;--font-bold:var(--telekom-text-style-heading-5);--font-thin:var(--telekom-text-style-lead-text);--color:var(--telekom-color-text-and-icon-standard);--color-active:var(--telekom-color-primary-standard);--border-color:var(--telekom-color-ui-faint);--_box-shadow-active:none;--_spacing-level:0px;--_font:var(--font-thin);--_color:var(--color);position:relative}:host::part(level-0){--_spacing-level:0px;--_font:var(--font-bold)}:host::part(level-0 active){--_spacing-level:0px}:host::part(level-0 open){--_spacing-level:36px}:host::part(level-1),:host::part(level-2),:host::part(level-3),:host::part(level-4){--_spacing-level:36px}:host::part(level-1 current-level-2),:host::part(level-2 current-level-3),:host::part(level-3 current-level-4){--_font:var(--font-bold)}:host::part(active),:host::part(level-0 current-level-0 active),:host::part(level-1 current-level-1 active),:host::part(level-2 current-level-2 active),:host::part(level-3 current-level-3 active){--_color:var(--color-active);--_box-shadow-active:2px 0px 0px 0px var(--color-active) inset}:host::part(level-0 current-level-1),:host::part(level-1 current-level-2),:host::part(level-2 current-level-3),:host::part(level-3 current-level-4){--_color:var(--color)}:host::part(active-indicator){box-shadow:var(--_box-shadow-active);min-height:28px;min-width:2px}:host::part(base){font:var(--_font);max-width:var(--max-width)}::slotted(a){position:relative;display:flex;align-items:center;height:var(--height);width:calc(100% - var(--_spacing-level));max-width:572px;padding-left:var(--_spacing-level);color:var(--_color);text-decoration:none}:host::part(header){height:var(--height);border-style:solid;border-width:0 0 1px 0;border-color:var(--border-color);display:flex;width:100%;align-items:center;justify-content:flex-end;border-style:solid;border-width:0 0 1px 0;border-color:var(--border-color)}:host::part(hidden){display:none}:host::part(icon-right-container){display:flex;align-items:center;position:absolute}";const d=class{constructor(e){(0,n.r)(this,e),this.role="menu",this.alignment="left",this.variant="main-nav"}handleScaleExpanded(e){e.detail.expanded&&this.closeExpandedFlyoutSiblings(e.target)}closeExpandedFlyoutSiblings(e){[...this.hostElement.children].filter((t=>!t.contains(e))).forEach((e=>{const t=e.querySelector("scale-telekom-nav-flyout");var a;a=t,[...e.children].includes(a)&&t.expanded&&(t.expanded=!1)}))}connectedCallback(){[...this.hostElement.children].forEach((e=>{e.setAttribute("variant",this.variant)}))}render(){return(0,n.h)(n.a,{class:"scale-telekom-nav-list"},(0,n.h)("slot",null))}get hostElement(){return(0,n.g)(this)}};d.style=".scale-telekom-nav-list{--width:100%;--height:100%;--spacing-x-start:0;--flex-direction:row;--_spacing-x-slotted:var(--_spacing-x-slotted-main-nav, 24px);--_spacing-x-slotted-meta-nav-external:var(\n --telekom-spacing-composition-space-07\n );--_spacing-x-slotted-meta-nav:var(--telekom-spacing-composition-space-07);--_spacing-x-slotted-lang-switcher:var(\n --telekom-spacing-composition-space-04\n );--_spacing-x-slotted-main-nav:var(--telekom-spacing-composition-space-10);--_spacing-x-slotted-functions:var(--telekom-spacing-composition-space-08);display:flex;align-items:stretch;flex-direction:var(--flex-direction);width:var(--width);height:var(--height);margin-inline-start:var(--spacing-x-start)}.scale-telekom-nav-list[debug]{border:1px dotted gold}@media screen and (min-width: 1296px){.scale-telekom-nav-list{--_spacing-x-slotted-main-nav:var(--telekom-spacing-composition-space-14);--_spacing-x-slotted-meta-nav:var(--telekom-spacing-composition-space-07);--_spacing-x-slotted-meta-nav-external:var(\n --telekom-spacing-composition-space-07\n )}.scale-telekom-nav-list[debug]{border:1px dotted cyan}}@media screen and (min-width: 1680px){.scale-telekom-nav-list{--_spacing-x-slotted-main-nav:var(--telekom-spacing-composition-space-16)}.scale-telekom-nav-list[debug]{border:1px dotted magenta}}.scale-telekom-nav-list[variant='meta-nav-external']{--_spacing-x-slotted:var(--_spacing-x-slotted-meta-nav-external)}.scale-telekom-nav-list[variant='meta-nav']{--_spacing-x-slotted:var(--_spacing-x-slotted-meta-nav)}.scale-telekom-nav-list[variant='lang-switcher']{--_spacing-x-slotted:var(--telekom-spacing-composition-space-08)}@media screen and (min-width: 1040px){.scale-telekom-nav-list[variant='lang-switcher']{--_spacing-x-slotted:var(--telekom-spacing-composition-space-04)}}.scale-telekom-nav-list[variant='main-nav']{--_spacing-x-slotted:var(--_spacing-x-slotted-main-nav)}.scale-telekom-nav-list[variant='functions']{--_spacing-x-slotted:var(--_spacing-x-slotted-functions)}.scale-telekom-nav-list[alignment='left']{justify-content:flex-start}.scale-telekom-nav-list[alignment='right']{justify-content:flex-end}.scale-telekom-nav-list[alignment='center']{justify-content:center}.scale-telekom-nav-list[alignment='left']:not([variant='main-nav'])>.scale-telekom-nav-item button,.scale-telekom-nav-list[alignment='left']:not([variant='main-nav'])>.scale-telekom-nav-item a{margin-inline-end:var(--_spacing-x-slotted)}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item{position:relative;left:calc(-1 * var(--telekom-spacing-composition-space-06));margin-inline-end:0}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item button,.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item a{padding-inline-start:var(--telekom-spacing-composition-space-06)}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item button,.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item a{padding-inline-end:calc(\n var(--_spacing-x-slotted) - var(--telekom-spacing-composition-space-06)\n )}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item button::after,.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item a::after{margin-inline-start:var(--telekom-spacing-composition-space-06);width:calc(100% - var(--_spacing-x-slotted))}.scale-telekom-nav-list[alignment='right']:not([variant='main-nav'])>*:not(:first-child){margin-inline-start:var(--_spacing-x-slotted)}.scale-telekom-nav-list[slot='mobile-meta-nav'],.scale-telekom-nav-list[slot='mobile-meta-nav-external']{--flex-direction:column}"},91779:(e,t,a)=>{a.d(t,{a:()=>p,b:()=>l,c:()=>i,e:()=>o,g:()=>c,h:()=>n,i:()=>r});const n=e=>!!e.shadowRoot&&!!e.attachShadow,i=e=>{let t=document.styleSheets[0];if(!t){const e=document.createElement("style");document.head.appendChild(e),t=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),t.insertRule("html"+e+"{}",0),t.deleteRule(0),!0}catch(a){return!1}}()};function o(e,t,a){const n=t+"Legacy",i=[];return void 0!==e[n]&&i.push(e[n].emit(a)),i.push(e[t].emit(a)),i}function l(e,t){let a=e.target;const n=null!=a.shadowRoot,i=n?e.composedPath():[];do{if(a===t)return!1;a=n?i.shift():a.parentNode}while(a);return!0}const r=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let s=0;function c(){return s++}const p=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/17917.c1384d06.js.LICENSE.txt b/pr-preview/pr-186/assets/js/17917.c1384d06.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/17917.c1384d06.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/1802.475e50a9.js b/pr-preview/pr-186/assets/js/1802.475e50a9.js new file mode 100644 index 000000000..e45f3555a --- /dev/null +++ b/pr-preview/pr-186/assets/js/1802.475e50a9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1802; +exports.ids = [1802]; +exports.modules = { + +/***/ 41802: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_t_product_telekom_shop_b: () => (/* binding */ TProductTelekomShopB) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const TProductTelekomShopB = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 1.5V5h.75c.902 0 1.67.722 1.744 1.609l.006.141V9H22v13.5H2V9H.5V6.75c0-.903.722-1.67 1.609-1.744L2.25 5H3V1.5h18zM15.12 11v2.55h-.446v-.075c0-1.2-.67-1.95-1.935-1.95h-.074v5.4c0 .75.297 1.05 1.041 1.05h.224v.525h-3.87v-.525h.224c.744 0 1.041-.3 1.041-1.05v-5.4h-.074c-1.265 0-1.935.75-1.935 1.95v.075H8.87V11h6.25zm0 3.333V16h-1.667v-1.667h1.667zm-4.583 0V16H8.87v-1.667h1.667zM19.5 3v2h-15V3h15z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 1.5V5h.75c.902 0 1.67.722 1.744 1.609l.006.141V9H22v13.5H2V9H.5V6.75c0-.903.722-1.67 1.609-1.744L2.25 5H3V1.5h18zM20.5 9h-17v12h17V9zm-5.38 2v2.55h-.446v-.075c0-1.2-.67-1.95-1.935-1.95h-.074v5.4c0 .75.297 1.05 1.041 1.05h.224v.525h-3.87v-.525h.224c.744 0 1.041-.3 1.041-1.05v-5.4h-.074c-1.265 0-1.935.75-1.935 1.95v.075H8.87V11h6.25zm0 3.333V16h-1.667v-1.667h1.667zm-4.583 0V16H8.87v-1.667h1.667zM19.5 3v2h-15V3h15z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TProductTelekomShopB.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1803.9e64e78f.js b/pr-preview/pr-186/assets/js/1803.9e64e78f.js new file mode 100644 index 000000000..4aa502d0b --- /dev/null +++ b/pr-preview/pr-186/assets/js/1803.9e64e78f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1803; +exports.ids = [1803]; +exports.modules = { + +/***/ 31803: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_half_rating: () => (/* binding */ ContentHalfRating) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentHalfRating = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.997 1.501c.652 0 1.237.362 1.53.934l.062.136 2.064 5.062 5.452.398c.7.052 1.293.516 1.51 1.184.2.616.04 1.28-.408 1.735l-.118.11-4.175 3.527 1.304 5.308a1.715 1.715 0 01-.659 1.802 1.712 1.712 0 01-1.777.149l-.14-.079-4.645-2.881-4.646 2.881a1.716 1.716 0 01-2.604-1.725l.03-.146 1.304-5.309-4.176-3.527a1.714 1.714 0 01-.526-1.845 1.712 1.712 0 011.362-1.166l.148-.018 5.452-.399 2.064-5.061c.265-.65.89-1.07 1.592-1.07zm0 1.5a.205.205 0 00-.171.079l-.033.058L9.378 9.06l-6.38.468a.206.206 0 00-.193.151.206.206 0 00.023.186l.045.049 4.886 4.127-1.527 6.212c-.029.119.03.19.084.23.044.032.107.06.184.037l.06-.028 5.436-3.372V3.002z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.613 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.064-5.061a1.713 1.713 0 00-1.592-1.07c-.703 0-1.327.42-1.593 1.07L8.34 7.633l-5.452.398c-.7.052-1.292.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.304 5.308a1.715 1.715 0 00.658 1.802c.568.413 1.321.44 1.918.07l4.644-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.176-3.527a1.714 1.714 0 00.526-1.845zm-1.494.699l-4.886 4.127 1.527 6.212c.03.119-.03.19-.084.23a.203.203 0 01-.244.009l-5.436-3.372V3.002c.067 0 .156.024.203.137l2.416 5.922 6.38.468a.206.206 0 01.192.151.206.206 0 01-.068.235z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentHalfRating.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/18066.f8fcd2cb.js b/pr-preview/pr-186/assets/js/18066.f8fcd2cb.js new file mode 100644 index 000000000..662920cd4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/18066.f8fcd2cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[18066],{18066:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_history:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1.25a10.75 10.75 0 012.31 21.25 1.255 1.255 0 11-.52-2.455 8.24 8.24 0 10-7.214-1.856l.214.181 1.315-2 2.68 6.13H4.11l1.305-2A10.75 10.75 0 0112 1.25zm0 4a.75.75 0 01.743.648L12.75 6v5.55l3.85 2.035a.75.75 0 01-.588 1.376l-.112-.046-4.65-2.465V6a.75.75 0 01.75-.75z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1.75c5.65 0 10.25 4.6 10.3 10.3 0 4.657-3.268 8.833-7.778 9.937l-.272.063h-.15c-.35 0-.65-.25-.75-.6-.1-.4.15-.8.55-.9 3.95-.85 6.85-4.45 6.85-8.55 0-4.8-3.95-8.75-8.75-8.75S3.25 7.2 3.25 12c0 2.548 1.156 4.957 3.023 6.606l.227.194 1.55-2.4 2.7 6.1H4.1l1.6-2.45C3.25 18.15 1.75 15.2 1.75 12 1.75 6.35 6.35 1.75 12 1.75zm0 3.5c.367 0 .691.294.743.651L12.75 6v5.55l3.85 2.05c.35.2.5.65.3 1-.1.25-.4.4-.65.4a.814.814 0 01-.267-.063L15.9 14.9l-4.65-2.45V6c0-.4.35-.75.75-.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1809.114fa706.js b/pr-preview/pr-186/assets/js/1809.114fa706.js new file mode 100644 index 000000000..f87b72316 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1809.114fa706.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[1809],{1809:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_circle_add:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm5 11.75h-4.25V17a.75.75 0 11-1.5 0v-4.25H7a.75.75 0 110-1.5h4.25V7a.75.75 0 111.5 0v4.25H17a.75.75 0 110 1.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1c6.1 0 11 4.9 11 11s-4.9 11-11 11S1 18.1 1 12 5.9 1 12 1zm0 1.5c-5.25 0-9.5 4.25-9.5 9.5s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5-4.25-9.5-9.5-9.5zm0 3.75c.367 0 .691.294.743.651L12.75 7v4.25H17c.4 0 .75.35.75.75a.772.772 0 01-.651.743L17 12.75h-4.25V17c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L11.25 17v-4.25H7c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L7 11.25h4.25V7c0-.4.35-.75.75-.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1809.5cd1b6cf.js b/pr-preview/pr-186/assets/js/1809.5cd1b6cf.js new file mode 100644 index 000000000..b72ea1bc7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1809.5cd1b6cf.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1809; +exports.ids = [1809]; +exports.modules = { + +/***/ 1809: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_circle_add: () => (/* binding */ ActionCircleAdd) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionCircleAdd = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm5 11.75h-4.25V17a.75.75 0 11-1.5 0v-4.25H7a.75.75 0 110-1.5h4.25V7a.75.75 0 111.5 0v4.25H17a.75.75 0 110 1.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.1 0 11 4.9 11 11s-4.9 11-11 11S1 18.1 1 12 5.9 1 12 1zm0 1.5c-5.25 0-9.5 4.25-9.5 9.5s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5-4.25-9.5-9.5-9.5zm0 3.75c.367 0 .691.294.743.651L12.75 7v4.25H17c.4 0 .75.35.75.75a.772.772 0 01-.651.743L17 12.75h-4.25V17c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L11.25 17v-4.25H7c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L7 11.25h4.25V7c0-.4.35-.75.75-.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionCircleAdd.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1812.0e7cf27f.js b/pr-preview/pr-186/assets/js/1812.0e7cf27f.js new file mode 100644 index 000000000..08777878a --- /dev/null +++ b/pr-preview/pr-186/assets/js/1812.0e7cf27f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1812; +exports.ids = [1812]; +exports.modules = { + +/***/ 41812: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_location: () => (/* binding */ NavigationLocation) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationLocation = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.76 2.945A8.145 8.145 0 004.955 12.79l5.545 9.54a1.75 1.75 0 003.03 0l5.515-9.54a8.14 8.14 0 00-1.285-9.845zM12 11.5a3 3 0 110-6 3 3 0 010 6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .55c2.1 0 4.15.8 5.75 2.4a8.171 8.171 0 011.441 9.596l-.141.254-5.55 9.55c-.3.55-.9.85-1.5.85-.504 0-1.05-.21-1.407-.707l-.093-.143-5.55-9.55a8.17 8.17 0 011.3-9.85C7.85 1.35 9.9.55 12 .55zm0 1.5c-1.8 0-3.45.7-4.7 1.95a6.661 6.661 0 00-1.181 7.812l.131.238 5.55 9.55c.05.05.1.1.2.1.08 0 .128 0 .17-.051l.03-.049 5.55-9.55c1.5-2.6 1.1-5.9-1.05-8.05A6.577 6.577 0 0012 2.05zm0 3.45a3 3 0 110 6 3 3 0 010-6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationLocation.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/18445.cdf37eda.js b/pr-preview/pr-186/assets/js/18445.cdf37eda.js new file mode 100644 index 000000000..287321c11 --- /dev/null +++ b/pr-preview/pr-186/assets/js/18445.cdf37eda.js @@ -0,0 +1,2 @@ +/*! For license information please see 18445.cdf37eda.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[18445],{88114:(t,e,a)=>{a.d(e,{c:()=>s});var n,i,o,s=(n=function(t){!function(){var e={}.hasOwnProperty;function a(){for(var t=[],n=0;n{a.r(e),a.d(e,{scale_notification:()=>r});var n=a(90936),i=a(88114),o=a(91779);const s={informational:"scale-icon-alert-information",warning:"scale-icon-alert-warning",success:"scale-icon-action-success",danger:"scale-icon-alert-error"},r=class{constructor(t){(0,n.r)(this,t),this.scaleOpen=(0,n.c)(this,"scale-open",7),this.scaleBeforeClose=(0,n.c)(this,"scale-before-close",7),this.scaleClose=(0,n.c)(this,"scale-close",7),this.type="inline",this.variant="informational",this.dismissible=!1,this.innerAriaLive="assertive",this.innerRole="alert",this.closeButtonLabel="Close",this.closeButtonTitle="Close",this.headingLevel=2,this.ariaHeading="Information",this.isOpen=this.opened||!1,this.hasTextSlot=!1,this.lastCloseEventTrigger=null,this.open=()=>{this.isOpen=!0,this.animationState="in",requestAnimationFrame((async()=>{await(0,o.a)(this.hostElement.shadowRoot),this.animationState=void 0,this.scaleOpen.emit(),void 0!==this.delay&&setTimeout(this.timeout,this.delay)}))},this.close=()=>{const t=this.scaleBeforeClose.emit({trigger:this.lastCloseEventTrigger});this.lastCloseEventTrigger=null;t.defaultPrevented?this.opened=!0:(this.animationState="out",requestAnimationFrame((async()=>{await(0,o.a)(this.hostElement.shadowRoot),this.animationState=void 0,this.isOpen=!1,this.scaleClose.emit()})))},this.timeout=()=>{this.lastCloseEventTrigger="TIMEOUT",this.opened=!1}}connectedCallback(){this.hostElement.hasAttribute("opened")&&("polite"!==this.innerAriaLive&&"status"!==this.innerRole||(this.innerRole="status"),this.isOpen=!0),void 0!==this.delay&&setTimeout(this.timeout,this.delay),this.hasTextSlot=null!=this.hostElement.querySelector('[slot="text"]')}openedChanged(t){!0===t?(this.open(),this.lastCloseEventTrigger="ATTRIBUTE"):this.isOpen&&this.close()}render(){const t=s[this.variant];return(0,n.h)(n.a,null,this.styles&&(0,n.h)("style",null,this.styles),(0,n.h)("div",{part:(0,i.c)("base",this.animationState,`type-${this.type}`,`variant-${this.variant}`,this.isOpen&&"open"),role:this.innerRole},(0,n.h)("div",{part:"icon","aria-hidden":"true"},(0,n.h)("slot",{name:"icon"},(0,n.h)(t,{size:20,selected:"toast"===this.type}))),(0,n.h)("div",{part:"body"},(0,n.h)("div",{part:"heading",role:"heading","aria-level":this.headingLevel,"aria-label":`${this.ariaHeading} ${this.heading}`},this.heading?(0,n.h)("span",null,this.heading):null,(0,n.h)("slot",{name:"heading"})),this.hasTextSlot&&(0,n.h)("div",{part:"text"},(0,n.h)("slot",{name:"text"}))),this.dismissible&&(0,n.h)("scale-button",{part:"close-button",variant:"ghost",onClick:()=>{this.lastCloseEventTrigger="CLOSE_BUTTON",this.opened=!1}},(0,n.h)("slot",{name:"close-icon"},(0,n.h)("scale-icon-action-circle-close",{"aria-label":this.closeButtonLabel,accessibilityTitle:this.closeButtonTitle,decorative:!0,size:20})))))}get hostElement(){return(0,n.g)(this)}static get watchers(){return{opened:["openedChanged"]}}};r.style=":host{--width:100%;--width-toast:25rem;--radius:var(--telekom-radius-standard);--spacing-y:var(--telekom-spacing-composition-space-06);--spacing-y-inner:var(--telekom-spacing-composition-space-04);--spacing-x-aside:var(--telekom-spacing-composition-space-14);--duration-in:var(--telekom-motion-duration-transition);--duration-out:var(--telekom-motion-duration-transition);--easing-in:var(--telekom-motion-easing-enter);--easing-out:var(--telekom-motion-easing-exit);--translate-x:0;--translate-y:0;--translate-z:0;display:contents}[part~='base']{position:relative;display:none;box-sizing:border-box;border-radius:var(--radius);padding-right:var(--spacing-x-aside);width:var(--width);background:var(--_background-subtle);box-shadow:var(--_shadow);animation-duration:var(--duration)}[part~='base'][part~='open']{display:flex}@keyframes toggle{from{opacity:0;transform:translate3d(\n var(--translate-x),\n var(--translate-y),\n var(--translate-z)\n )}}[part~='in']{animation-name:toggle;animation-duration:var(--duration-in);animation-timing-function:var(--easing-in)}[part~='out']{animation-name:toggle;animation-direction:reverse;animation-duration:var(--duration-out);animation-timing-function:var(--easing-out)}[part~='variant-informational']{--_background-subtle:var(--telekom-color-functional-informational-subtle);--_background-accent:var(--telekom-color-functional-informational-standard);--_color-accent:var(--telekom-color-text-and-icon-functional-informational)}[part~='variant-warning']{--_background-subtle:var(--telekom-color-functional-warning-subtle);--_background-accent:var(--telekom-color-functional-warning-standard);--_color-accent:var(--telekom-color-text-and-icon-functional-warning)}[part~='variant-success']{--_background-subtle:var(--telekom-color-functional-success-subtle);--_background-accent:var(--telekom-color-functional-success-standard);--_color-accent:var(--telekom-color-text-and-icon-functional-success)}[part~='variant-danger']{--_background-subtle:var(--telekom-color-functional-danger-subtle);--_background-accent:var(--telekom-color-functional-danger-standard);--_color-accent:var(--telekom-color-text-and-icon-functional-danger)}[part~='type-banner']{--_shadow:var(--telekom-shadow-floating-standard)}[part~='type-toast']{--translate-x:var(--telekom-spacing-composition-space-05);--_shadow:var(--telekom-shadow-top);width:var(--width-toast)}[part='icon']{display:flex;flex-shrink:0;justify-content:center;align-items:flex-start;width:var(--spacing-x-aside);padding-top:var(--spacing-y);padding-bottom:var(--spacing-y);border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);color:var(--_color-accent)}[part~='type-toast'] [part='icon']{background:var(--_background-accent);color:var(--telekom-color-text-and-icon-white-standard);align-items:center}[part~='type-toast'][part~='variant-warning'] [part='icon']{color:var(--telekom-color-text-and-icon-black-standard)}[part='body']{margin-top:var(--spacing-y);margin-bottom:var(--spacing-y)}[part~='type-toast'] [part='body']{padding-left:var(--spacing-y)}[part='heading'],[part='heading'] ::slotted(*){font:var(--telekom-text-style-heading-6);line-height:var(--telekom-typography-line-spacing-tight);margin:0}[part='text']{margin-top:var(--spacing-y-inner)}::slotted(*){font:var(--telekom-text-style-body)}::slotted(p){margin:0;margin-top:var(--spacing-y-inner)}[part='close-button']{--color-ghost:var(--telekom-text-and-icon-standard);position:absolute;right:var(--telekom-spacing-composition-space-03);top:var(--telekom-spacing-composition-space-03)}@media screen and (forced-colors: active), (-ms-high-contrast: active){[part~='base']{border:1px solid white}[part='close-button']{--color-ghost:white}}"},91779:(t,e,a)=>{a.d(e,{a:()=>d,b:()=>s,c:()=>i,e:()=>o,g:()=>c,h:()=>n,i:()=>r});const n=t=>!!t.shadowRoot&&!!t.attachShadow,i=t=>{let e=document.styleSheets[0];if(!e){const t=document.createElement("style");document.head.appendChild(t),e=document.styleSheets[0],document.head.removeChild(t)}return function(){try{return/^:/.test(t)||(t=":"+t),e.insertRule("html"+t+"{}",0),e.deleteRule(0),!0}catch(a){return!1}}()};function o(t,e,a){const n=e+"Legacy",i=[];return void 0!==t[n]&&i.push(t[n].emit(a)),i.push(t[e].emit(a)),i}function s(t,e){let a=t.target;const n=null!=a.shadowRoot,i=n?t.composedPath():[];do{if(a===e)return!1;a=n?i.shift():a.parentNode}while(a);return!0}const r=t=>null!=t&&1===t.nodeType&&"SCALE-ICON"===t.nodeName.toUpperCase().substring(0,10);let l=0;function c(){return l++}const d=t=>Promise.all(t.getAnimations({subtree:!0}).map((t=>t.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/18445.cdf37eda.js.LICENSE.txt b/pr-preview/pr-186/assets/js/18445.cdf37eda.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/18445.cdf37eda.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/18527.b887551a.js b/pr-preview/pr-186/assets/js/18527.b887551a.js new file mode 100644 index 000000000..f044baaa5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/18527.b887551a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[18527],{18527:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_user_file_family:()=>i});var s=e(90936);const i=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M6.556 12.5c.013 1.604.591 3.059 1.521 4.135a4.72 4.72 0 00-3.533 3.642l-.04.222-.161 1.001H.009l-.006-.325.007-.622.01-.383.026-.65.056-.99.06-.813.08-.859.063-.59a4.25 4.25 0 014.015-3.763l.208-.005h2.028zm13.512 2a3.734 3.734 0 013.703 3.157c.084.525.137 1.199.171 1.857l.028.648.017.602.012.736h-4.841l-.161-1a4.723 4.723 0 00-3.172-3.75c.5-.55.9-1.205 1.18-1.934l.111-.316h2.952zM10.405 18L12 19.595 13.595 18h.711a3.234 3.234 0 013.175 2.556l.034.181.123.763H5.862l.122-.764a3.234 3.234 0 013.025-2.73L9.193 18h1.212zM12 8.5c2.25 0 3.946 1.697 3.946 3.946C15.946 14.957 14.176 17 12 17s-3.946-2.043-3.946-4.554C8.054 10.196 9.75 8.5 12 8.5zM17.566 4c2.38 0 4.174 1.794 4.175 4.174 0 2.428-1.782 4.918-4.32 4.817.04-.498.038-.924-.058-1.505 1.697.159 2.877-1.619 2.877-3.312 0-1.575-1.1-2.674-2.674-2.674-1.447 0-2.482.934-2.642 2.307a5.363 5.363 0 00-1.423-.609C13.918 5.322 15.525 4 17.566 4zM6.992 1.5c2.51 0 4.403 1.892 4.403 4.402 0 .382-.048.768-.13 1.148a5.513 5.513 0 00-1.714.499 4.24 4.24 0 00.343-1.647C9.894 4.193 8.701 3 6.992 3S4.09 4.193 4.09 5.902c0 1.928 1.405 3.89 3.307 3.559-.29.46-.511.973-.654 1.524-2.494-.162-4.153-2.7-4.153-5.083 0-2.51 1.892-4.402 4.402-4.402z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M6.556 12.5c.013 1.604.591 3.059 1.521 4.135a4.72 4.72 0 00-3.533 3.642l-.04.222-.161 1.001H.009l-.006-.325.007-.622.01-.383.026-.65.056-.99.06-.813.08-.859.063-.59a4.25 4.25 0 014.015-3.763l.208-.005h2.028zm13.512 2a3.734 3.734 0 013.703 3.157c.084.525.137 1.199.171 1.857l.028.648.017.602.012.736h-4.841l-.161-1a4.723 4.723 0 00-3.172-3.75c.5-.55.9-1.205 1.18-1.934l.111-.316h2.952zM10.405 18L12 19.595 13.595 18h.711a3.234 3.234 0 013.175 2.556l.034.181.123.763H5.862l.122-.764a3.234 3.234 0 013.025-2.73L9.193 18h1.212zM12 8.5c2.25 0 3.946 1.697 3.946 3.946C15.946 14.957 14.176 17 12 17s-3.946-2.043-3.946-4.554C8.054 10.196 9.75 8.5 12 8.5zm0 1.5c-1.44 0-2.446 1.006-2.446 2.446 0 1.475.983 3.054 2.446 3.054s2.446-1.579 2.446-3.054C14.446 11.006 13.44 10 12 10zm5.566-6c2.38 0 4.174 1.794 4.175 4.174 0 2.428-1.782 4.918-4.32 4.817.04-.498.038-.924-.058-1.505 1.697.159 2.877-1.619 2.877-3.312 0-1.575-1.1-2.674-2.674-2.674-1.447 0-2.482.934-2.642 2.307a5.363 5.363 0 00-1.423-.609C13.918 5.322 15.525 4 17.566 4zM6.992 1.5c2.51 0 4.403 1.892 4.403 4.402 0 .382-.048.768-.13 1.148a5.513 5.513 0 00-1.714.499 4.24 4.24 0 00.343-1.647C9.894 4.193 8.701 3 6.992 3S4.09 4.193 4.09 5.902c0 1.928 1.405 3.89 3.307 3.559-.29.46-.511.973-.654 1.524-2.494-.162-4.153-2.7-4.153-5.083 0-2.51 1.892-4.402 4.402-4.402z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19023.51b58d20.js b/pr-preview/pr-186/assets/js/19023.51b58d20.js new file mode 100644 index 000000000..fec774cf3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/19023.51b58d20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19023],{19023:(e,t,l)=>{l.r(t),l.d(t,{scale_icon_device_device_mesh:()=>s});var i=l(90936);const s=class{constructor(e){(0,i.r)(this,e),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const e=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},e,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12.004 1.5c5.798 0 10.5 4.701 10.5 10.5a10.46 10.46 0 01-2.982 7.32l-.224.223 2.155 1.099a.749.749 0 01-.57 1.382l-.112-.047-2.733-1.393a10.44 10.44 0 01-6.034 1.916c-2.117 0-4.082-.632-5.73-1.71l-.305-.206-2.733 1.393a.75.75 0 01-.77-1.284l.089-.051 2.154-1.1A10.462 10.462 0 011.504 12c0-5.799 4.7-10.5 10.5-10.5zm0 12.5a1 1 0 100 2 1 1 0 000-2zm0-3a3.995 3.995 0 00-3.353 1.827l-.114.186 1.168 1.007a2.502 2.502 0 012.299-1.52c.97 0 1.811.555 2.225 1.365l.073.155 1.168-1.007A3.999 3.999 0 0012.004 11zm0-3a6.991 6.991 0 00-5.607 2.818l-.156.217 1.146.987A5.496 5.496 0 0112.003 9.5c1.85 0 3.488.921 4.485 2.327l.131.195 1.146-.987A6.995 6.995 0 0012.004 8z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 14a1 1 0 100 2 1 1 0 000-2zm9.449 6.642l-2.155-1.099A10.462 10.462 0 0022.5 12c0-5.799-4.701-10.5-10.5-10.5S1.5 6.201 1.5 12c0 2.963 1.232 5.634 3.205 7.543l-2.154 1.099a.75.75 0 10.682 1.335l2.732-1.393A10.437 10.437 0 0012 22.5a10.44 10.44 0 006.035-1.916l2.732 1.393a.75.75 0 10.682-1.335zM12 21c-4.963 0-9-4.038-9-9 0-4.963 4.037-9 9-9 4.962 0 9 4.037 9 9 0 4.962-4.038 9-9 9zm0-10a3.999 3.999 0 00-3.466 2.013L9.7 14.02A2.502 2.502 0 0112 12.5c1.03 0 1.916.627 2.299 1.52l1.168-1.007A3.999 3.999 0 0012 11zm0-3a6.996 6.996 0 00-5.763 3.035l1.146.987A5.496 5.496 0 0112 9.5a5.496 5.496 0 014.617 2.522l1.145-.987A6.995 6.995 0 0012 8z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19094.87a8aea6.js b/pr-preview/pr-186/assets/js/19094.87a8aea6.js new file mode 100644 index 000000000..e6ff28f05 --- /dev/null +++ b/pr-preview/pr-186/assets/js/19094.87a8aea6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19094],{19094:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_content_code_scanner:()=>h});var i=s(90936);const h=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,i.h)("g",null,(0,i.h)("path",{d:"M2 21.5h9v-9H2v9zM3.5 14h6v6h-6v-6zM5 18.5h3v-3H5v3zM2 11h9V2H2v9zm1.5-7.5h6v6h-6v-6zM5 8h3V5H5v3zm12 11.25v2.25h4.5V17h-2.25v2.25H17zM12.5 2v9h9V2h-9zM20 9.5h-6v-6h6v6zM18.5 5h-3v3h3V5zM17 12.5h-2.25v2.25H12.5V17h2.25v2.25H17V17h2.25v-2.25H17V12.5zm-4.5 9h2.25v-2.25H12.5v2.25zm6.75-6.75h2.25V12.5h-2.25v2.25z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,i.g)(this)}};h.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/190a2de7.cb5377cb.js b/pr-preview/pr-186/assets/js/190a2de7.cb5377cb.js new file mode 100644 index 000000000..ff15302f0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/190a2de7.cb5377cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[3986],{97056:e=>{e.exports=JSON.parse('{"tag":{"label":"cts","permalink":"/docs-next/pr-preview/pr-186/docs/tags/cts","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph","title":"Auditing and Analyzing Logins and Logouts with Functiongraph","description":"Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19140.ad57e8fa.js b/pr-preview/pr-186/assets/js/19140.ad57e8fa.js new file mode 100644 index 000000000..c542e2f8a --- /dev/null +++ b/pr-preview/pr-186/assets/js/19140.ad57e8fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19140],{19140:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_support_chat:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12.002 1c5.798 0 10.5 4.701 10.5 10.5S17.8 22 12.002 22c-1.078 0-2.113-.17-3.09-.474l-.365-.12-2.292 1.3a1.74 1.74 0 01-.863.234c-1.034 0-1.94-.952-1.72-2.08l.033-.142.583-2.11A10.452 10.452 0 011.502 11.5c0-5.799 4.701-10.5 10.5-10.5zm0 13.498a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm.1-7.98c-1.882 0-2.824 1.286-2.967 2.642l-.013.156h1.813c.09-.737.511-1.158 1.167-1.158.69 0 1.12.435 1.12 1.135 0 .52-.32.866-.708 1.195l-.475.391c-.472.398-.902.851-.96 1.627l-.008.184v.604h1.748v-.333c0-.466.255-.812.586-1.138l.23-.215.345-.313c.53-.492 1.048-1.085 1.048-2.108 0-1.546-1.23-2.67-2.926-2.67z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1C6.201 1 1.5 5.701 1.5 11.5c0 2.745 1.063 5.236 2.787 7.108l-.583 2.11c-.328 1.189.61 2.222 1.687 2.222.285 0 .58-.073.863-.234l2.292-1.3C9.63 21.786 10.788 22 12 22c5.799 0 10.5-4.701 10.5-10.5S17.799 1 12 1zm0 19.5c-.994 0-1.99-.172-2.96-.51l-.642-.223-2.884 1.635a.249.249 0 01-.244.003.244.244 0 01-.12-.287l.805-2.914-.565-.613A8.971 8.971 0 013 11.5c0-4.963 4.037-9 9-9 4.962 0 9 4.037 9 9 0 4.962-4.038 9-9 9zm.101-13.982c-1.955 0-2.896 1.387-2.98 2.798h1.812c.09-.737.512-1.158 1.168-1.158.69 0 1.119.435 1.119 1.135 0 .624-.46.997-.947 1.392-.591.481-1.203.978-1.203 2.005v.604h1.747v-.333c0-.622.454-1.029.935-1.461.598-.537 1.275-1.144 1.275-2.313 0-1.546-1.23-2.67-2.926-2.67zM12 14.498a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/192.b22cf23b.js b/pr-preview/pr-186/assets/js/192.b22cf23b.js new file mode 100644 index 000000000..1c3320397 --- /dev/null +++ b/pr-preview/pr-186/assets/js/192.b22cf23b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[192],{192:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_gender_diverse:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 21.477c-3.308 0-6-2.691-6-6 0-3.31 2.692-6 6-6 3.31 0 6 2.69 6 6 0 3.309-2.69 6-6 6M13 7.04v-.934l.163.162c.244.245.564.367.884.367a1.25 1.25 0 00.884-2.134L13.769 3.34l1.202-1.202A1.25 1.25 0 1013.203.372L12 1.572 10.8.373A1.249 1.249 0 109.032 2.14l1.202 1.202L9.072 4.5a1.25 1.25 0 101.768 1.77l.16-.161v.933c-4.216.497-7.5 4.088-7.5 8.436 0 4.687 3.814 8.5 8.5 8.5 4.688 0 8.5-3.813 8.5-8.5 0-4.348-3.282-7.94-7.5-8.436","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 22a6.508 6.508 0 01-6.5-6.5C5.5 11.916 8.416 9 12 9s6.5 2.916 6.5 6.5S15.584 22 12 22m.75-14.462V5.06l1.018 1.018a.748.748 0 001.061 0 .749.749 0 000-1.06L13.061 3.25l1.767-1.768a.75.75 0 00-1.06-1.061L12 2.189 10.232.421a.75.75 0 10-1.06 1.061l1.767 1.768-1.768 1.768a.75.75 0 101.061 1.061L11.25 5.06v2.478A8 8 0 0012 23.5a8 8 0 00.75-15.962","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/192.f199e84a.js b/pr-preview/pr-186/assets/js/192.f199e84a.js new file mode 100644 index 000000000..d4cbc0356 --- /dev/null +++ b/pr-preview/pr-186/assets/js/192.f199e84a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 192; +exports.ids = [192]; +exports.modules = { + +/***/ 192: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_gender_diverse: () => (/* binding */ ContentGenderDiverse) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentGenderDiverse = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 21.477c-3.308 0-6-2.691-6-6 0-3.31 2.692-6 6-6 3.31 0 6 2.69 6 6 0 3.309-2.69 6-6 6M13 7.04v-.934l.163.162c.244.245.564.367.884.367a1.25 1.25 0 00.884-2.134L13.769 3.34l1.202-1.202A1.25 1.25 0 1013.203.372L12 1.572 10.8.373A1.249 1.249 0 109.032 2.14l1.202 1.202L9.072 4.5a1.25 1.25 0 101.768 1.77l.16-.161v.933c-4.216.497-7.5 4.088-7.5 8.436 0 4.687 3.814 8.5 8.5 8.5 4.688 0 8.5-3.813 8.5-8.5 0-4.348-3.282-7.94-7.5-8.436", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 22a6.508 6.508 0 01-6.5-6.5C5.5 11.916 8.416 9 12 9s6.5 2.916 6.5 6.5S15.584 22 12 22m.75-14.462V5.06l1.018 1.018a.748.748 0 001.061 0 .749.749 0 000-1.06L13.061 3.25l1.767-1.768a.75.75 0 00-1.06-1.061L12 2.189 10.232.421a.75.75 0 10-1.06 1.061l1.767 1.768-1.768 1.768a.75.75 0 101.061 1.061L11.25 5.06v2.478A8 8 0 0012 23.5a8 8 0 00.75-15.962", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentGenderDiverse.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19248.7621986e.js b/pr-preview/pr-186/assets/js/19248.7621986e.js new file mode 100644 index 000000000..a55baa376 --- /dev/null +++ b/pr-preview/pr-186/assets/js/19248.7621986e.js @@ -0,0 +1,2 @@ +/*! For license information please see 19248.7621986e.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19248],{13299:(t,e,n)=>{n.d(e,{a:()=>T,c:()=>ot,f:()=>L,o:()=>E,p:()=>nt,s:()=>P});const o=Math.min,i=Math.max,r=Math.round,l=t=>({x:t,y:t}),c={left:"right",right:"left",bottom:"top",top:"bottom"},s={start:"end",end:"start"};function a(t,e,n){return i(t,o(e,n))}function f(t,e){return"function"==typeof t?t(e):t}function u(t){return t.split("-")[0]}function d(t){return t.split("-")[1]}function p(t){return"x"===t?"y":"x"}function m(t){return"y"===t?"height":"width"}function h(t){return["top","bottom"].includes(u(t))?"y":"x"}function g(t){return p(h(t))}function y(t){return t.replace(/start|end/g,(t=>s[t]))}function x(t){return t.replace(/left|right|bottom|top/g,(t=>c[t]))}function w(t){return"number"!=typeof t?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(t):{top:t,right:t,bottom:t,left:t}}function b(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}function v(t,e,n){let{reference:o,floating:i}=t;const r=h(e),l=g(e),c=m(l),s=u(e),a="y"===r,f=o.x+o.width/2-i.width/2,p=o.y+o.height/2-i.height/2,y=o[c]/2-i[c]/2;let x;switch(s){case"top":x={x:f,y:o.y-i.height};break;case"bottom":x={x:f,y:o.y+o.height};break;case"right":x={x:o.x+o.width,y:p};break;case"left":x={x:o.x-i.width,y:p};break;default:x={x:o.x,y:o.y}}switch(d(e)){case"start":x[l]-=y*(n&&a?-1:1);break;case"end":x[l]+=y*(n&&a?-1:1)}return x}async function R(t,e){var n;void 0===e&&(e={});const{x:o,y:i,platform:r,rects:l,elements:c,strategy:s}=t,{boundary:a="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=f(e,t),h=w(m),g=c[p?"floating"===d?"reference":"floating":d],y=b(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(g)))||n?g:g.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(c.floating)),boundary:a,rootBoundary:u,strategy:s})),x="floating"===d?{...l.floating,x:o,y:i}:l.reference,v=await(null==r.getOffsetParent?void 0:r.getOffsetParent(c.floating)),R=await(null==r.isElement?void 0:r.isElement(v))&&await(null==r.getScale?void 0:r.getScale(v))||{x:1,y:1},T=b(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({rect:x,offsetParent:v,strategy:s}):x);return{top:(y.top-T.top+h.top)/R.y,bottom:(T.bottom-y.bottom+h.bottom)/R.y,left:(y.left-T.left+h.left)/R.x,right:(T.right-y.right+h.right)/R.x}}const T=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:r,rects:l,platform:c,elements:s,middlewareData:u}=e,{element:p,padding:h=0}=f(t,e)||{};if(null==p)return{};const y=w(h),x={x:n,y:i},b=g(r),v=m(b),R=await c.getDimensions(p),T="y"===b,L=T?"top":"left",E=T?"bottom":"right",P=T?"clientHeight":"clientWidth",S=l.reference[v]+l.reference[b]-x[b]-l.floating[v],C=x[b]-l.reference[b],A=await(null==c.getOffsetParent?void 0:c.getOffsetParent(p));let k=A?A[P]:0;k&&await(null==c.isElement?void 0:c.isElement(A))||(k=s.floating[P]||l.floating[v]);const D=S/2-C/2,W=k/2-R[v]/2-1,O=o(y[L],W),F=o(y[E],W),H=O,N=k-R[v]-F,V=k/2-R[v]/2+D,B=a(H,V,N),M=!u.arrow&&null!=d(r)&&V!=B&&l.reference[v]/2-(Vt+"-"+i)),e&&(r=r.concat(r.map(y)))),r}(c,T,v,S));const A=[c,...C],k=await R(e,L),D=[];let W=(null==(o=r.flip)?void 0:o.overflows)||[];if(p&&D.push(k[E]),h){const t=function(t,e,n){void 0===n&&(n=!1);const o=d(t),i=g(t),r=m(i);let l="x"===i?o===(n?"end":"start")?"right":"left":"start"===o?"bottom":"top";return e.reference[r]>e.floating[r]&&(l=x(l)),[l,x(l)]}(i,l,S);D.push(k[t[0]],k[t[1]])}if(W=[...W,{placement:i,overflows:D}],!D.every((t=>t<=0))){var O,F;const t=((null==(O=r.flip)?void 0:O.index)||0)+1,e=A[t];if(e)return{data:{index:t,overflows:W},reset:{placement:e}};let n=null==(F=W.filter((t=>t.overflows[0]<=0)).sort(((t,e)=>t.overflows[1]-e.overflows[1]))[0])?void 0:F.placement;if(!n)switch(b){case"bestFit":{var H;const t=null==(H=W.map((t=>[t.placement,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])?void 0:H[0];t&&(n=t);break}case"initialPlacement":n=c}if(i!==n)return{reset:{placement:n}}}return{}}}};const E=function(t){return void 0===t&&(t=0),{name:"offset",options:t,async fn(e){const{x:n,y:o}=e,i=await async function(t,e){const{placement:n,platform:o,elements:i}=t,r=await(null==o.isRTL?void 0:o.isRTL(i.floating)),l=u(n),c=d(n),s="y"===h(n),a=["left","top"].includes(l)?-1:1,p=r&&s?-1:1,m=f(e,t);let{mainAxis:g,crossAxis:y,alignmentAxis:x}="number"==typeof m?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...m};return c&&"number"==typeof x&&(y="end"===c?-1*x:x),s?{x:y*p,y:g*a}:{x:g*a,y:y*p}}(e,t);return{x:n+i.x,y:o+i.y,data:i}}}},P=function(t){return void 0===t&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:i}=e,{mainAxis:r=!0,crossAxis:l=!1,limiter:c={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...s}=f(t,e),d={x:n,y:o},m=await R(e,s),g=h(u(i)),y=p(g);let x=d[y],w=d[g];if(r){const t="y"===y?"bottom":"right";x=a(x+m["y"===y?"top":"left"],x,x-m[t])}if(l){const t="y"===g?"bottom":"right";w=a(w+m["y"===g?"top":"left"],w,w-m[t])}const b=c.fn({...e,[y]:x,[g]:w});return{...b,data:{x:b.x-n,y:b.y-o}}}}};function S(t){return k(t)?(t.nodeName||"").toLowerCase():"#document"}function C(t){var e;return(null==t||null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function A(t){var e;return null==(e=(k(t)?t.ownerDocument:t.document)||window.document)?void 0:e.documentElement}function k(t){return t instanceof Node||t instanceof C(t).Node}function D(t){return t instanceof Element||t instanceof C(t).Element}function W(t){return t instanceof HTMLElement||t instanceof C(t).HTMLElement}function O(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ShadowRoot||t instanceof C(t).ShadowRoot)}function F(t){const{overflow:e,overflowX:n,overflowY:o,display:i}=M(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!["inline","contents"].includes(i)}function H(t){return["table","td","th"].includes(S(t))}function N(t){const e=V(),n=M(t);return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!e&&!!n.backdropFilter&&"none"!==n.backdropFilter||!e&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((t=>(n.willChange||"").includes(t)))||["paint","layout","strict","content"].some((t=>(n.contain||"").includes(t)))}function V(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function B(t){return["html","body","#document"].includes(S(t))}function M(t){return C(t).getComputedStyle(t)}function I(t){return D(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function $(t){if("html"===S(t))return t;const e=t.assignedSlot||t.parentNode||O(t)&&t.host||A(t);return O(e)?e.host:e}function _(t){const e=$(t);return B(e)?t.ownerDocument?t.ownerDocument.body:t.body:W(e)&&F(e)?e:_(e)}function j(t,e,n){var o;void 0===e&&(e=[]),void 0===n&&(n=!0);const i=_(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=C(i);return r?e.concat(l,l.visualViewport||[],F(i)?i:[],l.frameElement&&n?j(l.frameElement):[]):e.concat(i,j(i,[],n))}function X(t){const e=M(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const i=W(t),l=i?t.offsetWidth:n,c=i?t.offsetHeight:o,s=r(n)!==l||r(o)!==c;return s&&(n=l,o=c),{width:n,height:o,$:s}}function Y(t){return D(t)?t:t.contextElement}function U(t){const e=Y(t);if(!W(e))return l(1);const n=e.getBoundingClientRect(),{width:o,height:i,$:c}=X(e);let s=(c?r(n.width):n.width)/o,a=(c?r(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}const q=l(0);function z(t){const e=C(t);return V()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:q}function G(t,e,n,o){void 0===e&&(e=!1),void 0===n&&(n=!1);const i=t.getBoundingClientRect(),r=Y(t);let c=l(1);e&&(o?D(o)&&(c=U(o)):c=U(t));const s=function(t,e,n){return void 0===e&&(e=!1),!(!n||e&&n!==C(t))&&e}(r,n,o)?z(r):l(0);let a=(i.left+s.x)/c.x,f=(i.top+s.y)/c.y,u=i.width/c.x,d=i.height/c.y;if(r){const t=C(r),e=o&&D(o)?C(o):o;let n=t.frameElement;for(;n&&o&&e!==t;){const t=U(n),e=n.getBoundingClientRect(),o=M(n),i=e.left+(n.clientLeft+parseFloat(o.paddingLeft))*t.x,r=e.top+(n.clientTop+parseFloat(o.paddingTop))*t.y;a*=t.x,f*=t.y,u*=t.x,d*=t.y,a+=i,f+=r,n=C(n).frameElement}}return b({width:u,height:d,x:a,y:f})}function J(t){return G(A(t)).left+I(t).scrollLeft}function K(t,e,n){let o;if("viewport"===e)o=function(t,e){const n=C(t),o=A(t),i=n.visualViewport;let r=o.clientWidth,l=o.clientHeight,c=0,s=0;if(i){r=i.width,l=i.height;const t=V();(!t||t&&"fixed"===e)&&(c=i.offsetLeft,s=i.offsetTop)}return{width:r,height:l,x:c,y:s}}(t,n);else if("document"===e)o=function(t){const e=A(t),n=I(t),o=t.ownerDocument.body,r=i(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),l=i(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let c=-n.scrollLeft+J(t);const s=-n.scrollTop;return"rtl"===M(o).direction&&(c+=i(e.clientWidth,o.clientWidth)-r),{width:r,height:l,x:c,y:s}}(A(t));else if(D(e))o=function(t,e){const n=G(t,!0,"fixed"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=W(t)?U(t):l(1);return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(e,n);else{const n=z(t);o={...e,x:e.x-n.x,y:e.y-n.y}}return b(o)}function Q(t,e){const n=$(t);return!(n===e||!D(n)||B(n))&&("fixed"===M(n).position||Q(n,e))}function Z(t,e,n){const o=W(e),i=A(e),r="fixed"===n,c=G(t,!0,r,e);let s={scrollLeft:0,scrollTop:0};const a=l(0);if(o||!o&&!r)if(("body"!==S(e)||F(i))&&(s=I(e)),o){const t=G(e,!0,r,e);a.x=t.x+e.clientLeft,a.y=t.y+e.clientTop}else i&&(a.x=J(i));return{x:c.left+s.scrollLeft-a.x,y:c.top+s.scrollTop-a.y,width:c.width,height:c.height}}function tt(t,e){return W(t)&&"fixed"!==M(t).position?e?e(t):t.offsetParent:null}function et(t,e){const n=C(t);if(!W(t))return n;let o=tt(t,e);for(;o&&H(o)&&"static"===M(o).position;)o=tt(o,e);return o&&("html"===S(o)||"body"===S(o)&&"static"===M(o).position&&!N(o))?n:o||function(t){let e=$(t);for(;W(e)&&!B(e);){if(N(e))return e;e=$(e)}return null}(t)||n}const nt={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=W(n),r=A(n);if(n===r)return e;let c={scrollLeft:0,scrollTop:0},s=l(1);const a=l(0);if((i||!i&&"fixed"!==o)&&(("body"!==S(n)||F(r))&&(c=I(n)),W(n))){const t=G(n);s=U(n),a.x=t.x+n.clientLeft,a.y=t.y+n.clientTop}return{width:e.width*s.x,height:e.height*s.y,x:e.x*s.x-c.scrollLeft*s.x+a.x,y:e.y*s.y-c.scrollTop*s.y+a.y}},getDocumentElement:A,getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:r,strategy:l}=t;const c=[..."clippingAncestors"===n?function(t,e){const n=e.get(t);if(n)return n;let o=j(t,[],!1).filter((t=>D(t)&&"body"!==S(t))),i=null;const r="fixed"===M(t).position;let l=r?$(t):t;for(;D(l)&&!B(l);){const e=M(l),n=N(l);n||"fixed"!==e.position||(i=null),(r?!n&&!i:!n&&"static"===e.position&&i&&["absolute","fixed"].includes(i.position)||F(l)&&!n&&Q(t,l))?o=o.filter((t=>t!==l)):i=e,l=$(l)}return e.set(t,o),o}(e,this._c):[].concat(n),r],s=c[0],a=c.reduce(((t,n)=>{const r=K(e,n,l);return t.top=i(r.top,t.top),t.right=o(r.right,t.right),t.bottom=o(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),K(e,s,l));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:et,getElementRects:async function(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||et,r=this.getDimensions;return{reference:Z(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){return X(t)},getScale:U,isElement:D,isRTL:function(t){return"rtl"===M(t).direction}},ot=(t,e,n)=>{const o=new Map,i={platform:nt,...n},r={...i.platform,_c:o};return(async(t,e,n)=>{const{placement:o="bottom",strategy:i="absolute",middleware:r=[],platform:l}=n,c=r.filter(Boolean),s=await(null==l.isRTL?void 0:l.isRTL(e));let a=await l.getElementRects({reference:t,floating:e,strategy:i}),{x:f,y:u}=v(a,o,s),d=o,p={},m=0;for(let h=0;h{n.d(e,{s:()=>r});const o={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},i={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function r({tag:t="WIP",extraMessage:e=null,message:n=null,source:r=null,type:l="info"}){(0,console[l])(`%c scale \u2013 ${o[t]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${n||i[t]} ${e?"\n"+e:""}\n `,null!==r?"\nsource:":"","object"==typeof r?r:`${r}`,null!==r?"\n\n":"")}},91779:(t,e,n)=>{n.d(e,{a:()=>f,b:()=>l,c:()=>i,e:()=>r,g:()=>a,h:()=>o,i:()=>c});const o=t=>!!t.shadowRoot&&!!t.attachShadow,i=t=>{let e=document.styleSheets[0];if(!e){const t=document.createElement("style");document.head.appendChild(t),e=document.styleSheets[0],document.head.removeChild(t)}return function(){try{return/^:/.test(t)||(t=":"+t),e.insertRule("html"+t+"{}",0),e.deleteRule(0),!0}catch(n){return!1}}()};function r(t,e,n){const o=e+"Legacy",i=[];return void 0!==t[o]&&i.push(t[o].emit(n)),i.push(t[e].emit(n)),i}function l(t,e){let n=t.target;const o=null!=n.shadowRoot,i=o?t.composedPath():[];do{if(n===e)return!1;n=o?i.shift():n.parentNode}while(n);return!0}const c=t=>null!=t&&1===t.nodeType&&"SCALE-ICON"===t.nodeName.toUpperCase().substring(0,10);let s=0;function a(){return s++}const f=t=>Promise.all(t.getAnimations({subtree:!0}).map((t=>t.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19248.7621986e.js.LICENSE.txt b/pr-preview/pr-186/assets/js/19248.7621986e.js.LICENSE.txt new file mode 100644 index 000000000..6ba7e7f54 --- /dev/null +++ b/pr-preview/pr-186/assets/js/19248.7621986e.js.LICENSE.txt @@ -0,0 +1,10 @@ +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/1941.a76f2ed2.js b/pr-preview/pr-186/assets/js/1941.a76f2ed2.js new file mode 100644 index 000000000..88fce28f7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1941.a76f2ed2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[1941],{1941:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_alert_imprint_dataprivacy:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M12 1l9.5 2.15v8c0 2.85-.95 5.55-2.6 7.75a12.863 12.863 0 01-4.844 3.9l-.378.167-.18.075-.343.133-.314.113-.413.135-.428.127c-2.64-.754-4.43-2.062-5.508-3.078l-.277-.27-.241-.25a5.328 5.328 0 01-.108-.118l-.19-.216-.158-.189-.218-.279c-1.674-2.152-2.707-4.808-2.794-7.616L2.5 11.15v-8L12 1zm-1.4 12l1.4 1.4 1.4-1.4h1c.897 0 1.66.624 1.911 1.494l.039.156.15.85h-9l.15-.85c.142-.897.908-1.571 1.793-1.644L9.6 13h1zM12 6.5c1.4 0 2.5 1 2.5 2.5 0 1.55-1.05 3-2.5 3s-2.5-1.5-2.5-3 1.1-2.5 2.5-2.5z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12 1l9.5 2.15v8c0 2.85-.95 5.55-2.6 7.75a12.863 12.863 0 01-4.844 3.9l-.378.167-.18.075-.343.133-.314.113-.413.135-.428.127c-2.64-.754-4.43-2.062-5.508-3.078l-.277-.27-.241-.25a5.328 5.328 0 01-.108-.118l-.19-.216-.158-.189-.218-.279c-1.674-2.152-2.707-4.808-2.794-7.616L2.5 11.15v-8L12 1zm0 1.5L4 4.35v6.8c0 4.95 3.3 9.35 8 10.8 4.606-1.421 7.867-5.675 7.996-10.504L20 11.15v-6.8L12 2.5zM10.6 13l1.4 1.4 1.4-1.4h1c.897 0 1.66.624 1.911 1.494l.039.156.15.85h-9l.15-.85c.142-.897.908-1.571 1.793-1.644L9.6 13h1zM12 6.5c1.4 0 2.5 1 2.5 2.5 0 1.55-1.05 3-2.5 3s-2.5-1.5-2.5-3 1.1-2.5 2.5-2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1941.b45e99bc.js b/pr-preview/pr-186/assets/js/1941.b45e99bc.js new file mode 100644 index 000000000..f1b732313 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1941.b45e99bc.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 1941; +exports.ids = [1941]; +exports.modules = { + +/***/ 1941: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_imprint_dataprivacy: () => (/* binding */ AlertImprintDataprivacy) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertImprintDataprivacy = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1l9.5 2.15v8c0 2.85-.95 5.55-2.6 7.75a12.863 12.863 0 01-4.844 3.9l-.378.167-.18.075-.343.133-.314.113-.413.135-.428.127c-2.64-.754-4.43-2.062-5.508-3.078l-.277-.27-.241-.25a5.328 5.328 0 01-.108-.118l-.19-.216-.158-.189-.218-.279c-1.674-2.152-2.707-4.808-2.794-7.616L2.5 11.15v-8L12 1zm-1.4 12l1.4 1.4 1.4-1.4h1c.897 0 1.66.624 1.911 1.494l.039.156.15.85h-9l.15-.85c.142-.897.908-1.571 1.793-1.644L9.6 13h1zM12 6.5c1.4 0 2.5 1 2.5 2.5 0 1.55-1.05 3-2.5 3s-2.5-1.5-2.5-3 1.1-2.5 2.5-2.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1l9.5 2.15v8c0 2.85-.95 5.55-2.6 7.75a12.863 12.863 0 01-4.844 3.9l-.378.167-.18.075-.343.133-.314.113-.413.135-.428.127c-2.64-.754-4.43-2.062-5.508-3.078l-.277-.27-.241-.25a5.328 5.328 0 01-.108-.118l-.19-.216-.158-.189-.218-.279c-1.674-2.152-2.707-4.808-2.794-7.616L2.5 11.15v-8L12 1zm0 1.5L4 4.35v6.8c0 4.95 3.3 9.35 8 10.8 4.606-1.421 7.867-5.675 7.996-10.504L20 11.15v-6.8L12 2.5zM10.6 13l1.4 1.4 1.4-1.4h1c.897 0 1.66.624 1.911 1.494l.039.156.15.85h-9l.15-.85c.142-.897.908-1.571 1.793-1.644L9.6 13h1zM12 6.5c1.4 0 2.5 1 2.5 2.5 0 1.55-1.05 3-2.5 3s-2.5-1.5-2.5-3 1.1-2.5 2.5-2.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertImprintDataprivacy.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1968.9d7f5160.js b/pr-preview/pr-186/assets/js/1968.9d7f5160.js new file mode 100644 index 000000000..6906889a4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1968.9d7f5160.js @@ -0,0 +1,275 @@ +"use strict"; +exports.id = 1968; +exports.ids = [1968]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 81968: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_collapsible: () => (/* binding */ Collapsible) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91779); + + + + +const collapsibleCss = ":host{--spacing-y:var(--telekom-spacing-composition-space-06);--font:var(--telekom-text-style-heading-5);--border-width-button:var(--telekom-spacing-composition-space-02);--radius-button:var(--telekom-radius-small);--spacing-left-button:0;--spacing-left-button-text:var(--telekom-spacing-composition-space-04);--color-button-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-button-active:var(--telekom-color-text-and-icon-primary-pressed);--background-button-hover:none;--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--spacing-right-content:var(--telekom-spacing-composition-space-14);--spacing-left-content:34px;--spacing-top-content:var(--telekom-spacing-composition-space-06);--spacing-bottom-content:var(--telekom-spacing-composition-space-08)}.collapsible{position:relative;margin:var(--spacing-y) 0}.collapsible--expanded:before{top:0;left:0;right:0;width:100%;border:var(--telekom-spacing-composition-space-01) solid transparent;content:'';display:block;position:absolute;pointer-events:none;bottom:calc(-1 * var(--spacing-y))}.collapsible__heading{margin:0}.collapsible__button{color:currentColor;width:100%;display:flex;text-align:left;align-items:center;padding-top:0;border-color:transparent;border-style:solid;padding-right:0;padding-bottom:0;background-color:transparent;font:var(--font);border-width:var(--border-width-button);border-radius:var(--radius-button);padding-left:var(--spacing-left-button);font-family:inherit;word-spacing:inherit;letter-spacing:inherit}.collapsible__button-text{margin-left:var(--spacing-left-button-text)}.collapsible__button:hover{cursor:pointer;color:var(--color-button-hover);background-color:var(--background-button-hover)}.collapsible__button:active{color:var(--color-button-active);background-color:transparent}.collapsible__button:focus{outline:var(--focus-outline)}.collapsible__icon{flex-shrink:0}.collapsible__icon-right{margin-left:auto}.collapsible__button[aria-expanded='true'] .collapsible__icon{}.collapsible__content{padding-right:var(--spacing-right-content);padding-left:var(--spacing-left-content);margin-top:var(--spacing-top-content);margin-bottom:var(--spacing-bottom-content)}::slotted(*:not([slot='heading'])){font:var(--telekom-text-style-body)}"; + +const DEFAULT_ICON_SIZE = 24; +let i = 0; +const Collapsible = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleExpand = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-expand", 7); + this.scaleExpandLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleExpand", 7); + /** Default aria-level for heading */ + this.headingLevel = 2; + this.iconLocation = 'left'; + this.handleClick = () => { + this.expanded = !this.expanded; + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleExpand', { expanded: this.expanded }); + }; + } + componentWillLoad() { + const j = i++; + this.headingId = 'collapsable-heading-' + j; + this.panelId = 'collapsable-panel-' + j; + } + componentDidLoad() { + this.setHeadingFromLightDOM(); + } + /** + * @deprecated Safe to remove in 4.0 + * @see https://github.com/telekom/scale/pull/319 + */ + setHeadingFromLightDOM() { + const lightHeading = this.hostElement.querySelector(':first-child'); + if (lightHeading == null) { + return; + } + // Only proceed if the element is not a heading and has no `slot` attribute + const isHeading = lightHeading.tagName.charAt(0).toUpperCase() === 'H'; + const hasSlotAttr = lightHeading.hasAttribute('slot'); + if (isHeading && !hasSlotAttr) { + this.headingElement.innerHTML = lightHeading.innerHTML; + lightHeading.style.display = 'none'; + } + } + render() { + const IconTag = this.expanded + ? 'scale-icon-navigation-collapse-down' + : 'scale-icon-navigation-right'; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', this.expanded && 'expanded') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("h2", { "aria-level": this.headingLevel, class: "collapsible__heading", part: "heading" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", { id: this.headingId, class: "collapsible__button", part: "button", onClick: this.handleClick, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.panelId }, this.iconLocation === 'left' ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(IconTag, { size: DEFAULT_ICON_SIZE, decorative: true, class: "collapsible__icon", part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('icon', this.expanded && 'expanded') })) : null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { ref: (el) => (this.headingElement = el), class: "collapsible__button-text", part: "button-text" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "heading" })), this.iconLocation === 'right' ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(IconTag, { size: DEFAULT_ICON_SIZE, decorative: true, class: "collapsible__icon collapsible__icon-right", part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('icon', this.expanded && 'expanded') })) : null)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { id: this.panelId, role: "region", "aria-labelledby": this.headingId, hidden: !this.expanded, class: "collapsible__content", part: "content" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('collapsible', this.expanded && 'collapsible--expanded'); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +Collapsible.style = collapsibleCss; + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1980.afddfba8.js b/pr-preview/pr-186/assets/js/1980.afddfba8.js new file mode 100644 index 000000000..7a84601b6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1980.afddfba8.js @@ -0,0 +1,313 @@ +"use strict"; +exports.id = 1980; +exports.ids = [1980]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 71980: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_chip: () => (/* binding */ Chip) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91779); + + + + +const chipCss = ":host{--height:32px;--font-size:var(--telekom-typography-font-size-body);--line-height:var(--telekom-typography-line-spacing-standard);--font-weight:var(--telekom-typography-font-weight-bold);--color-focus:var(--telekom-color-functional-focus-standard);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--box-shadow:0px 1px 2px rgba(0, 0, 0, 0.1), 0px 2px 8px rgba(0, 0, 0, 0.1);--background-standard-selected:var(--telekom-color-ui-extra-strong);--color-standard-selected:var(\n --telekom-color-text-and-icon-inverted-standard\n )}.chip{box-sizing:border-box;border:var(--telekom-spacing-composition-space-01) solid transparent;display:inline-flex;outline:none;padding:0 var(--telekom-spacing-composition-space-05);text-align:center;align-items:center;white-space:nowrap;border-radius:1rem;border-color:rgba(255, 255, 255, 0.14);height:var(--height);vertical-align:baseline;justify-content:center;cursor:default;color:var(--telekom-color-text-and-icon-standard);background:var(--telekom-color-text-and-icon-inverted-standard);border:1px solid var(--telekom-color-ui-border-standard)}.chip.chip--selected.chip--type-dynamic{padding-right:var(--telekom-spacing-composition-space-03)}.chip.chip--selected.chip--type-dynamic button{border:none;cursor:pointer;padding:0;height:24px;width:24px;outline:none;background:transparent;border-radius:var(--telekom-radius-circle);display:flex;justify-content:center;align-items:center;background-color:transparent}.chip.chip--selected.chip--type-dynamic.chip--variant-standard button:hover{background:var(--telekom-color-ui-state-fill-hovered-inverted)}.chip.chip--selected.chip--type-dynamic.chip--variant-standard button:active{background:var(--telekom-color-ui-state-fill-pressed-inverted)}.chip.chip--selected.chip--type-dynamic button:focus{justify-content:center;outline:var(--focus-outline)}.chip.chip--selected.chip--type-dynamic.chip--variant-standard scale-icon-action-close{padding:0;color:var(--telekom-color-text-and-icon-inverted-standard)}.chip:not(.chip--disabled):not(.chip--type-dynamic):focus,.chip.chip--type-dynamic:not(.chip--selected):focus{outline:var(--telekom-spacing-composition-space-02) solid var(--color-focus);outline-offset:var(--telekom-spacing-composition-space-01)}.chip:not(.chip--disabled):not(.chip--type-dynamic):hover,.chip.chip--type-dynamic:not(.chip--selected):hover{background:linear-gradient(\n var(--telekom-color-ui-state-fill-hovered),\n var(--telekom-color-ui-state-fill-hovered)\n ),\n var(--telekom-color-text-and-icon-inverted-standard)}.chip:not(.chip--disabled):not(.chip--type-dynamic):active,.chip.chip--type-dynamic:not(.chip--selected):active{background:linear-gradient(\n var(--telekom-color-ui-state-fill-pressed),\n var(--telekom-color-ui-state-fill-pressed)\n ),\n var(--telekom-color-text-and-icon-inverted-standard)}.chip--selected{background:var(--background-standard-selected);color:var(--color-standard-selected)}.chip--selected:not(.chip--disabled):not(.chip--type-dynamic):hover{background:linear-gradient(\n var(--telekom-color-ui-state-fill-hovered-inverted),\n var(--telekom-color-ui-state-fill-hovered-inverted)\n ),\n var(--background-standard-selected)}.chip--selected:not(.chip--disabled):not(.chip--type-dynamic):active{background:linear-gradient(\n var(--telekom-color-ui-state-fill-pressed-inverted),\n var(--telekom-color-ui-state-fill-pressed-inverted)\n ),\n var(--background-standard-selected)}.chip-label{padding:0 var(--telekom-spacing-composition-space-03) 0\n var(--telekom-spacing-composition-space-03);font-weight:var(--telekom-typography-font-weight-bold);font-size:1rem;line-height:100%}.chip--selected .chip-label{padding-right:var(--telekom-spacing-composition-space-04)}.chip--type-dynamic.chip--selected .chip-label{padding-right:var(--telekom-spacing-composition-space-03)}.chip slot[name='chip-icon']::slotted(*){padding-right:var(--telekom-spacing-composition-space-03);padding-top:var(--telekom-spacing-composition-space-03)}.chip.chip--disabled:not(.chip--type-dynamic){color:var(--telekom-color-text-and-icon-disabled);border:1px solid var(--telekom-color-ui-border-disabled)}.chip--selected:not(.chip--variant-outlined):not(.chip--type-dynamic).chip--disabled{background:var(--telekom-color-ui-disabled);color:var(--telekom-color-text-and-icon-disabled);border:none}.chip--variant-outlined.chip--selected.chip--disabled:not(.chip--type-dynamic){background-color:var(--telekom-color-text-and-icon-inverted-standard);color:var(--telekom-color-text-and-icon-disabled);border:1px solid var(--telekom-color-ui-border-disabled)}.chip.chip--variant-outline.chip--selected:not(.chip.chip--disabled):not(.chip--type-dynamic):hover{background:linear-gradient(\n var(--telekom-color-ui-state-fill-hovered),\n var(--telekom-color-ui-state-fill-hovered)\n ),\n var(--telekom-color-text-and-icon-inverted-standard)}.chip.chip--variant-outline.chip--selected:not(.chip.chip--disabled):not(.chip--type-dynamic):active{background:linear-gradient(\n var(--telekom-color-ui-state-fill-pressed),\n var(--telekom-color-ui-state-fill-pressed)\n ),\n var(--telekom-color-text-and-icon-inverted-standard)}.chip.chip--variant-outline.chip--selected{color:var(--telekom-color-text-and-icon-primary-standard);background:var(--telekom-color-text-and-icon-inverted-standard);border:1px solid var(--telekom-color-text-and-icon-primary-standard)}.chip.chip--selected.chip--type-dynamic.chip--variant-outline scale-icon-action-close{padding:0;color:var(--telekom-color-text-and-icon-primary-standard)}.chip.chip--selected.chip--type-dynamic.chip--variant-outline button:hover{background:var(--telekom-color-ui-state-fill-hovered)}.chip.chip--selected.chip--type-dynamic.chip--variant-outline button:hover scale-icon-action-close{color:var(--telekom-color-text-and-icon-primary-hovered)}.chip.chip--selected.chip--type-dynamic.chip--variant-outline button:active{background:var(telekom-color-ui-state-fill-pressed)}.chip.chip--selected.chip--type-dynamic.chip--variant-outline button:active scale-icon-action-close{color:var(--telekom-color-text-and-icon-primary-pressed)}"; + +const Chip = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + this.scaleClose = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-close", 7); + this.scaleCloseLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleClose", 7); + /** (optional) */ + this.variant = 'standard'; + /** (optional) */ + this.type = 'persistent'; + /** (optional) */ + this.selected = false; + /** (optional) chip aria-role */ + this.ariaRoleTitle = 'switch'; + /** @deprecated (optional) chip aria-checked - should be derived from selected state attribute */ + this.ariaCheckedState = false; + /** (optional) chip disabled */ + this.disabled = false; + /** (optional) Dismiss label */ + this.dismissText = 'dismiss'; + this.handleClose = (event) => { + event.preventDefault(); + event.stopPropagation(); + if (this.disabled && this.type !== 'dynamic') { + return; + } + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleClose', event); + }; + this.handleClick = (event) => { + if (this.type !== 'dynamic') { + this.selected = !this.selected; + } + event.preventDefault(); + event.stopPropagation(); + if (this.disabled && this.type !== 'dynamic') { + return; + } + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleChange', event); + }; + } + componentDidRender() { + // handle no setted icon size attribute + const defaultIconSize = 24; + const iconSlot = this.hostElement.querySelector('[slot="chip-icon"]'); + if (iconSlot !== null) { + if (iconSlot.children[0].getAttribute('size') === String(defaultIconSize)) { + iconSlot.children[0].setAttribute('size', String(16)); + } + if (this.selected) { + iconSlot.children[0].setAttribute('selected', String(true)); + } + else { + iconSlot.children[0].setAttribute('selected', String(false)); + } + } + } + disconnectedCallback() { } + getIcon() { + if (this.type === 'dynamic' && this.selected) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", { part: "button-dismissable", disabled: this.disabled, "aria-label": this.dismissText, onClick: !this.disabled ? this.handleClose : null }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-close", { "accessibility-title": "close", size: 16, selected: true }))); + } + else if (this.type === 'persistent' && this.selected) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-checkmark", { "accessibility-title": "success", size: 16, selected: true })); + } + else if (this.type === 'persistent') { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-checkmark", { "accessibility-title": "success", size: 16 })); + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), this.type === 'dynamic' && this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { role: this.ariaRoleTitle, tabindex: this.selected ? '0' : '-1', part: this.getBasePartMap(), class: this.getCssClassMap(), "aria-checked": this.selected.toString(), onClick: !this.disabled || this.type === 'dynamic' + ? this.handleClick + : null }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "chip-icon" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "chip-label" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)), this.selected ? this.getIcon() : null)) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { role: this.ariaRoleTitle, "aria-checked": this.selected.toString(), tabindex: this.selected ? '0' : '-1', part: this.getBasePartMap(), class: this.getCssClassMap(), onClick: !this.disabled || this.type === 'dynamic' + ? this.handleClick + : null }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "chip-icon" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "chip-label" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)), this.selected ? this.getIcon() : null)))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const component = 'chip'; + const prefix = mode === 'basePart' ? '' : `${component}--`; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)(mode === 'basePart' ? 'base' : component, !!this.selected && `${prefix}selected`, !!this.disabled && `${prefix}disabled`, this.type && `${prefix}type-${this.type}`, this.variant && `${prefix}variant-${this.variant}`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +Chip.style = chipCss; + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19867.94898467.js b/pr-preview/pr-186/assets/js/19867.94898467.js new file mode 100644 index 000000000..dd05dd3d5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/19867.94898467.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19867],{19867:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_arrow_down:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M13.67 14V4.75a1.25 1.25 0 10-2.5 0V14H8l4.42 6.75L16.84 14h-3.17z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("defs",null,(0,s.h)("path",{d:"M13.15 14V4.75c0-.4-.35-.75-.75-.75s-.75.35-.75.75V14H8l4.4 6.75L16.8 14h-3.65z",id:"a"})),(0,s.h)("use",{xlinkHref:"#a","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19887.b034705a.js b/pr-preview/pr-186/assets/js/19887.b034705a.js new file mode 100644 index 000000000..049920863 --- /dev/null +++ b/pr-preview/pr-186/assets/js/19887.b034705a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19887],{42268:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_service_maintanance:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M22.09 6.715l-4.5 2.36-1.285-1-.105-1.64 4.5-2.36c-2.03-2.5-5.43-3.42-8.18-2S8.63 6.68 9.43 9.725L2.325 16.83a3.5 3.5 0 004.95 4.95l6.885-6.89a6.205 6.205 0 004.89-.33c2.755-1.44 3.95-4.745 3.04-7.845z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M22.1 6.7l-4.5 2.35-1.3-1-.1-1.65 4.5-2.35c-1.35-1.7-3.35-2.65-5.35-2.65-.95 0-1.9.2-2.8.7-1.6.85-2.65 2.3-3.1 3.95-.3 1.15-.3 2.45 0 3.7l-7.1 7.1C1 18.2 1 20.45 2.35 21.8s3.6 1.35 4.95 0l6.9-6.9c1.6.55 3.35.5 4.9-.35 2.7-1.45 3.9-4.75 3-7.85zm-3.75 6.55c-2.05 1.1-3.9.15-4.6-.05L6.2 20.7c-.8.8-2.05.8-2.85 0-.8-.8-.8-2.05 0-2.85l7.7-7.7c-.2-.75-.65-1.95-.3-3.5.3-1.4 1.15-2.6 2.4-3.25.65-.35 1.35-.5 2.1-.5.95 0 1.95.3 2.8.85l-3.45 1.8.2 3.3 2.55 2.05 3.45-1.8c0 1.7-.9 3.35-2.45 4.15z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19980.df64df09.js b/pr-preview/pr-186/assets/js/19980.df64df09.js new file mode 100644 index 000000000..8510adf5f --- /dev/null +++ b/pr-preview/pr-186/assets/js/19980.df64df09.js @@ -0,0 +1,2 @@ +/*! For license information please see 19980.df64df09.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[19980],{88114:(e,t,a)=>{a.d(t,{c:()=>n});var r,s,c,n=(r=function(e){!function(){var t={}.hasOwnProperty;function a(){for(var e=[],r=0;r{a.r(t),a.d(t,{scale_chart_stack_card:()=>n});var r=a(90936),s=a(88114),c=a(94200);const n=class{constructor(e){(0,r.r)(this,e),this.readData=e=>{try{return Array.isArray(JSON.parse(e))?JSON.parse(e):[]}catch(t){return Array.isArray(e)?e:[]}}}getOpacity(e,t){return JSON.stringify(0===t?1:+e.percentage/100)}getCardStyle(){return"\n .card:after {\n content: '';\n display: block;\n background: linear-gradient(0deg, white, rgba(255,255,255, 0));\n height: 2rem;\n margin-top: -2rem;\n position: relative;\n }\n\n .card__body: {\n padding-bottom: 0 !important;\n }\n "}connectedCallback(){(0,c.s)({source:this.hostElement,type:"warn"})}render(){return(0,r.h)(r.a,null,(0,r.h)("div",{class:this.getCssClassMap()},(0,r.h)("scale-card",{styles:this.getCardStyle()},(0,r.h)("div",{class:"header"},this.heading),(0,r.h)("div",{class:"bar"},this.readData(this.data).sort(((e,t)=>t.percentage-e.percentage)).map(((e,t)=>{if(+e.percentage>0)return(0,r.h)("div",{class:"bar__item",style:{opacity:this.getOpacity(e,t),flex:JSON.stringify(+e.percentage)}})}))),(0,r.h)("div",{class:"legend"},this.readData(this.data).sort(((e,t)=>t.percentage-e.percentage)).map(((e,t)=>(0,r.h)("div",{class:"legend__row"},(0,r.h)("div",{class:"legend__row__item"},(0,r.h)("div",{class:"legend__item",style:{opacity:this.getOpacity(e,t)}}),(0,r.h)("div",{class:"legend__label spacer"},e.type)),(0,r.h)("div",{class:"legend__row__item"},(0,r.h)("div",{class:"spacer"},e.value),(0,r.h)("div",{class:"spacer"},e.percentage,"%")))))))))}getCssClassMap(){return(0,s.c)("chart-stack-card")}get hostElement(){return(0,r.g)(this)}};n.style=":host{--scl-chart-stack-card-color:var(--telekom-color-additional-blue-600)}.chart-stack-card{color:var(--color-text);--scl-chart-stack-card-color:var(--telekom-color-additional-blue-600)}.chart-stack-card .header{height:var(--telekom-spacing-composition-space-08);font-size:var(--telekom-typography-font-size-headline-3);font-weight:var(--telekom-typography-font-weight-extra-bold);line-height:var(--telekom-typography-line-spacing-tight);margin-bottom:var(--telekom-spacing-composition-space-08)}.chart-stack-card .bar{display:flex;justify-content:space-between;margin-bottom:var(--telekom-spacing-composition-space-06)}.chart-stack-card .bar__item{background-color:var(--scl-chart-stack-card-color);height:var(--telekom-spacing-composition-space-10);flex:1}.chart-stack-card .bar__item:first-of-type{border-top-left-radius:var(--telekom-radius-small);border-bottom-left-radius:var(--telekom-radius-small)}.chart-stack-card .bar__item:last-of-type{border-top-right-radius:var(--telekom-radius-small);border-bottom-right-radius:var(--telekom-radius-small)}.chart-stack-card .legend{display:flex;flex-direction:column;height:calc(var(--telekom-spacing-composition-space-06) * 10)}.chart-stack-card .spacer{padding:0 var(--telekom-spacing-composition-space-04)}.chart-stack-card .legend .legend__row__item{display:flex;line-height:var(--telekom-typography-line-spacing-standard)}.chart-stack-card .legend .legend__row{display:flex;justify-content:space-between}.chart-stack-card .legend .legend__row:last-child{padding-bottom:var(--telekom-spacing-composition-space-10)}.chart-stack-card .legend .legend__item{height:10px;width:10px;background-color:var(--scl-chart-stack-card-color);border-radius:100%;align-self:center;margin-right:var(--telekom-spacing-composition-space-03)}.chart-stack-card .legend .legend__label{font-weight:var(--type-weight-bold);font-size:var(--telekom-spacing-composition-space-06);line-height:200%}"},94200:(e,t,a)=>{a.d(t,{s:()=>c});const r={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},s={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function c({tag:e="WIP",extraMessage:t=null,message:a=null,source:c=null,type:n="info"}){(0,console[n])(`%c scale \u2013 ${r[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${a||s[e]} ${t?"\n"+t:""}\n `,null!==c?"\nsource:":"","object"==typeof c?c:`${c}`,null!==c?"\n\n":"")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/19980.df64df09.js.LICENSE.txt b/pr-preview/pr-186/assets/js/19980.df64df09.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/19980.df64df09.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/1a4bb7c1.6d7508c3.js b/pr-preview/pr-186/assets/js/1a4bb7c1.6d7508c3.js new file mode 100644 index 000000000..22f815160 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1a4bb7c1.6d7508c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[52490],{26829:e=>{e.exports=JSON.parse('{"tag":{"label":"load-balancing","permalink":"/docs-next/pr-preview/pr-186/docs/tags/load-balancing","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":3,"items":[{"id":"best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancer","title":"Routing Traffic to Backend Servers in Different VPCs from the Load Balancer","description":"You can use ELB to route traffic to backend servers in two VPCs connected over a VPC peering connection.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancer"},{"id":"best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer","title":"Routing Traffic to Backend Servers in the Same VPC as the Load Balancer","description":"You can route traffic to backend servers in the VPC where the load balancer is running.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer"},{"id":"best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iteration","title":"Using Advanced Forwarding for Application Iteration","description":"As the business grows, you may need to upgrade your application. Both the old and new versions are used. Now, the new version is optimized based on users\' feedback, and you want all the users to use the new version. In this process, you can use advanced forwarding to route requests to different versions.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iteration"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1b895c3b.369cd40f.js b/pr-preview/pr-186/assets/js/1b895c3b.369cd40f.js new file mode 100644 index 000000000..dc6fbeca8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1b895c3b.369cd40f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[6068],{8290:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>u});var t=i(74848),s=i(28453);const r={id:"Finance",title:"Finance"},o="Finance",c={id:"blueprints/by-industry/finance/Finance",title:"Finance",description:"The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting",source:"@site/docs/blueprints/by-industry/finance/index.md",sourceDirName:"blueprints/by-industry/finance",slug:"/blueprints/by-industry/finance/",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-industry/finance/index.md",tags:[],version:"current",frontMatter:{id:"Finance",title:"Finance"},sidebar:"blueprintsSidebar",previous:{title:"Mundi Web Services: New Business from Space",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services"},next:{title:"EUVIC: Cloud-Based Credit Portal for SaarLB",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-euvic"}},a={},u=[];function d(e){const n={h1:"h1",p:"p",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"finance",children:"Finance"}),"\n",(0,t.jsx)(n.p,{children:"The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting\nappropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic\nworkloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal\nutilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects\nand developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications\nin the Open Telekom Cloud environment."})]})}function l(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var t=i(96540);const s={},r=t.createContext(s);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1c7c2c91.62792fc5.js b/pr-preview/pr-186/assets/js/1c7c2c91.62792fc5.js new file mode 100644 index 000000000..ba505d18b --- /dev/null +++ b/pr-preview/pr-186/assets/js/1c7c2c91.62792fc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[94534],{51404:e=>{e.exports=JSON.parse('{"tag":{"label":"cloud-eye","permalink":"/docs-next/pr-preview/pr-186/docs/tags/cloud-eye","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics","title":"Auto Scaling Based on ELB Monitoring Metrics","description":"By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services\' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics"},{"id":"best-practices/management-and-deployment/cloud-eye/resource-group-monitoring","title":"Resource Group Monitoring","description":"Cloud Eye provides the resource group and alarm functions. How can we effectively group and monitor resources and receive alarm notifications of the resources in different groups?","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-eye/resource-group-monitoring"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1d113cb0.fc84c521.js b/pr-preview/pr-186/assets/js/1d113cb0.fc84c521.js new file mode 100644 index 000000000..85ac48a03 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1d113cb0.fc84c521.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[52170],{47574:(e,t,c)=>{c.r(t),c.d(t,{assets:()=>_c,contentTitle:()=>Dc,default:()=>Zc,frontMatter:()=>Pc,metadata:()=>Tc,toc:()=>Rc});var l,a,r,n=c(74848),s=c(28453),i=c(67408),o=c(96540);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return o.createElement("svg",v({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},n),t?o.createElement("title",{id:c},t):null,l||(l=o.createElement("path",{d:"M9 30h5.8c1.2 0 2.2-1.1 2.2-2.4v-7.3c0-1.3-1-2.4-2.2-2.4H8v12h1zm0-11h5.8c.7 0 1.2.6 1.2 1.4v7.3c0 .8-.6 1.4-1.2 1.4H9z"})),a||(a=o.createElement("path",{d:"M24 2C11.9 2 2 11.9 2 24s9.9 22 22 22 22-9.9 22-22S36.1 2 24 2m17.6 12.5h-7.1c-1.2-5.1-3.7-8.6-6.9-10.1 6.1 1.1 11.2 4.9 14 10.1m-8.1 0H14.6c1.7-6.3 5.2-10 9.4-10 4.4 0 7.9 3.7 9.5 10M20.4 4.3c-3.1 1.5-5.6 5.1-6.9 10.2H6.4c2.8-5.2 8-9.1 14-10.2M5.9 15.5h36.2C43.3 18.1 44 21 44 24s-.7 5.9-1.9 8.5H5.9C4.7 29.9 4 27 4 24s.7-5.9 1.9-8.5m8.6 18h18.9c-1.7 6.3-5.2 10-9.4 10-4.4 0-7.9-3.7-9.5-10m-8.1 0h7.1c1.2 5.1 3.7 8.6 6.8 10.1-6-1.1-11.1-4.9-13.9-10.1m21.2 10.2c3.1-1.5 5.6-5.1 6.9-10.2h7.1c-2.8 5.2-8 9.1-14 10.2"})),r||(r=o.createElement("path",{d:"M20 19h.3c.9 0 1.4.4 1.8 1.5l2.7 7.7.5-.2-.5.2c.5 1.3 1.4 1.8 2.9 1.8H29V18h-1v11h-.3c-1.1 0-1.6-.3-1.9-1.2l-2.7-7.7c-.2-.5-.8-2.2-2.8-2.2H19v12h1zM33.2 24h4.7c.7 0 1.2.6 1.2 1.4v2.3c0 .8-.5 1.4-1.2 1.4H31v1h6.8c1.2 0 2.2-1.1 2.2-2.4v-2.3c0-1.3-1-2.4-2.2-2.4h-4.7c-.7 0-1.2-.6-1.2-1.4v-1.3c0-.8.5-1.4 1.2-1.4H40v-1h-6.8C32 18 31 19.1 31 20.4v1.3c0 1.2 1 2.3 2.2 2.3"})))};var d;function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",f({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,w||(w=o.createElement("path",{d:"M9 25h30v-1H9zM42 5H6C3.8 5 2 6.8 2 9.1v24.7C2 36.1 3.8 38 6 38h13l3.5 4.3c.4.5 1 .7 1.5.7.6 0 1.1-.2 1.5-.7L29 38h13c2.2 0 4-1.8 4-4.1V9.1C46 6.8 44.2 5 42 5m2 28.9c0 1.2-.9 2.1-2 2.1H29c-.6 0-1.2.3-1.6.7L24 41l-3.5-4.3c-.4-.5-1-.7-1.6-.7H6c-1.1 0-2-1-2-2.1V9.1C4 8 4.9 7 6 7h36c1.1 0 2 1 2 2.1zM9 17h30v-1H9z"})))},y=[{title:"AOM",text:"Application Operations Management",link:"/docs/tags/aom",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,d||(d=o.createElement("path",{d:"M24 4C13 4 4 13 4 24s9 20 20 20 20-9 20-20S35 4 24 4m0 38c-9.9 0-18-8.1-18-18S14.1 6 24 6s18 8.1 18 18-8.1 18-18 18M4.5 12.5c.3 0 .5-.2.5-.5V6.5C5 5.7 5.7 5 6.5 5H12c.3 0 .5-.2.5-.5S12.3 4 12 4H6.5C5.1 4 4 5.1 4 6.5V12c0 .3.2.5.5.5M42 4h-6c-.3 0-.5.2-.5.5s.2.5.5.5h6c.2 0 1 0 1 1.5V12c0 .3.2.5.5.5s.5-.2.5-.5V6.5c0-1.6-.7-2.5-2-2.5m1.5 30.5c-.3 0-.5.2-.5.5v6c0 .9-.7 2-1.5 2H36c-.3 0-.5.2-.5.5s.2.5.5.5h5.5c1.4 0 2.5-1.6 2.5-3v-6c0-.3-.2-.5-.5-.5M12 43H6c-.7 0-1-1.2-1-2v-5c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5c0 1.5.6 3 2 3h6c.3 0 .5-.2.5-.5s-.2-.5-.5-.5m21.5-23c0 .5.2 1 .4 1.4l-4.5 4.5c-.4-.3-.9-.4-1.4-.4s-1 .2-1.4.4l-4.5-4.5c.3-.4.4-.9.4-1.4 0-1.4-1.1-2.5-2.5-2.5s-2.5 1.1-2.5 2.5c0 .5.2 1 .4 1.4l-4.5 4.5c-.4-.3-.9-.4-1.4-.4-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.5-.2-1-.4-1.4l4.6-4.5c.4.3.9.4 1.4.4s1-.2 1.4-.4l4.6 4.5c-.3.4-.4.9-.4 1.4 0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5c0-.5-.2-1-.4-1.4l4.5-4.5c.4.3.9.4 1.4.4 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5-2.7 1.1-2.7 2.5M12 29.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5m8-8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5m8 8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5m9.5-9.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5.7-1.5 1.5-1.5 1.5.7 1.5 1.5"})))}},{title:"APIG",text:"API Gateway",link:"/docs/tags/apig",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",b({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",width:132,height:132,x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,p||(p=o.createElement("style",null,".st0{fill:#454545}")),u||(u=o.createElement("path",{d:"M47 33.2c0-1.6-1.3-3-3-3-1.6 0-3 1.3-3 3 0 1.3.9 2.4 2.1 2.8H43v5.2c0 1.1-.9 1.8-2 1.8H7c-1.1 0-2-.7-2-1.8V24c-.1-.5-.5-.9-1-.9s-1 .4-1 .9v17.200000000000003C3 43.4 4.8 45 7 45h34c2.2 0 4-1.6 4-3.8V36h-.1c1.2-.4 2.1-1.5 2.1-2.8m-3 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M6.9 14.2c0-1.3-.8-2.4-2-2.8V7.2C5 6.1 5.9 5 7 5h34c1.1 0 2 1.1 2 2.2v16.900000000000002c0 .6.4 1 1 1s1-.4 1-1V7.2C45 5 43.2 3 41 3H7C4.8 3 3 5 3 7.2v4.2c-1.1.4-2 1.5-2 2.8 0 1.6 1.3 3 3 3s2.9-1.4 2.9-3m-4.9 0c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-1-2-2",className:"st0"})),g||(g=o.createElement("path",{d:"M36 30h1V17h-1zM25.3 17H24v13h1v-6h6.6c1.3 0 2.4-1.6 2.4-3v-1.4c0-1.4-1.1-2.6-2.4-2.6zm7.7 2.6V21c0 .8-.7 2-1.4 2H25v-5h6.6c.7 0 1.4.8 1.4 1.6M17.3 17h-1.1c-2 0-2.6 1.8-2.8 2.4L11 30h1.1l1.4-6H20l1.4 6h1.1l-2.3-10.6c-.3-.6-.9-2.4-2.9-2.4m2.5 6h-6.1l.7-3.3c.4-1.2 1-1.7 2-1.7h.6c1 0 1.6.5 2 1.8z",className:"st0"})))}},{title:"DMS",text:"Distributed Message Service",link:"/docs/tags/dms",icon:c(60405).A},{title:"SMN",text:"Simple Message Notification",link:"/docs/tags/smn",icon:x}];function E(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:y})})}var j;function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",O({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,j||(j=o.createElement("path",{d:"M30.8 17.5c-1-3.1-3.9-5.2-7.3-5.2s-6.2 2.1-7.3 5.2c-3.4.5-6 3.5-6 7.1 0 3.9 3.3 7.2 7.2 7.2h12.3c3.9 0 7.2-3.3 7.2-7.2-.1-3.7-2.8-6.6-6.1-7.1m-1.2 13.2H17.3c-3.4 0-6.1-2.8-6.1-6.1 0-3 2.3-5.6 5.2-6 .4-.1.7-.3.8-.7.9-2.7 3.5-4.5 6.3-4.5s5.4 1.8 6.3 4.5c.1.4.4.6.8.7 3 .5 5.2 3.1 5.2 6 0 3.3-2.8 6.1-6.2 6.1m16.1 13.6L39.4 38c3.4-3.9 5.6-9 5.6-14.5C45 11.6 35.4 2 23.5 2S2 11.6 2 23.5 11.6 45 23.5 45c5.5 0 10.6-2.1 14.4-5.6l6.3 6.3c.2.2.5.3.7.3s.5-.1.7-.3c.5-.4.5-1 .1-1.4m-22.2-1.4C12.7 42.9 4 34.2 4 23.5S12.7 4 23.5 4s19.4 8.7 19.4 19.4-8.7 19.5-19.4 19.5"})))}},{title:"DataArts Studio",text:"Data Operations Platform",link:"/docs/tags/data-arts",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",C({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 44 44","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,M||(M=o.createElement("path",{d:"M28.5 21.3c.3 0 .5-.2.5-.5v-9.5c0-2.2 1.8-4 4-4h.1c.2.9 1 1.5 1.9 1.5 1.1 0 2-.9 2-2s-.9-2-2-2c-.9 0-1.7.6-1.9 1.5H33c-2.8 0-5 2.2-5 5v9.5c0 .3.2.5.5.5M35 5.8c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1c0-.5.4-1 1-1M16 34.8v-5c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5c0 .3.2.5.5.5s.5-.3.5-.5M29 34.8v-5c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5c0 .3.2.5.5.5s.5-.3.5-.5M22.5 37.5v-5c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5c0 .3.2.5.5.5s.5-.3.5-.5M21.5 7.9v15.5c0 .3.2.5.5.5s.5-.2.5-.5V7.9c1.1-.2 2-1.2 2-2.4C24.5 4.1 23.4 3 22 3s-2.5 1.1-2.5 2.5c0 1.2.9 2.2 2 2.4M22 4c.8 0 1.5.7 1.5 1.5S22.8 7 22 7s-1.5-.7-1.5-1.5S21.2 4 22 4M9.5 8.8c.9 0 1.7-.6 1.9-1.5 2 .2 3.6 1.9 3.6 4v9.5c0 .3.2.5.5.5s.5-.2.5-.5v-9.5c0-2.6-2-4.7-4.6-5-.2-.9-1-1.5-1.9-1.5-1.1 0-2 .9-2 2s.9 2 2 2m0-3c.6 0 1 .4 1 1s-.4 1-1 1-1-.4-1-1c0-.5.4-1 1-1"})),S||(S=o.createElement("path",{d:"m39 17.3-6.3-3.7c-.2-.1-.4-.2-.6-.2-.6 0-1 .4-1 1 0 .4.2.6.5.8l5.9 3.5-14 8.2c-.7.4-2.1.4-2.8 0l-14-8.2 5.7-3.3c.3-.2.5-.5.5-.8 0-.6-.4-1-1-1-.2 0-.4.1-.6.2L5 17.3c-1.3.8-1.3 2.1 0 2.8l14.6 8.5c1.3.8 3.5.8 4.9 0L39 20.2c1.3-.8 1.3-2.1 0-2.9M31.5 31.1c-.1-.1-.2-.1-.3-.1-.3 0-.5.2-.5.5 0 .2.1.3.2.4 1.3 1 2.1 2.1 2.1 3.3 0 3.1-4.9 5.8-11 5.8s-11-2.7-11-5.8c0-1.2.8-2.4 2.1-3.3.1-.1.2-.2.2-.4 0-.3-.2-.5-.5-.5-.1 0-.2 0-.3.1-1.6 1.1-2.5 2.6-2.5 4.1C10 39 15.4 42 22 42s12-3 12-6.8c0-1.5-.9-3-2.5-4.1"})))}},{title:"DIS",text:"Data Ingestion Service",link:"/docs/tags/dis",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",z({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,V||(V=o.createElement("style",null,".st0{fill:#060001}")),A||(A=o.createElement("path",{d:"M41.6 11 26.3 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.6 2.3.6s1.7-.2 2.3-.6L41.6 37c1.3-.7 2.4-2.5 2.4-4V15c0-1.5-1-3.2-2.4-4m.3 22c0 .8-.6 1.8-1.3 2.2l-15.3 8.5c-.7.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2V15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2z",className:"st0"})),L||(L=o.createElement("path",{d:"M18.9 24c0-.4-.2-.8-.5-1.1l-5.2-5.1c-.2-.2-.5-.2-.7 0s-.2.5 0 .7l5.2 5.1c.1.1.2.2.2.4s-.1.3-.2.4l-5.2 5.1c-.2.2-.2.5 0 .7.1.1.2.2.4.2.1 0 .3-.1.4-.2l5.2-5.1c.2-.3.4-.7.4-1.1M25.1 29.4c-.6-.6-1.6-.6-2.2 0l-5.2 5.1c-.2.2-.2.5 0 .7s.5.2.7 0l5.2-5.1c.2-.2.5-.2.7 0l5.2 5.1c.1.1.2.2.4.2s.3-.1.4-.2c.2-.2.2-.5 0-.7zM35.5 18.5c.2-.2.2-.5 0-.7s-.5-.2-.7 0l-5.2 5.1c-.6.6-.6 1.6 0 2.2l5.2 5.1c.1.1.2.2.4.2s.3-.1.4-.2c.2-.2.2-.5 0-.7l-5.2-5.1c-.2-.2-.2-.5 0-.7zM22.9 18.5c.3.3.7.4 1.1.4s.8-.2 1.1-.4l5.2-5.1c.2-.2.2-.5 0-.7s-.5-.2-.7 0l-5.2 5.1c-.2.2-.5.2-.7 0l-5.2-5.1c-.2-.2-.5-.2-.7 0s-.2.5 0 .7z",className:"st0"})))}},{title:"DLI",text:"Data Lake Insight",link:"/docs/tags/dli",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",H({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M27 24.2c.5-.7.8-1.5.8-2.5 0-2.1-1.7-4-4-4s-3.9 1.8-3.9 4 1.7 4 4 4c.9 0 1.7-.3 2.4-.8l1.5 1.4c.1.1.2.1.3.1s.3-.1.4-.2c.2-.2.2-.5 0-.7zm-3.1.5c-1.6 0-3-1.3-3-3 0-1.6 1.3-3 3-3s3 1.3 3 3c-.1 1.7-1.4 3-3 3m7.1-6.2c-1.1-2.9-3.9-4.7-7-4.7s-5.9 1.8-7 4.7c-3.7.5-6.4 3.7-6.4 7.4 0 4.1 3.4 7.5 7.5 7.5h12.6c.1 0 .2 0 .2-.1 3.6-.5 6.4-3.6 6.4-7.4.1-3.9-2.6-6.9-6.3-7.4m.2 13.6v-4.5c0-.3-.2-.5-.5-.5s-.5.2-.5.5v4.6h-3.1v-2.6c0-.3-.2-.5-.5-.5s-.5.2-.5.5v2.6H23v-4c0-.3-.2-.5-.5-.5s-.5.3-.5.5v4h-3.1v-2.8c0-.3-.2-.5-.5-.5s-.5.3-.5.5v2.8c-3.4-.2-6.2-3-6.2-6.4 0-3.3 2.5-6 5.8-6.3.2 0 .4-.2.4-.3.9-2.6 3.4-4.3 6.2-4.3s5.2 1.7 6.2 4.3c.1.2.2.3.4.3 3.3.4 5.8 3.1 5.8 6.3-.1 3.1-2.3 5.7-5.3 6.3M41.6 11 26.3 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.6 2.3.6s1.7-.2 2.3-.6L41.6 37c1.3-.7 2.4-2.5 2.4-4V15c0-1.5-1-3.2-2.4-4m.3 22c0 .8-.6 1.8-1.3 2.2l-15.3 8.5c-.7.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2V15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2z",style:{fill:"#454545"}}))}},{title:"DWS",text:"Data Warehouse Service",link:"/docs/tags/dws",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",N({xmlns:"http://www.w3.org/2000/svg","data-name":"\\u56FE\\u5C42 1",viewBox:"0 0 40 40","aria-labelledby":c},l),void 0===t?o.createElement("title",{id:c},"\u6570\u636e\u4ed3\u5e93\u670d\u52a1-DWS"):t?o.createElement("title",{id:c},t):null,k||(k=o.createElement("path",{d:"M5.97 35.01h28v-1h-28Zm0-10h28v-1h-28Zm0 5h28v-1h-28ZM37.82 9.43 22.13.5a4.62 4.62 0 0 0-4.25 0L2.19 9.43a4.82 4.82 0 0 0-2.22 3.88v25.68a1 1 0 0 0 1 1 1 1 0 0 0 1-1V13.31a2.76 2.76 0 0 1 1.18-2.09L18.77 2.3a2.94 2.94 0 0 1 2.46 0l15.74 8.92a2.76 2.76 0 0 1 1.18 2.09v25.68a1 1 0 1 0 1.9 0V13.31a4.81 4.81 0 0 0-2.23-3.88M5.97 15.01h28v-1h-28Zm0 5h28v-1h-28Z"})))}},{title:"ModelArts",text:"Development Platform for AI",link:"/docs/tags/model-arts",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",q({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,B||(B=o.createElement("path",{d:"M45.1 35.4q-2.4-8.25-6.9-24c.4-.4.6-1 .6-1.6 0-1.3-1-2.3-2.3-2.3s-2.3 1.1-2.3 2.3c0 .5.2 1 .5 1.4l-10.3 8.6L14 11c.2-.3.3-.7.3-1.1 0-1.3-1-2.3-2.3-2.3s-2.3 1-2.3 2.2c0 .7.3 1.4.8 1.8C7.4 22 5.1 29.9 3.4 35.4c-1.1.2-1.9 1.1-1.9 2.3 0 1.3 1 2.3 2.3 2.3s2.3-1.1 2.3-2.3c0-.4-.1-.8-.3-1.1l12.3-10.2c1.9 4.3 3.3 7.7 4.3 10-.3.4-.4.9-.4 1.4 0 1.3 1 2.3 2.3 2.3s2.3-1.1 2.3-2.3c0-.6-.2-1.2-.6-1.6 1-2.3 2.5-5.6 4.3-9.9l12.3 10.5c-.1.3-.2.6-.2.9 0 1.3 1 2.3 2.3 2.3s2.3-1 2.3-2.3c0-1.2-.8-2.1-1.9-2.3M36.5 8.5c.7 0 1.3.6 1.3 1.3s-.6 1.3-1.3 1.3-1.3-.6-1.3-1.3.6-1.3 1.3-1.3M12 8.5c.7 0 1.3.6 1.3 1.3s-.6 1.3-1.3 1.3-1.3-.6-1.3-1.3.6-1.3 1.3-1.3M3.8 39.1c-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3 1.3.6 1.3 1.3-.6 1.3-1.3 1.3m1.6-3.4 6.9-22.9 5.4 12.6zm9-23.1 9.2 7.9-4.3 3.6zm9.9 26.5c-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3 1.3.6 1.3 1.3-.6 1.3-1.3 1.3m-.2-3.8L19.7 25l4.6-3.9 4.3 3.7zm5-11.4-4-3.4 8.7-7.2zm7.3-11.5L43.2 36 30.7 25.3zm8.3 26.7c-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3 1.3.5 1.3 1.2-.6 1.4-1.3 1.4"})))}},{title:"MRS",text:"MapReduce Service",link:"/docs/tags/mrs",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",_({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,I||(I=o.createElement("style",null,".st0{fill:#060001}")),P||(P=o.createElement("path",{d:"M41.6 11 26.3 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.6 2.4.6s1.7-.2 2.3-.6L41.7 37c1.3-.7 2.4-2.5 2.4-4V15c-.1-1.5-1.1-3.2-2.5-4m.3 22c0 .8-.6 1.8-1.3 2.2l-15.3 8.5c-.6.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2V15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2z",className:"st0"})),D||(D=o.createElement("path",{d:"M35 17.5c-.1-.2-.5-.4-.6-.5-.5-.4-2.1-.7-3.3-.2-.1-.2-.3-.3-.4-.5-.8-1.1-2.1-2-3.5-2.4-1.3-.5-2.7-.7-4.2-.7-2.7 0-5.3 1.2-7 3.2-1.2.4-2.4 1.1-3.3 2l-.3.3-.1.1c-1 1.1-3.6 4.1-2.9 6.9.3 1.5 1.6 2.6 3.6 3.3.2.1.2.4.2 1.2 0 .7 0 1.6.5 2.2.3.3.6.4 1.1.5h.4c.1 0 2.2.2 3.7-1.4 1.6-1.7 2-4.5 1.3-8.5 0-.2-.2-.4-.5-.4h-.2c-.3.1-.5.3-.4.6.7 3.6.3 6.2-1 7.6-1.1 1.1-2.5 1.1-2.9 1.1h-.3c-.2 0-.4-.1-.5-.2-.3-.2-.2-.8-.2-1.4 0-.8 0-1.8-.9-2.2-1.7-.6-2.7-1.4-2.9-2.5-.6-2.7 3-6.3 3-6.3s0-.1.1-.1q1.35-1.2 3-1.8c.1 0 .2-.1.2-.2 1.5-1.8 3.9-2.9 6.2-2.9s4.4.6 5.9 1.8c.2.2.4.4.7.6l.2.2c.1.1.2.2.2.3.1.1.2.3.3.4l.1.1c.4.7.7 1.4.9 2 .1.4.4 1.4.4 2.4 0 1.2-.2 1.5-.3 2 0 .1 0 .2.1.3.4-.4.7-.8.8-2.1.1-.7.1-1.3 0-2.2-.2-1.2-.6-1.9-.7-2.2.8-.4 2-.1 2.3.1.1.1.3.3.4.3 0 .1.1.2.2.4 1.8 4.4 1.9 7.6.5 9.7-1.5 2.1-4.1 2.4-5.6 2.4h-.1c-.2.9-.8 1.7-1.7 2.1-.4.2-.8.2-1.2.2-1.1 0-2.1-.6-2.6-1.4l.4 1.9c.6.4 1.4.6 2.2.6.6 0 1.1-.1 1.7-.4 1-.4 1.7-1.2 2.1-2.1 1.7-.1 4.3-.7 5.8-2.9 1.7-2.4 1.5-6-.4-10.7-.2-.1-.4-.4-.5-.6",className:"st0"})),T||(T=o.createElement("path",{d:"M26.1 23.4c.1.1.2.1.3.1.2 0 .4-.1.5-.2 0 0 .4-.6 1.1-.6.1 0 .3 0 .4.1h.2c.2 0 .5-.2.5-.4 0-.1 0-.3-.1-.4s-.2-.2-.3-.2c-.2-.1-.5-.1-.7-.1-1 0-1.7.7-2 1.1-.1.1-.1.3-.1.4 0 0 0 .1.2.2",className:"st0"})))}},{title:"OCR",text:"Optical Character Recognition",link:"/docs/tags/ocr",icon:c(58657).A}];function F(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:R})})}function Z(){return Z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Z({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M45 38c-1.2-.4-3.2-7-4.3-14.2-.1-.3-.1-.7-.2-1.1.3-1.5.8-4.1 1.4-6.7.1-.3-.1-.5-.4-.6s-.5.1-.6.4c-.4 1.4-.7 2.9-.9 4.2-1-5.6-2.9-12-5.5-12-2.4 0-4.2 5.6-5.3 10.8-1-4.4-2.7-9.8-4.9-9.8-2.4 0-4.2 6.7-5.2 11.2C18 14.6 16.2 8 13.5 8 10.9 8 9 14.4 7.9 20c-.3-1.3-.6-2.7-1-4.1-.1-.3-.3-.4-.6-.4-.3.1-.4.3-.4.6.7 2.5 1.2 5.1 1.4 6.5-.1.4-.1.8-.2 1.2C6.1 31 4.1 37.6 3 38c-.5 0-1 .5-1 1 0 .6.4 1 1 1 2.6 0 4.4-6.2 5.5-11.7 1 4.6 2.8 10.8 5 10.8s4-6 5-10.6C19.6 33.9 21.4 40 24 40c2.7 0 4.5-6.7 5.6-12.4 1 4.8 2.7 11.4 5 11.4 2.2 0 3.9-5.9 4.9-10.6C40.6 33.9 42.4 40 45 40c.6 0 1-.4 1-1s-.4-1-1-1m-31.5 0c-1.4 0-3.4-6.1-4.5-12.4.1-.5.2-1 .2-1.5 1.1-7.2 3.1-13.8 4.2-14.2 1.2.4 3.2 7 4.3 14.2.1.5.2 1.1.3 1.7-1.2 6.3-3.1 12.2-4.5 12.2M24 38c-1.2-.4-3.2-7-4.3-14.2 0-.2-.1-.4-.1-.6 1.1-6.4 3.1-13 4.6-13 1.4 0 3.2 5.7 4.3 11.6-.1.7-.2 1.4-.3 2C27.1 31 25.1 37.6 24 38m10.7 0c-1.4 0-3.4-6.7-4.5-13.2 0-.2.1-.4.1-.7 1.1-7.2 3.1-13.8 4.2-14.2 1.2.4 3.2 7 4.3 14.2.1.5.2 1.1.3 1.7C37.9 32 36 38 34.7 38",style:{fill:"#040000"}}))};var W,Q,K;function $(){return $=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",$({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,W||(W=o.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7s8 2.7 9.4 6.7c.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10"})),Q||(Q=o.createElement("path",{d:"M26.5 26.5H14.8c-.3 0-.5.2-.5.5s.2.5.5.5h11.8c.3 0 .5-.2.5-.5s-.3-.5-.6-.5M26.5 29.5H14.8c-.3 0-.5.2-.5.5s.2.5.5.5h11.8c.3 0 .5-.2.5-.5s-.3-.5-.6-.5M32 26c-1.4 0-2.5 1.1-2.5 2.5S30.6 31 32 31s2.5-1.1 2.5-2.5S33.4 26 32 26m0 4c-.8 0-1.5-.7-1.5-1.5S31.2 27 32 27s1.5.7 1.5 1.5S32.8 30 32 30"})),K||(K=o.createElement("path",{d:"M32 22H16c-3.6 0-6.5 2.9-6.5 6.5S12.4 35 16 35h16c3.6 0 6.5-2.9 6.5-6.5S35.6 22 32 22m0 12H16c-3 0-5.5-2.5-5.5-5.5S13 23 16 23h16c3 0 5.5 2.5 5.5 5.5S35 34 32 34"})))};var X,Y;function J(){return J=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",J({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,X||(X=o.createElement("path",{d:"M34 2H14c-3.3 0-6 2.7-6 6v32c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6V8c0-3.3-2.7-6-6-6m4 38c0 2.2-1.8 4-4 4H14c-2.2 0-4-1.8-4-4V8c0-2.2 1.8-4 4-4h20c2.2 0 4 1.8 4 4z"})),Y||(Y=o.createElement("path",{d:"M32.5 10.2h-17c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5h17c1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5m0 4h-17c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h17c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5M32.5 17.2h-17c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5h17c1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5m0 4h-17c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h17c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5M24 29.2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4m0 7c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3"})))};var te,ce=c(46622),le=c(28426);function ae(){return ae=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",ae({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,te||(te=o.createElement("path",{d:"M26 2H8.9C7 2 5.5 3.6 5.5 5.5v37.1C5.5 44.4 7 46 8.9 46h25c.6 0 1.2-.2 1.7-.5l4-1.2c1.7-.5 2.9-2.1 2.9-3.9V18.8C42.5 9.5 35.1 2 26 2m9.1 40.5c0 .6-.5 1.2-1.1 1.2H9c-.6 0-1.1-.5-1.1-1.2v-37c0-.6.5-1.2 1.1-1.2h12.5c7.5 0 13.7 6.2 13.7 13.9v24.3zm6.3-2c0 1.3-.8 2.4-2.1 2.8l-2.2.6c.2-.4.3-.9.3-1.4V18.2c0-6.8-4.1-12.5-9.8-15 7.7.8 13.8 7.5 13.8 15.6zM25.5 22.3c-.6-1.7-2.2-2.9-4.1-2.9s-3.5 1.2-4.1 2.9c-2.2.2-3.9 2.1-3.9 4.3 0 2.4 1.9 4.3 4.3 4.3h7.2c2.4 0 4.3-1.9 4.3-4.3.2-2.2-1.5-4.1-3.7-4.3m-.4 7.5h-7.2c-1.8 0-3.2-1.4-3.2-3.2 0-1.6 1.2-3 2.8-3.2.4 0 .8-.3 1-.8.4-1.3 1.7-2.1 3-2.1 1.4 0 2.6.9 3 2.1.1.4.5.7 1 .8 1.6.2 2.8 1.5 2.8 3.2 0 1.8-1.5 3.2-3.2 3.2"})))},ne=[{title:"AS",text:"Auto Scaling",link:"/docs/tags/as",icon:G},{title:"BMS",text:"Bare Metal Services",link:"/docs/tags/bms",icon:U},{title:"DHS",text:"Dedicated Host",link:"/docs/tags/dhs",icon:ee},{title:"ECS",text:"Elastic Cloud Server",link:"/docs/tags/ecs",icon:ce.A},{title:"FGS",text:"FunctionGraph",link:"/docs/tags/functiongraph",icon:le.A},{title:"IMS",text:"Image Management Service",link:"/docs/tags/ims",icon:re}];function se(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:ne})})}var ie=c(12692),oe=c(84706),ve=c(27366),he=c(72489);const de=[{title:"ASM",text:"Application Service Mesh",link:"/docs/tags/asm",icon:ie.A},{title:"CCE",text:"Cloud Container Engine",link:"/docs/tags/cce",icon:oe.A},{title:"CCI",text:"Serverless Container Engine",link:"/docs/tags/cci",icon:ve.A},{title:"SWR",text:"Software Repository for Containers",link:"/docs/tags/swr",icon:he.A}];function me(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:de})})}function pe(){return pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",pe({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M41.6 11 26.3 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.6 2.3.6s1.7-.2 2.3-.6L41.6 37c1.3-.7 2.4-2.5 2.4-4V15c0-1.5-1-3.2-2.4-4M6.1 15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2v11.8c0 1-.7 2.2-1.6 2.7L25.5 38c-.8.5-2.3.5-3.1 0L7.7 29.5c-.8-.5-1.6-1.7-1.6-2.7V15m34.5 20.2-15.3 8.5c-.7.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2v-3.5c.3.4.6.7 1 .9l14.8 8.5c.6.3 1.3.5 2.1.5s1.5-.2 2.1-.5l14.8-8.5c.4-.2.7-.5 1-.9V33c0 .7-.6 1.8-1.3 2.2",style:{fill:"#060001"}}))};function ge(){return ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",ge({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"m20.4 17.6 3.2 1.8c.1.1.3.1.4.1.2 0 .3 0 .4-.1l3.2-1.8c.3-.1.4-.5.4-.7v-3.7c0-.3-.2-.6-.4-.7l-3.2-1.8c-.2-.1-.6-.1-.8 0l-3.2 1.8c-.3.1-.4.5-.4.7v3.7c0 .3.2.6.4.7m.6-4.3 3-1.8 3 1.8v3.5l-3 1.8-3-1.8zm-6.1 15h-2.8c-1.2 0-2.1 1-2.1 2.1v2.9c0 1.2.9 2.1 2.1 2.1h2.8c1.2 0 2.1-1 2.1-2.1v-2.9c0-1.1-.9-2.1-2.1-2.1m1.1 5.1c0 .6-.5 1.1-1.1 1.1h-2.8c-.6 0-1.1-.5-1.1-1.1v-2.9c0-.6.5-1.1 1.1-1.1h2.8c.6 0 1.1.5 1.1 1.1zm8-12.7c-.3 0-.5.2-.5.5v5.7c0 .3.2.5.5.5s.5-.2.5-.5v-5.7c0-.3-.2-.5-.5-.5M41.6 11 26.3 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.6 2.3.6s1.7-.2 2.3-.6L41.6 37c1.3-.7 2.4-2.5 2.4-4V15c0-1.5-1-3.2-2.4-4m.3 22c0 .8-.6 1.8-1.3 2.2l-15.3 8.5c-.7.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2V15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2zm-6-4.7h-2.8c-1.2 0-2.1 1-2.1 2.1v2.9c0 1.2.9 2.1 2.1 2.1h2.8c1.2 0 2.1-1 2.1-2.1v-2.9c0-1.1-.9-2.1-2.1-2.1m1.1 5.1c0 .6-.5 1.1-1.1 1.1h-2.8c-.6 0-1.1-.5-1.1-1.1v-2.9c0-.6.5-1.1 1.1-1.1h2.8c.6 0 1.1.5 1.1 1.1zm-2.5-6.1c.1 0 .2 0 .2-.1.2-.1.3-.5.2-.7s-2.5-4.5-6.7-6.8c-.2-.1-.5 0-.7.2-.1.2 0 .6.2.7 3.9 2.2 6.3 6.4 6.3 6.5.2.1.3.2.5.2m-9.1 1h-2.8c-1.2 0-2.1 1-2.1 2.1v2.9c0 1.2.9 2.1 2.1 2.1h2.8c1.2 0 2.1-1 2.1-2.1v-2.9c0-1.1-.9-2.1-2.1-2.1m1.1 5.1c0 .6-.5 1.1-1.1 1.1h-2.8c-.6 0-1.1-.5-1.1-1.1v-2.9c0-.6.5-1.1 1.1-1.1h2.8c.6 0 1.1.5 1.1 1.1zm-6.7-13.7c-4.1 2.3-6.6 6.7-6.7 6.8-.1.2-.1.6.2.7.1 0 .2.1.2.1.2 0 .3-.1.4-.3 0 0 2.4-4.3 6.3-6.5.2-.1.3-.4.2-.7-.1-.1-.4-.2-.6-.1",style:{fill:"#454545"}}))};var we,fe,xe;function ye(){return ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",ye({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 41 44","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,we||(we=o.createElement("style",null,".st0{fill:#020202}")),fe||(fe=o.createElement("path",{d:"M37.3 8.6 23.8.8c-.9-.5-2.2-.8-3.4-.8s-2.3.3-3.3.8L3.8 8.6C1.9 9.6.5 12.1.5 14.2v15.6c0 2.1 1.4 4.5 3.2 5.6l13.5 7.8c.9.5 2.1.8 3.3.8s2.3-.3 3.3-.8l13.5-7.8c1.8-1.1 3.3-3.5 3.3-5.6V14.2c-.2-2.1-1.5-4.6-3.3-5.6m1.1 21.2c0 1.4-1.1 3.2-2.3 3.9l-13.5 7.8c-.5.3-1.3.5-2.2.5s-1.7-.2-2.3-.5L4.6 33.7c-1.1-.7-2.2-2.5-2.2-3.9V14.2c0-1.4 1.1-3.2 2.3-3.9l13.5-7.8c.6-.3 1.4-.5 2.2-.5.9 0 1.7.2 2.3.5l13.5 7.8c1.2.7 2.2 2.5 2.2 3.9z",className:"st0"})),xe||(xe=o.createElement("path",{d:"M20.5 8.8h-.9C12.8 9.3 7.3 15 7.3 22c0 7.3 5.9 13.2 13.2 13.2h.9c6.8-.5 12.2-6.2 12.2-13.1 0-7.3-5.9-13.3-13.1-13.3M8.3 22c0-6.6 5.2-11.9 11.7-12.2 2.1 0 4.1.8 5.7 2.4 1.9 1.9 3.1 4.5 3.1 7.2 0 3.4-1.6 7.4-5.1 8.5q-.9.15-1.8 0c2.2-1.8 3.2-3.6 3.2-5.9s-1.1-4.5-2.8-5.9c-1.4-1.2-3.2-1.6-4.9-1.2-4 1-5.9 5.7-5.9 9.5 0 3.5 2.2 7 5.1 8.9-4.8-1.4-8.3-5.9-8.3-11.3m13.3-5c1.5 1.2 2.4 3.1 2.4 5.1 0 2.1-1 3.8-3.3 5.5-.4-.2-.8-.4-1.1-.7-1.5-1.2-2.4-3.1-2.4-5.1 0-2.4 1.2-4.4 3.3-5.6.3.3.7.5 1.1.8m-.2 17.1c-4 0-8.9-4.3-9-9.5 0-3.5 1.6-7.7 5.1-8.6.5-.1 1.1-.2 1.6-.1-1.9 1.4-3 3.5-3 5.9 0 2.2 1.1 4.5 2.8 5.9 1.1.9 2.4 1.3 3.7 1.3.4 0 .8 0 1.1-.1h.1c4-1.3 5.8-5.7 5.8-9.5 0-3-1.2-5.9-3.4-7.9-.1-.1-.3-.2-.4-.4 4 2 6.7 6.1 6.7 10.9.1 6.4-4.8 11.7-11.1 12.1",className:"st0"})))};var je;function Oe(){return Oe=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Oe({xmlns:"http://www.w3.org/2000/svg",viewBox:"-10 0 1034 1024","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,je||(je=o.createElement("path",{fill:"currentColor",d:"M924 286 721 164q-24-14-59-14t-60 14l-90 54-90-54q-24-14-58.5-14T303 164L102 286q-25 14-42 45t-17 62v241q0 30 16.5 60t40.5 44l203 122q24 14 59 14t60-14l90-54 90 54q12 6 27.5 10.5T661 875t31.5-4.5T721 860l201-122q12-8 23-19t19-26q8-14 12.5-29.5T981 634V390q0-30-16.5-60T924 286m15 345q0 10-3 20t-8 21q-5 10-12.5 17.5T900 702L706 817h-2q-18 11-43 11t-42-11L416 695q-18-9-25-21.5t-7-33.5V395q0-4-1.5-6.5T378 384q-4-2-7-.5t-6 4.5l-96 118q-3 3-2 7t4 8q3 3 7.5 2t7.5-5l77-93v215q0 27 10 44.5t32 32.5l86 51-92 55q-14 8-37 9t-38-9L122 702q-16-10-27.5-30.5T83 634V390q0-19 11.5-39.5T122 322l194-115h2q17-11 42.5-11t42.5 11l203 122q19 9 26.5 21t7.5 34v245q0 4 1.5 6.5t4.5 4.5h5q1 0 4-1.5t4-2.5l96-118q3-3 2-7t-4-8q-3-3-7.5-2t-7.5 5l-77 93V384q0-27-10-44.5T619 307l-86-51 92-55q14-8 37-9t38 9l202 121q16 10 27.5 30.5T941 390v241z"})))};var Se,Ce,Ve,Ae;function Le(){return Le=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Le({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 40 44.12","aria-labelledby":c},l),Se||(Se=o.createElement("defs",null,o.createElement("style",null,".cls-1{fill:none}"))),void 0===t?o.createElement("title",{id:c},"GaussDB nosql"):t?o.createElement("title",{id:c},t):null,o.createElement("g",{id:"dsb_nosql_2","data-name":"gdb_nosql 2"},o.createElement("g",{id:"gdb_1-2","data-name":"gdb 1"},Ce||(Ce=o.createElement("path",{d:"M20.42 15.7a7.1 7.1 0 0 0-1.19 3.95v.23a5 5 0 0 0 0 .55l.53-.32a8 8 0 0 1 1.27-.61 8.16 8.16 0 0 1 10.67 5 7.23 7.23 0 0 0 1.85-4.82 7.15 7.15 0 0 0-6.5-7.15h-.68a7.15 7.15 0 0 0-5.95 3.17M20.53 21.47c-.16-.11-.31-.23-.47-.33a6 6 0 0 0-.55.41 6 6 0 0 0 .19.6h.61c.08-.22.16-.44.22-.68",className:"cls-1"})),Ve||(Ve=o.createElement("path",{d:"M12.88 15a7.13 7.13 0 0 0 1.53 4.43 7.25 7.25 0 0 0 3.69 2.48l.46.11-.12-.53a8 8 0 0 1-.2-1.55v-.26a8.18 8.18 0 0 1 8.1-8.18A7.19 7.19 0 0 0 12.88 15M23.31 27.13v-.23a7.12 7.12 0 0 0-1.52-4.2c-.13-.16-.26-.31-.4-.46l-.26.62a8.6 8.6 0 0 1-.7 1.3 8.16 8.16 0 0 1-3.9 3.13l-.18-.46.18.46A8.27 8.27 0 0 1 9 26.41v.72a7.19 7.19 0 0 0 14.37 0Z",className:"cls-1"})),Ae||(Ae=o.createElement("path",{d:"M16.16 26.36a7.12 7.12 0 0 0 3.42-2.75l.42.27-.42-.27.25-.41-.54-.05a8 8 0 0 1-1.46-.28A8.22 8.22 0 0 1 11.88 15a10 10 0 0 1 .12-1.09v-.27a7 7 0 0 1 .22-1 .1.1 0 0 0 0-.05 7.19 7.19 0 1 0 3.92 13.77ZM31.51 25.41l-.49.11a7.19 7.19 0 0 0-9.58-5.1l-.18-.42.18.47-.38.16.36.31a8.6 8.6 0 0 1 1.15 1.19 8.08 8.08 0 0 1 1.73 4.79v.26a8.26 8.26 0 0 1-3.3 6.49 7.17 7.17 0 0 0 10-8.15Z",className:"cls-1"})),o.createElement("path",{d:"M34.6 19.65a8.14 8.14 0 0 0-7.12-8.11 8.17 8.17 0 0 0-14.81 0 8.17 8.17 0 0 0-4.6 14.16 8.7 8.7 0 0 0-.13 1.44 8.16 8.16 0 0 0 12.13 7.15 8.17 8.17 0 0 0 12.14-7.15 9 9 0 0 0-.16-1.55 8.18 8.18 0 0 0 2.55-5.94m-7.5-7.15a7.15 7.15 0 0 1 6.5 7.15 7.23 7.23 0 0 1-1.85 4.82 8.16 8.16 0 0 0-10.67-5 8 8 0 0 0-1.27.61l-.53.32a5 5 0 0 1 0-.55v-.23a7.19 7.19 0 0 1 7.19-7.18c.18.03.41.04.63.06m-7.4 9.65a6 6 0 0 1-.19-.6 6 6 0 0 1 .55-.41c.16.1.31.22.47.33-.06.24-.14.46-.22.69-.2.01-.41 0-.61-.01m.37-14.34a7.16 7.16 0 0 1 6.26 3.66 8.18 8.18 0 0 0-8.1 8.18v.26a8 8 0 0 0 .2 1.55l.12.53-.46-.11a7.25 7.25 0 0 1-3.69-2.48 7.19 7.19 0 0 1 5.67-11.59M6.4 19.65a7.23 7.23 0 0 1 5.84-7.06.1.1 0 0 1 0 .05 7 7 0 0 0-.22 1v.27a10 10 0 0 0-.14 1.09 8.22 8.22 0 0 0 5.95 7.87 8 8 0 0 0 1.46.28l.54.05-.25.41.42.27-.42-.27a7.12 7.12 0 0 1-3.42 2.75 7.3 7.3 0 0 1-7.23-1.23 7.19 7.19 0 0 1-2.53-5.48m2.54 7.48v-.72a8.27 8.27 0 0 0 7.55.88l-.18-.46.18.46a8.16 8.16 0 0 0 3.9-3.13 8.6 8.6 0 0 0 .7-1.3l.26-.62c.14.15.27.3.4.46a7.12 7.12 0 0 1 1.52 4.2v.23a7.19 7.19 0 0 1-14.37 0ZM24 34.31a7.3 7.3 0 0 1-3-.64 8.26 8.26 0 0 0 3.27-6.54v-.26a8.08 8.08 0 0 0-1.73-4.79 8.6 8.6 0 0 0-1.15-1.19l-.36-.31.38-.16-.15-.42.18.47A7.19 7.19 0 0 1 31 25.52l.49-.11-.49.11a7.3 7.3 0 0 1 .19 1.61A7.2 7.2 0 0 1 24 34.31",style:{fill:"#666"}}),o.createElement("path",{d:"M37.6 9 22.3.53a5.45 5.45 0 0 0-4.7 0L2.4 9A4.94 4.94 0 0 0 0 13v18a4.94 4.94 0 0 0 2.4 4l15.3 8.5a4.4 4.4 0 0 0 2.3.59 4.47 4.47 0 0 0 2.3-.59L37.6 35a5.05 5.05 0 0 0 2.4-4V13a4.94 4.94 0 0 0-2.4-4m.3 22a2.88 2.88 0 0 1-1.3 2.2l-15.3 8.5a3 3 0 0 1-2.6 0L3.4 33.23A2.88 2.88 0 0 1 2.1 31V13a2.82 2.82 0 0 1 1.3-2.2l15.3-8.5A2.4 2.4 0 0 1 20 2a2.4 2.4 0 0 1 1.3.3l15.3 8.5a2.82 2.82 0 0 1 1.3 2.2Z",style:{fill:"#666"}}))))};var He,ke,Ne,Be,qe,Ie,Pe;function De(){return De=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",De({xmlns:"http://www.w3.org/2000/svg",id:"svg8",viewBox:"0 0 40 44.12","aria-labelledby":c},l),He||(He=o.createElement("defs",{id:"defs1"},o.createElement("style",{id:"style1"},".cls-1{fill:none}"))),void 0===t?o.createElement("title",{id:c||"title1"},"GaussDB nosql"):t?o.createElement("title",{id:c||"title1"},t):null,o.createElement("g",{id:"dsb_nosql_2","data-name":"gdb_nosql 2"},o.createElement("g",{id:"gdb_1-2","data-name":"gdb 1"},ke||(ke=o.createElement("path",{id:"path1",d:"M20.42 15.7a7.1 7.1 0 0 0-1.19 3.95v.23a5 5 0 0 0 0 .55l.53-.32a8 8 0 0 1 1.27-.61 8.16 8.16 0 0 1 10.67 5 7.23 7.23 0 0 0 1.85-4.82 7.15 7.15 0 0 0-6.5-7.15h-.68a7.15 7.15 0 0 0-5.95 3.17",className:"cls-1"})),Ne||(Ne=o.createElement("path",{id:"path2",d:"M20.53 21.47c-.16-.11-.31-.23-.47-.33a6 6 0 0 0-.55.41 6 6 0 0 0 .19.6h.61c.08-.22.16-.44.22-.68",className:"cls-1"})),Be||(Be=o.createElement("path",{id:"path3",d:"M12.88 15a7.13 7.13 0 0 0 1.53 4.43 7.25 7.25 0 0 0 3.69 2.48l.46.11-.12-.53a8 8 0 0 1-.2-1.55v-.26a8.18 8.18 0 0 1 8.1-8.18A7.19 7.19 0 0 0 12.88 15",className:"cls-1"})),qe||(qe=o.createElement("path",{id:"path4",d:"M23.31 27.13v-.23a7.12 7.12 0 0 0-1.52-4.2c-.13-.16-.26-.31-.4-.46l-.26.62a8.6 8.6 0 0 1-.7 1.3 8.16 8.16 0 0 1-3.9 3.13l-.18-.46.18.46A8.27 8.27 0 0 1 9 26.41v.72a7.19 7.19 0 0 0 14.37 0Z",className:"cls-1"})),Ie||(Ie=o.createElement("path",{id:"path5",d:"M16.16 26.36a7.12 7.12 0 0 0 3.42-2.75l.42.27-.42-.27.25-.41-.54-.05a8 8 0 0 1-1.46-.28A8.22 8.22 0 0 1 11.88 15a10 10 0 0 1 .12-1.09v-.27a7 7 0 0 1 .22-1 .1.1 0 0 0 0-.05 7.19 7.19 0 1 0 3.92 13.77Z",className:"cls-1"})),Pe||(Pe=o.createElement("path",{id:"path6",d:"m31.51 25.41-.49.11a7.19 7.19 0 0 0-9.58-5.1l-.18-.42.18.47-.38.16.36.31a8.6 8.6 0 0 1 1.15 1.19 8.08 8.08 0 0 1 1.73 4.79v.26a8.26 8.26 0 0 1-3.3 6.49 7.17 7.17 0 0 0 10-8.15Z",className:"cls-1"})),o.createElement("path",{id:"path7",d:"M34.6 19.65a8.14 8.14 0 0 0-7.12-8.11 8.17 8.17 0 0 0-14.81 0 8.17 8.17 0 0 0-4.6 14.16 8.7 8.7 0 0 0-.13 1.44 8.16 8.16 0 0 0 12.13 7.15 8.17 8.17 0 0 0 12.14-7.15 9 9 0 0 0-.16-1.55 8.18 8.18 0 0 0 2.55-5.94m-7.5-7.15a7.15 7.15 0 0 1 6.5 7.15 7.23 7.23 0 0 1-1.85 4.82 8.16 8.16 0 0 0-10.67-5 8 8 0 0 0-1.27.61l-.53.32a5 5 0 0 1 0-.55v-.23a7.19 7.19 0 0 1 7.19-7.18c.18.03.41.04.63.06m-7.4 9.65a6 6 0 0 1-.19-.6 6 6 0 0 1 .55-.41c.16.1.31.22.47.33-.06.24-.14.46-.22.69-.2.01-.41 0-.61-.01m.37-14.34a7.16 7.16 0 0 1 6.26 3.66 8.18 8.18 0 0 0-8.1 8.18v.26a8 8 0 0 0 .2 1.55l.12.53-.46-.11a7.25 7.25 0 0 1-3.69-2.48 7.19 7.19 0 0 1 5.67-11.59M6.4 19.65a7.23 7.23 0 0 1 5.84-7.06.1.1 0 0 1 0 .05 7 7 0 0 0-.22 1v.27a10 10 0 0 0-.14 1.09 8.22 8.22 0 0 0 5.95 7.87 8 8 0 0 0 1.46.28l.54.05-.25.41.42.27-.42-.27a7.12 7.12 0 0 1-3.42 2.75 7.3 7.3 0 0 1-7.23-1.23 7.19 7.19 0 0 1-2.53-5.48m2.54 7.48v-.72a8.27 8.27 0 0 0 7.55.88l-.18-.46.18.46a8.16 8.16 0 0 0 3.9-3.13 8.6 8.6 0 0 0 .7-1.3l.26-.62c.14.15.27.3.4.46a7.12 7.12 0 0 1 1.52 4.2v.23a7.19 7.19 0 0 1-14.37 0ZM24 34.31a7.3 7.3 0 0 1-3-.64 8.26 8.26 0 0 0 3.27-6.54v-.26a8.08 8.08 0 0 0-1.73-4.79 8.6 8.6 0 0 0-1.15-1.19l-.36-.31.38-.16-.15-.42.18.47A7.19 7.19 0 0 1 31 25.52l.49-.11-.49.11a7.3 7.3 0 0 1 .19 1.61A7.2 7.2 0 0 1 24 34.31",style:{fill:"#000",fillOpacity:1}}),o.createElement("path",{id:"path8",d:"M37.6 9 22.3.53a5.45 5.45 0 0 0-4.7 0L2.4 9A4.94 4.94 0 0 0 0 13v18a4.94 4.94 0 0 0 2.4 4l15.3 8.5a4.4 4.4 0 0 0 2.3.59 4.47 4.47 0 0 0 2.3-.59L37.6 35a5.05 5.05 0 0 0 2.4-4V13a4.94 4.94 0 0 0-2.4-4m.3 22a2.88 2.88 0 0 1-1.3 2.2l-15.3 8.5a3 3 0 0 1-2.6 0L3.4 33.23A2.88 2.88 0 0 1 2.1 31V13a2.82 2.82 0 0 1 1.3-2.2l15.3-8.5A2.4 2.4 0 0 1 20 2a2.4 2.4 0 0 1 1.3.3l15.3 8.5a2.82 2.82 0 0 1 1.3 2.2Z",style:{fill:"#000",fillOpacity:1}}))))};var _e=c(86732);const Re=[{title:"DCS",text:"Distributed Cache Service",link:"/docs/tags/dcs",icon:ue},{title:"DDM",text:"Distributed Database Middleware",link:"/docs/tags/ddm",icon:be},{title:"DDS",text:"Document Database Service",link:"/docs/tags/dds",icon:Ee},{title:"DRS",text:"Data Replication Service",link:"/docs/tags/drs",icon:Me},{title:"GaussDB for MySQL",text:"Enterprise-Class Distributed Database",link:"/docs/tags/gaussdb-mysql",icon:ze},{title:"GaussDB NoSQL",text:"Distributed NoSQL Database Service ",link:"/docs/tags/model-arts",icon:Te},{title:"GeminiDB",text:"Distributed, Multi-Model NoSQL Database Service",link:"/docs/tags/gemini-db",icon:_e.A},{title:"RDS",text:"Relational Database Service",link:"/docs/tags/rds",icon:_e.A}];function Fe(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:Re})})}function Ze(){return Ze=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Ze({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M5 18c.6 0 1-.4 1-1V7c0-.5.5-1 1-1h10c.6 0 1-.4 1-1s-.4-1-1-1H7C5.4 4 4 5.4 4 7v10c0 .6.4 1 1 1m12 24H7c-.5 0-1-.5-1-1V31c0-.6-.4-1-1-1s-1 .4-1 1v10c0 1.6 1.4 3 3 3h10c.6 0 1-.4 1-1s-.4-1-1-1M31 6h10c.5 0 1 .5 1 1v10c0 .6.4 1 1 1s1-.4 1-1V7c0-1.6-1.4-3-3-3H31c-.6 0-1 .4-1 1s.4 1 1 1m14 17h-8.4c-.2 0-.4.1-.5.3l-2.6 5.6L29 13.4c-.1-.2-.3-.4-.5-.4s-.4.1-.5.3l-3.6 11.3-2-4.3c-.1-.2-.3-.3-.5-.3s-.4.1-.5.3l-4 10.2-4.1-14c-.1-.2-.3-.4-.5-.4s-.4.2-.5.4L10.6 24H3c-.3 0-.5.2-.5.5s.2.5.5.5h8c.2 0 .4-.1.5-.3l1.5-5.9 4 13.7c.1.2.2.5.5.5.2 0 .4-.3.5-.5l4-10.6 2 4.4c.1.2.3.3.5.3s.4-.2.4-.3l3.5-11L33 30.4c.1.2.2.3.4.4.2 0 .4-.1.5-.3l3-6.5H45c.3 0 .5-.2.5-.5s-.2-.5-.5-.5m-2 7c-.6 0-1 .4-1 1v10c0 .5-.5 1-1 1H31c-.6 0-1 .4-1 1s.4 1 1 1h10c1.6 0 3-1.4 3-3V31c0-.6-.4-1-1-1",style:{fill:"#040000"}}))};var We,Qe,Ke,$e;function Ue(){return Ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Ue({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,We||(We=o.createElement("style",null,".st0{fill:#060001}")),Qe||(Qe=o.createElement("path",{d:"M24 13c-6.2 0-11.3 4.9-11.3 11S17.8 35 24 35s11.3-4.9 11.3-11S30.2 13 24 13m0 21c-5.7 0-10.3-4.5-10.3-10S18.3 14 24 14s10.3 4.5 10.3 10S29.7 34 24 34",className:"st0"})),Ke||(Ke=o.createElement("path",{d:"M24 7C13.3 7 4.3 14.3 2 24c2.3 9.7 11.3 17 22 17s19.7-7.3 22-17C43.7 14.3 34.7 7 24 7m0 32c-9.5 0-17.6-6.1-19.9-15C6.4 15.1 14.5 9 24 9s17.6 6.1 19.9 15C41.6 32.9 33.5 39 24 39",className:"st0"})),$e||($e=o.createElement("path",{d:"m28.8 18.6-3 2.9c-.5-.3-1.1-.5-1.8-.5-1.7 0-3.1 1.3-3.1 3s1.4 3 3.1 3 3.1-1.3 3.1-3c0-.6-.2-1.2-.6-1.7l3-2.9c.2-.2.2-.5 0-.7s-.5-.2-.7-.1",className:"st0"})))};var Ye,Je=c(9967);function et(){return et=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",et({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,Ye||(Ye=o.createElement("path",{d:"m18.6 26.6 1.7-1.2 2.9 1.7 3.6-9.9-11.5 5.1 2.6 1.8zm6.4-7.5-2.4 6.5-1.8-1.1c-.2-.1-.3-.1-.5-.1s-.4.1-.6.2l-.6.4-.4-1.2c-.1-.2-.2-.4-.4-.5l-1.1-.8zM3 27.5c.5 0 .9-.4 1-.9.1-.9.3-1.9.7-2.7.4-.9.9-1.7 1.5-2.5.3-.4.3-1.1-.1-1.4s-1.1-.3-1.4.1q-1.05 1.35-1.8 3c-.4 1-.7 2.1-.8 3.3-.1.5.3 1 .9 1.1-.1 0 0 0 0 0m3.6 7c-.4-.5-.9-1-1.2-1.6-.4-.7-.8-1.5-1-2.3-.2-.5-.7-.8-1.2-.7-.5.2-.8.7-.7 1.2q.45 1.5 1.2 2.7c.4.7.9 1.3 1.4 1.9.4.5.9.9 1.4 1.4.2.1.4.2.6.2.3 0 .6-.1.8-.4.3-.4.3-1.1-.2-1.4s-.7-.6-1.1-1M46 27.7c0-6-4.5-11.1-10.5-12.1C33.6 11 29.1 8 24 8s-9.7 3-11.6 7.6q-2.25.3-4.2 1.5c-.5.3-.7.9-.4 1.4s.9.7 1.4.4c1.3-.7 2.6-1.1 4.1-1.3.4 0 .7-.3.8-.7 1.5-4.1 5.4-6.9 9.9-6.9s8.4 2.8 9.9 6.9c.1.4.5.6.8.7 5.3.5 9.3 4.9 9.3 10.1 0 5.6-4.7 10.2-10.5 10.2h-7.6c-3.9-.5-6.9-3.8-6.9-7.7q0-1.05.3-2.1l-1.9-.5c-.2.9-.4 1.8-.4 2.7 0 4.8 3.4 8.7 8 9.6.1.1.3.1.5.1h.4c.3 0 .7.1 1.1.1V40h7.4v-.1c6.5-.5 11.6-5.8 11.6-12.2M18 37.9h-3.6c-1.1 0-2.1-.2-3.2-.5-.5-.2-1.1.1-1.3.7-.2.5.1 1.1.7 1.3 1.2.4 2.5.6 3.8.6H18c.6 0 1-.4 1-1s-.5-1.1-1-1.1"})))};var ct;function lt(){return lt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",lt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,ct||(ct=o.createElement("path",{fill:"#040000",d:"M14.2 15h10c.3 0 .5-.2.5-.5s-.2-.5-.4-.5h-10c-.3 0-.5.2-.5.5s.2.5.4.5m14-10H11.5C9.4 5 8 6.8 8 9v30c0 2.2 1.4 4 3.5 4h24.4c2.1 0 4.1-1.8 4.1-4V16.6zM28 7.4l9.3 9.6H30c-1.3 0-2-1.1-2-2.5zM38 39c0 1.1-1.1 2-2.1 2H11.5c-1 0-1.5-.9-1.5-2V9c0-1.1.6-2 1.5-2H27v7.5c0 1.9 1.2 3.5 3 3.5h8zM13.8 21.5c0 .3.2.5.5.5h19c.3 0 .5-.2.5-.5s-.3-.5-.5-.5h-19c-.3 0-.5.2-.5.5M25 35.6c1.1-1.2 1.7-2.8 1.7-4.6 0-3.9-3.1-7-7-7s-7 3.1-7 7 3.1 7 7 7c1.7 0 3.3-.6 4.5-1.7l2.6 2.5c.1.1.2.1.3.1s.3 0 .4-.2c.2-.2.2-.5 0-.7zM19.8 37c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6"})))};var rt;function nt(){return nt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",nt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,rt||(rt=o.createElement("path",{d:"M29.1 12.2c-.1-.2-.3-.3-.5-.3l-3.2-.1-1.9-3.1c-.1-.2-.3-.3-.5-.3L14.6 8c-.2 0-.5.1-.6.3l-3.9 7.6q-.15.3 0 .6l8.8 15.6q.15.3.6.3c.1 0 .2 0 .3-.1L22 31l2.6 4.6q.15.3.6.3c.1 0 .2 0 .3-.1l12.3-7.3c.1-.1.3-.2.3-.4s0-.3-.1-.5zm-9.5 18.7-8.3-14.7L15 9.3l7.6.2 1.3 2.1-3.6-.1c-.2 0-.5.1-.6.3l-3.9 7.6q-.15.3 0 .6l5.5 9.8zm5.7 3.5L17 19.8l3.6-6.9 7.6.2 8.3 14.7zm-7.7-22.3c0-.7-.5-1.2-1.2-1.2s-1.2.6-1.2 1.2.5 1.2 1.2 1.2 1.2-.5 1.2-1.2M42.1 2H5.9C3.7 2 2 3.7 2 5.9v26.2c0 1.4.8 2.7 2 3.4l18.1 10c.6.3 1.2.5 1.9.5s1.3-.2 1.9-.5l18.1-10c1.2-.7 2-2 2-3.4V5.9C46 3.7 44.3 2 42.1 2M44 32.1c0 .7-.4 1.3-1 1.7l-18.1 10q-.9.45-1.8 0L5 33.8c-.6-.3-1-1-1-1.7V5.9C4 4.8 4.8 4 5.9 4h36.3c1 0 1.9.8 1.9 1.9v26.2zM22.5 14.7c-.9 0-1.6.7-1.6 1.7 0 .9.7 1.7 1.6 1.7s1.6-.7 1.6-1.7c.1-1-.7-1.7-1.6-1.7"})))};const it=[{title:"APM",text:"Application Performance Management",link:"/docs/tags/apm",icon:Ge},{title:"Cloud Create",text:"Multi-Cloud Management Platform",link:"/docs/tags/cloud-create",icon:c(17909).A},{title:"CloudEye",text:"Multi-Dimensional Monitoring Platform",link:"/docs/tags/cloudeye",icon:Xe},{title:"Config",text:"Continuously Evaluate Resource Configuration",link:"/docs/tags/config",icon:Je.A},{title:"CTS",text:"Cloud Trace Service",link:"/docs/tags/cts",icon:tt},{title:"LTS",text:"Log Tank Service",link:"/docs/tags/lts",icon:at},{title:"RMS",text:"Resource Management Service ",link:"/docs/tags/rms",icon:Je.A},{title:"TMS",text:"Tag Management Service",link:"/docs/tags/rds",icon:st}];function ot(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:it})})}var vt;function ht(){return ht=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",ht({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,vt||(vt=o.createElement("path",{d:"M41.9 23.6c-.2-.5-.6-.8-1.1-.8H10.2L22.5 11c.6.3 1.3.5 2.1.5 2.6 0 4.8-2.1 4.8-4.8 0-2.6-2.2-4.8-4.8-4.8S19.8 4 19.8 6.7c0 1 .3 2 .9 2.7L6.4 23.1c-.4.4-.5.9-.3 1.3.2.5.6.7 1.1.7h30.3L23.2 36.9c-.6-.3-1.2-.4-1.9-.4-2.6 0-4.8 2.1-4.8 4.8 0 2.6 2.2 4.8 4.8 4.8s4.8-2.1 4.8-4.8c0-1.1-.4-2-1-2.8L41.5 25c.5-.4.6-.9.4-1.4M24.6 4.4c1.3 0 2.4 1.1 2.4 2.4s-1.1 2.4-2.4 2.4-2.4-1.1-2.4-2.4c0-1.4 1.1-2.4 2.4-2.4m-3.3 39.2c-1.3 0-2.4-1.1-2.4-2.4s1.1-2.4 2.4-2.4 2.4 1.1 2.4 2.4c0 1.4-1.1 2.4-2.4 2.4"})))};var mt;function pt(){return pt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",pt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,mt||(mt=o.createElement("path",{d:"M24 24h6.5c2.5 0 4.5-2 4.5-4.5S33 15 30.5 15H23v16h1zm0-8h6.5c1.9 0 3.5 1.6 3.5 3.5S32.4 23 30.5 23H24zm0-14C11.8 2 2 11.8 2 24s9.8 22 22 22 22-9.8 22-22S36.2 2 24 2m0 42C13 44 4 35 4 24S13 4 24 4s20 9 20 20-9 20-20 20m-6-29h-1v16h1zm6 24c-4.1 0-7.8-1.5-10.6-4.4l-.7.7c3 3 7 4.6 11.4 4.6s8.4-1.7 11.4-4.6l-.7-.7c-3 2.9-6.7 4.4-10.8 4.4"})))};var gt=c(61706);function bt(){return bt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",bt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M18.1 39c0 .6-.4 1-1 1h-2.8C7.5 40 2 34.5 2 27.8c0-6 4.4-11.1 10.3-12.1C14.1 11.1 18.6 8 23.6 8c4.8 0 9.1 2.8 11.1 7.1.2.5 0 1.1-.5 1.3s-1.1 0-1.3-.5c-1.7-3.6-5.3-6-9.3-6-4.4 0-8.2 2.8-9.7 6.9-.1.4-.5.6-.8.7-5.2.6-9.1 5-9.1 10.3C4 33.4 8.6 38 14.2 38H17c.6 0 1.1.4 1.1 1M46 32.4v5.2c0 1.3-1.1 2.4-2.4 2.4H23.4c-1.3 0-2.4-1.1-2.4-2.4v-5.2c0-1.3 1.1-2.4 2.4-2.4H38v-1.6c0-.8.6-1.4 1.4-1.4h.1v-2.5c0-.3.2-.5.5-.5s.5.2.5.5V27h.1c.8 0 1.4.6 1.4 1.4V30h1.6c1.3 0 2.4 1.1 2.4 2.4M39 30h2v-1.6c0-.2-.2-.4-.4-.4h-1.3c-.2 0-.4.2-.4.4V30zm6 2.4c0-.8-.6-1.4-1.4-1.4H23.4c-.8 0-1.4.6-1.4 1.4v5.2c0 .8.6 1.4 1.4 1.4h20.2c.8 0 1.4-.6 1.4-1.4zM40 34c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m-14.5-1c-.3 0-.5.2-.5.5v3c0 .3.2.5.5.5s.5-.2.5-.5v-3c0-.3-.2-.5-.5-.5m3 0c-.3 0-.5.2-.5.5v3c0 .3.2.5.5.5s.5-.2.5-.5v-3c0-.3-.2-.5-.5-.5m3 0c-.3 0-.5.2-.5.5v3c0 .3.2.5.5.5s.5-.2.5-.5v-3c0-.3-.2-.5-.5-.5m5-12.9c2-2 5.1-2 7.1 0 .2.2.5.2.7 0s.2-.5 0-.7c-2.4-2.3-6.1-2.3-8.5 0-.2.2-.2.5 0 .7s.4.2.7 0m2.2 1.4c-.2.2-.2.5 0 .7s.5.2.7 0c.4-.4 1-.4 1.4 0 .2.2.5.2.7 0s.2-.5 0-.7c-.8-.9-2.2-.9-2.8 0",style:{fill:"#252b3a"}}))};var ft,xt,yt,Et;function jt(){return jt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",jt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,ft||(ft=o.createElement("style",null,".st0{fill:#040000}")),xt||(xt=o.createElement("path",{d:"M31.6 33.7 30 35.6V28c0-.3-.2-.5-.5-.5s-.5.2-.5.5v9c0 .2.1.4.3.5h.2c.1 0 .3-.1.4-.2l2.5-3c.2-.2.1-.5-.1-.7s-.5-.1-.7.1M18.5 27.5c-.3 0-.5.2-.5.5v9c0 .3.2.5.5.5s.5-.2.5-.5v-9c0-.3-.2-.5-.5-.5",className:"st0"})),yt||(yt=o.createElement("path",{d:"M32 18h-2v-7c0-.3-.2-.5-.5-.5s-.5.2-.5.5v7H19v-7c0-.2-.1-.4-.3-.5s-.4 0-.6.1l-2.5 3c-.2.2-.1.5.1.7s.5.1.7-.1l1.6-1.9V18h-2c-3.9 0-7 2.9-7 6.5s3.1 6.5 7 6.5c.3 0 .5-.2.5-.5s-.2-.5-.5-.5c-3.3 0-6-2.5-6-5.5s2.7-5.5 6-5.5h16c3.3 0 6 2.5 6 5.5S35.3 30 32 30c-.3 0-.5.2-.5.5s.2.5.5.5c3.9 0 7-2.9 7-6.5S35.9 18 32 18",className:"st0"})),Et||(Et=o.createElement("path",{d:"M41 3H7C4.8 3 3 4.8 3 7v34c0 2.2 1.8 4 4 4h34c2.2 0 4-1.8 4-4V7c0-2.2-1.8-4-4-4m2 38c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h34c1.1 0 2 .9 2 2z",className:"st0"})))};function Mt(){return Mt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Mt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M23.9 21.9c-.1-.2-.4-.2-.5-.1-.3 0-.4.2-.4.4v20.3c0 .3.2.5.5.5s.5-.2.5-.5v-19l4.6 5.1c.2.2.5.2.7 0s.2-.5 0-.7zm11.6-9.1C33.6 8.1 29.1 5 24 5s-9.6 3.1-11.5 7.8C6.5 13.7 2 18.9 2 25c0 6.8 5.6 12.4 12.5 12.4.6 0 1-.5 1-1s-.4-1-1-1C8.7 35.4 4 30.7 4 25c0-5.3 4-9.7 9.3-10.3.4 0 .7-.3.8-.7 1.5-4.2 5.4-7 9.9-7s8.4 2.8 9.9 7c.1.4.5.6.8.7 5.3.6 9.3 5 9.3 10.3 0 5.7-4.7 10.4-10.5 10.4-.6 0-1 .5-1 1s.4 1 1 1C40.4 37.4 46 31.9 46 25c0-6.1-4.5-11.3-10.5-12.2",style:{fill:"#040000"}}))};var Ct;function Vt(){return Vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Vt({xmlns:"http://www.w3.org/2000/svg",viewBox:"-10 0 1034 1024","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,Ct||(Ct=o.createElement("path",{fill:"currentColor",d:"M695 448H331q-13 0-22.5 9.5T299 480v213q0 13 9.5 22.5T331 725h364q13 0 21.5-9.5T725 693V480q0-13-8.5-22.5T695 448m9 245q0 5-2.5 8t-6.5 3H331q-4 0-7.5-3t-3.5-8V529l188 79h8l188-79zm0-187-192 81-192-81v-26q0-5 3-8t8-3h364q4 0 6.5 3t2.5 8zm49-163q-13-37-36-69t-54.5-55-69.5-35q-39-13-81-13t-81 13q-38 12-69.5 35T307 274t-36 69q-48 5-90 27-41 22-72 56t-49 78q-17 44-17 93 0 53 20 100 20 46 55 81t81 55q47 20 100 20h426q53 0 100-20 46-20 81-55t55-81q20-47 20-100 0-49-17-93-18-44-49-78t-72-56q-42-22-90-27m-28 468H299q-44 0-83-17t-68-46-46-68-17-83q0-40 15-77 14-37 39.5-65t60.5-47q34-18 75-22 13-1 22.5-8.5T311 358q23-64 78.5-103.5T512 215t122.5 39.5T713 358q4 12 13.5 19.5T749 386q41 5 75 23 35 19 60.5 47t39.5 64q15 37 15 77 0 44-17 83t-46 68-68 46-83 17"})))};var Lt=c(50060);function zt(){return zt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",zt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),void 0===t?o.createElement("title",{id:c},"Vpc Endpoint"):t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M36.5 21c-1.8 0-3.2 1.3-3.5 3h-3.5c-.2 0-.3.1-.4.2 0 0-.1 0-.1.1l-5 5V18.5c0-.3-.2-.5-.5-.5-.2 0-.3.1-.4.2 0 0-.1 0-.1.1L17.3 24h-4.4c-.2-.9-1-1.5-1.9-1.5-1.1 0-2 .9-2 2s.9 2 2 2c.9 0 1.7-.6 1.9-1.5h4.6c.2 0 .3-.1.4-.2 0 0 .1 0 .1-.1l5-5v10.8c0 .3.2.5.5.5.2 0 .3-.1.4-.2 0 0 .1 0 .1-.1l5.7-5.7H33c.2 1.7 1.6 3 3.5 3 2 0 3.5-1.5 3.5-3.5S38.5 21 36.5 21m0 5.2c-1 0-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8 1.8.8 1.8 1.8-.8 1.8-1.8 1.8M24 2C11.8 2 2 11.8 2 24s9.8 22 22 22 22-9.8 22-22S36.2 2 24 2m0 42C13 44 4 35 4 24S13 4 24 4s20 9 20 20-9 20-20 20",style:{fill:"#333"}}))};var kt,Nt,Bt;function qt(){return qt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",qt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,kt||(kt=o.createElement("path",{d:"M39.8 18h-1v11h-.3c-1.1 0-1.6-.3-1.9-1.2l-2.7-7.7c-.2-.5-.8-2.1-2.9-2.1h-1.3v12h1V19h.3c.9 0 1.4.4 1.8 1.5l2.7 7.7.5-.2-.5.2c.5 1.3 1.4 1.8 2.9 1.8h1.3V18z"})),Nt||(Nt=o.createElement("path",{d:"M24 2C11.9 2 2 11.9 2 24s9.9 22 22 22 22-9.9 22-22S36.1 2 24 2M8.5 33.7c1.3 2.6 3.3 4.8 5.7 6.2l.5-.9c-2.1-1.2-3.8-3-5-5.1h31.5c-3.5 6-9.9 10-17.3 10C13 44 4 35 4 24c0-3.2.8-6.3 2.2-9h33.2l-.4-.7c-1.3-2.6-3.3-4.8-5.7-6.2l-.5.9c2.1 1.2 3.8 3 5 5.1h-31C10.2 8 16.6 4 24 4c11 0 20 9 20 20 0 3.2-.8 6.3-2.2 9H8.2z"})),Bt||(Bt=o.createElement("path",{d:"M25.5 18h-6.8v12h1v-6h5.8c1.2 0 2.2-1.1 2.2-2.4v-1.3c.1-1.2-1-2.3-2.2-2.3m1.3 3.6c0 .8-.6 1.4-1.2 1.4h-5.8v-4h5.8c.7 0 1.2.6 1.2 1.4zM14 26.9c-.4 1.1-.9 1.6-1.8 1.6h-.5c-.9 0-1.4-.5-1.7-1.5l-2-9.1-1 .2 2 9.1c.2.5.7 2.1 2.5 2.2h.8999999999999999c1.7-.1 2.3-1.7 2.5-2.3l2-9.1-1-.2z"})))},Pt=[{title:"Direct Connect",text:"Dedicated Network Connection",link:"/docs/tags/direct-connect",icon:dt},{title:"DNS",text:"Domain Name Service",link:"/docs/tags/dns",icon:h},{title:"EIP",text:"Elastic IP",link:"/docs/tags/eip",icon:ut},{title:"ELB",text:"Elastic Load Balancing",link:"/docs/tags/elb",icon:gt.A},{title:"Enterprise Router",text:"Cloud Router Service",link:"/docs/tags/enterprise-router",icon:wt},{title:"NATGW",text:"NAT Gateway",link:"/docs/tags/natgw",icon:Ot},{title:"PLAS",text:"Private Link Access Service",link:"/docs/tags/plas",icon:St},{title:"Secure Mail Gateway",text:"Anti-Spam & Anti-Junk Outgoing Email Traffic",link:"/docs/tags/smg",icon:At},{title:"VPC",text:"Virtual Private Cloud",link:"/docs/tags/vpc",icon:Lt.A},{title:"VPCEP",text:"Virtual Private Cloud Endpoint",link:"/docs/tags/vpcep",icon:Ht},{title:"VPN",text:"Virtual Private Network",link:"/docs/tags/vpn",icon:It}];function Dt(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:Pt})})}var Tt;function _t(){return _t=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Wt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,Gt||(Gt=o.createElement("path",{d:"M24 11c-3.9 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7m0 13c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6m-.5 13h1v-2H28v-1h-3.5v-2H28v-1h-3.5v-6h-1zm18.4-26.5c-2.1-.7-6.3-2.1-8.4-3.1-4.2-2.1-5.8-3.5-7.4-4.7-.6-.5-1.3-.7-2.1-.7q-1.2 0-2.1.6c-1.6 1.2-3.2 2.6-7.4 4.7-2.1 1-6.3 2.4-8.4 3.1-1.4.5-2.2 1.7-2.1 3.1.4 4.6 1.5 13.5 4.2 19 3.2 6.3 11.1 11.2 14.2 13.1.5.3 1 .4 1.6.4s1.1-.1 1.6-.4c3.1-1.9 11-6.8 14.2-13.1 2.7-5.5 3.8-14.4 4.2-18.8.1-1.5-.8-2.8-2.1-3.2M38 31.6c-2 4-6.5 8.1-13.4 12.3-.2 0-.4.1-.6.1s-.4-.1-.5-.2c-7-4.1-11.5-8.3-13.5-12.2C7.2 26 6.2 16.3 6 13.5c-.1-.7.6-1 .8-1.1l.8-.3c2.3-.8 5.9-2 7.9-3 3.8-1.9 5.6-3.3 7.1-4.4.2-.2.4-.3.6-.5 0-.1.3-.2.7-.2h.2c.4 0 .7.1.8.2.2.2.4.3.6.5 1.4 1.1 3.2 2.5 7.1 4.4 2 1 5.5 2.2 7.9 3l.8.3c.2.1.8.3.8 1.1-.3 2.8-1.3 12.5-4.1 18.1"})))};var Kt;function $t(){return $t=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",$t({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,Kt||(Kt=o.createElement("path",{d:"M34 16.6c-3.7-.7-7.2-2.6-8.8-4.1-.3-.2-.7-.3-.9-.3s-.7 0-1 .3c-1.7 1.5-5.1 3.3-8.8 4.1-.5.1-.9 1.1-.9 1.6 0 .4.1.8.1 1.3.3 2.6.6 6.4 3.2 9.9 1.7 2.4 4.5 4.8 6.8 6.1.1.1.3.1.6.1s.4-.1.5-.1c2.4-1.3 5.1-3.7 6.8-6.1 2.3-3.2 2.8-7.3 3-9.9 0-.4.1-.8.1-1.2.1-.5-.1-1.6-.7-1.7m-19.3 1.5c0-.1.1-.4.2-.5 2.1-.4 4-1.2 5.7-2v3.7h-5.7c-.2-.5-.2-.9-.2-1.2m.2 2.2h13.8v7.1H16.9c-1.4-2.4-1.8-5-2-7.1m5.6 11.5c-1-1-2-2-2.8-3-.1-.1-.1-.2-.1-.2h2.9zm10.2-3.1c-1.6 2.2-4.2 4.6-6.3 5.8h-.2c-.8-.5-1.7-1.1-2.6-1.8v-4.2h9.3zm.8-1.3h-1.8v-7.1h3.7c-.2 2.1-.6 4.8-1.9 7.1m2.1-8.1h-12V15c1-.6 1.8-1.1 2.4-1.7 0 0 .1-.1.3-.1h.2c1.8 1.6 5.3 3.5 9.1 4.3.1.1.1.4.1.5 0 .4-.1.8-.1 1.3m8.3-8.8c-2.1-.7-6.3-2.1-8.4-3.1-4.2-2.1-5.8-3.5-7.4-4.7-.6-.5-1.3-.7-2.1-.7q-1.2 0-2.1.6c-1.6 1.2-3.2 2.6-7.4 4.7-2.1 1-6.3 2.4-8.4 3.1-1.4.5-2.2 1.7-2.1 3.1.4 4.6 1.5 13.5 4.2 19 3.2 6.3 11.1 11.2 14.2 13.1.5.3 1 .4 1.6.4s1.1-.1 1.6-.4c3.1-1.9 11-6.8 14.2-13.1 2.7-5.5 3.8-14.4 4.2-18.8.1-1.5-.8-2.8-2.1-3.2M38 31.6c-2 4-6.5 8.1-13.4 12.3-.2 0-.4.1-.6.1s-.4-.1-.5-.2c-7-4.1-11.5-8.3-13.5-12.2C7.2 26 6.2 16.3 6 13.5c-.1-.7.6-1 .8-1.1l.8-.3c2.3-.8 5.9-2 7.9-3 3.8-1.9 5.6-3.3 7.1-4.4.2-.2.4-.3.6-.5 0-.1.3-.2.7-.2h.2c.4 0 .7.1.8.2.2.2.4.3.6.5 1.4 1.1 3.2 2.5 7.1 4.4 2 1 5.5 2.2 7.9 3l.8.3c.2.1.8.3.8 1.1-.3 2.8-1.3 12.5-4.1 18.1"})))},Xt=[{title:"Anti-DDoS",text:"Anti-DDoS Traffic Cleaning Service",link:"/docs/tags/anti-ddos",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",_t({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,Tt||(Tt=o.createElement("path",{d:"M41.9 10.5c-2.1-.7-6.3-2.1-8.4-3.1-4.2-2.1-5.8-3.5-7.4-4.7-.6-.5-1.3-.7-2.1-.7q-1.2 0-2.1.6c-1.6 1.2-3.2 2.6-7.4 4.7-2.1 1-6.3 2.4-8.4 3.1-1.4.5-2.2 1.7-2.1 3.1.4 4.6 1.5 13.5 4.2 19 3.2 6.3 11.1 11.2 14.2 13.1.5.3 1 .4 1.6.4s1.1-.1 1.6-.4c3.1-1.9 11-6.8 14.2-13.1 2.7-5.5 3.8-14.4 4.2-18.8.1-1.5-.8-2.8-2.1-3.2M38 31.6c-2 4-6.5 8.1-13.4 12.3-.2 0-.4.1-.6.1s-.4-.1-.5-.2c-7-4.1-11.5-8.3-13.5-12.2C7.2 26 6.2 16.3 6 13.5c-.1-.7.6-1 .8-1.1l.8-.3c2.3-.8 5.9-2 7.9-3 3.8-1.9 5.6-3.3 7.1-4.4.2-.2.4-.3.6-.5 0-.1.3-.2.7-.2h.2c.4 0 .7.1.8.2.2.2.4.3.6.5 1.4 1.1 3.2 2.5 7.1 4.4 2 1 5.5 2.2 7.9 3l.8.3c.2.1.8.3.8 1.1-.3 2.8-1.3 12.5-4.1 18.1m-19.9-4.8c0 3.2 2.6 5.9 5.9 5.9s5.9-2.6 5.9-5.9c0-3.2-5.9-8.3-5.9-13.8 0 5.6-5.9 10.6-5.9 13.8m8.7-4.7c1.1 1.8 2.2 3.5 2.2 4.7 0 2.8-2.3 5-5 5-2.8 0-5-2.2-5-5 0-1.1 1.1-2.8 2.2-4.6 1-1.6 2.1-3.3 2.8-5.1.7 1.8 1.8 3.5 2.8 5"})))}},{title:"DDS",text:"Database Security Service",link:"/docs/tags/dss",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Ft({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,Rt||(Rt=o.createElement("path",{d:"M45.4 16 37.6 3.9c-.7-1.2-2-1.9-3.5-1.9H20.2c-1.4 0-2.9.8-3.6 2L2.5 27.9c-.7 1.3-.7 2.9.1 4.1l7.8 12.1c.7 1.2 2 1.9 3.5 1.9h13.9c1.4 0 2.9-.8 3.6-2l14.1-23.9c.7-1.3.7-2.9-.1-4.1M29.6 43c-.4.6-1 1-1.7 1h-14c-.7 0-1.3-.4-1.7-.9L4.4 31c-.4-.6-.4-1.4 0-2.1l5.6-9.6c.1.5.3 1 .5 1.5L17.6 32c.7 1.2 2 1.9 3.6 1.9h.1l12.7-.2c.5 0 1-.1 1.4-.3zm7-12.3-.2.4c-.5.9-1.5 1.6-2.7 1.6l-12.7.2h-.1c-1.1 0-2-.6-2.7-1.5l-7-11.2c-.6-.9-.6-2-.1-3l.2-.4c.5-.9 1.5-1.6 2.7-1.6l12.8-.2h.1c1.1 0 2 .6 2.7 1.5l7 11.2c.5 1 .6 2.1 0 3m7-11.6L38 28.7c-.1-.5-.3-1-.5-1.5L30.4 16c-.7-1.2-2-1.9-3.6-1.9h-.1l-12.7.2c-.5 0-1 .1-1.4.3L18.4 5c.4-.6 1-1 1.7-1H34c.7 0 1.3.4 1.7.9L43.6 17q.6 1.05 0 2.1"})))}},{title:"HSS",text:"Host Security Service",link:"/docs/tags/hss",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",Zt({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,o.createElement("path",{d:"M24 26c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3m0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m-6-10h12v-1H18zm0-3h12v-1H18zm23.9-7.5c-2.1-.7-6.3-2.1-8.4-3.1-4.2-2.1-5.8-3.5-7.4-4.7-.6-.5-1.3-.7-2.1-.7q-1.2 0-2.1.6c-1.6 1.2-3.2 2.6-7.4 4.7-2.1 1-6.3 2.4-8.4 3.1-1.4.5-2.2 1.7-2.1 3.1.4 4.6 1.5 13.5 4.2 19 3.2 6.3 11.1 11.2 14.2 13.1.5.3 1 .4 1.6.4s1.1-.1 1.6-.4c3.1-1.9 11-6.8 14.2-13.1 2.7-5.5 3.8-14.4 4.2-18.8.1-1.5-.8-2.8-2.1-3.2M38 31.6c-2 4-6.5 8.1-13.4 12.3-.2 0-.4.1-.6.1s-.4-.1-.5-.2c-7-4.1-11.5-8.3-13.5-12.2C7.2 26 6.2 16.3 6 13.5c-.1-.7.6-1 .8-1.1l.8-.3c2.3-.8 5.9-2 7.9-3 3.8-1.9 5.6-3.3 7.1-4.4.2-.2.4-.3.6-.5 0-.1.3-.2.7-.2h.2c.4 0 .7.1.8.2.2.2.4.3.6.5 1.4 1.1 3.2 2.5 7.1 4.4 2 1 5.5 2.2 7.9 3l.8.3c.2.1.8.3.8 1.1-.3 2.8-1.3 12.5-4.1 18.1M31 12H17c-1.1 0-2 .9-2 2v20c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V14c0-1.1-.9-2-2-2m1 22c0 .6-.4 1-1 1H17c-.6 0-1-.4-1-1V14c0-.6.4-1 1-1h14c.6 0 1 .4 1 1z",style:{fill:"#221815"}}))}},{title:"IAM",text:"Identity & Access Management",link:"/docs/tags/iam",icon:c(46774).A},{title:"KMS",text:"Key Management Service",link:"/docs/tags/kms",icon:Qt},{title:"WAF",text:"Web Application Firewall",link:"/docs/tags/waf",icon:Ut},{title:"Dedicated WAF",text:"Dedicated Web Application Firewall",link:"/docs/tags/dedicated-waf",icon:Ut}];function Yt(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:Xt})})}var Jt,ec,tc;function cc(){return cc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",wc({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,gc||(gc=o.createElement("path",{fill:"none",stroke:"#000",strokeMiterlimit:10,d:"M28.5 31.1c0 1.4.7 2.7 2 3.4l6.7 3.9"})),bc||(bc=o.createElement("path",{d:"M29 29.6c0-.3-.2-.5-.5-.5s-.5.2-.5.5V31c0 .2 0 .5.1.7 0 .2.3.4.5.4h.1c.3 0 .5-.3.4-.6v-.6zm-.5-2.6c.3 0 .5-.2.5-.5v-5.1c0-.3-.2-.5-.5-.5s-.5.3-.5.6v5.1c0 .2.2.4.5.4m11.9-16.7L27.6 2.9c-2-1.2-5.1-1.2-7.2 0L7.6 10.3c-2 1.2-3.6 3.9-3.6 6.2v14.9c0 2.4 1.5 5 3.6 6.2L20.4 45c1 .6 2.3.9 3.6.9s2.6-.3 3.6-.9l12.8-7.4c2-1.2 3.6-3.9 3.6-6.2V16.5c0-2.3-1.5-5-3.6-6.2M8.6 35.9C7.2 35.1 6 33.1 6 31.5V16.6c0-1.6 1.2-3.7 2.6-4.5l2.8-1.6 5.9 3.5c1.1.6 1.7 1.8 1.7 3v14.1c0 1.2-.7 2.4-1.7 3l-5.9 3.5zM42 31.5c0 1.6-1.2 3.7-2.6 4.5l-2.8 1.6-1-.6c-.2-.1-.5-.1-.7.2-.1.2-.1.5.2.7l.5.3-9.1 5.2c-1.4.8-3.8.8-5.2 0l-9-5.2 5.4-3.2c1.4-.8 2.2-2.3 2.2-3.9V17c0-1.6-.9-3.1-2.2-3.9l-5.4-3.2 9.1-5.2c.7-.5 1.7-.7 2.6-.7s1.9.2 2.6.6l9 5.2-5.4 3.2c-.1 0-.2.1-.2.2-.1 0-.1.1-.2.1-.9.7-1.5 1.7-1.7 2.9 0 .2-.1.5-.1.7v1.5c0 .3.2.5.5.5s.5-.2.5-.5v-2c.1-.9.7-1.8 1.4-2.3.1-.1.2-.1.3-.2l2.3-1.3 2.6-1.5 1-.6 2.8 1.6c1.4.8 2.6 2.8 2.6 4.5zm-9 3.9-2.3-1.3c-.1-.1-.2-.1-.3-.2-.2-.2-.5-.1-.7.1s-.1.5.1.7c.1.1.3.2.4.3l2.3 1.3c.1 0 .2.1.3.1.2 0 .3-.1.4-.2.1-.3 0-.6-.2-.8"})))};var xc;function yc(){return yc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",yc({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,xc||(xc=o.createElement("path",{d:"M42 10H20l-4-4H6c-2.2 0-4 1.8-4 4v28c0 2.2 1.8 4 4 4h36c2.2 0 4-1.8 4-4V14c0-2.2-1.8-4-4-4m2 28c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V19h40zm0-20H4v-8c0-1.1.9-2 2-2h9.2l3.4 3.4.6.6H42c1.1 0 2 .9 2 2z"})))};var jc,Oc,Mc,Sc,Cc,Vc,Ac,Lc;function zc(){return zc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...l}=e;return o.createElement("svg",zc({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,jc||(jc=o.createElement("style",null,".st0{fill:#060001}")),Oc||(Oc=o.createElement("circle",{cx:39.5,cy:6.6,r:1.1,className:"st0"})),Mc||(Mc=o.createElement("circle",{cx:10.8,cy:12.9,r:1.7,className:"st0"})),Sc||(Sc=o.createElement("circle",{cx:27.7,cy:12.9,r:1.7,className:"st0"})),Cc||(Cc=o.createElement("path",{d:"M22.7 24.9c-.5-1.3-1.8-2.3-3.5-2.3-1.6 0-3 1-3.5 2.3-1.8.2-3.3 1.6-3.3 3.4 0 1.9 1.7 3.4 3.7 3.4h6.1c2 0 3.7-1.5 3.7-3.4.1-1.8-1.4-3.2-3.2-3.4m-.4 5.7h-6.1c-1.4 0-2.6-1-2.6-2.3 0-1.2 1-2.1 2.3-2.3.4 0 .8-.3.9-.7.3-.9 1.3-1.6 2.4-1.6 1.2 0 2.1.6 2.4 1.6.2.4.5.7.9.7 1.3.1 2.3 1.1 2.3 2.3s-1.1 2.3-2.5 2.3",className:"st0"})),Vc||(Vc=o.createElement("path",{d:"M28.7 6h-19C6.6 6 4 8.5 4 11.5v29.1c0 3 2.6 5.5 5.7 5.5h19c3.1 0 5.7-2.5 5.7-5.5V11.5c0-3-2.5-5.5-5.7-5.5m3.5 34.5c0 1.7-1.5 3.2-3.5 3.2h-19c-1.9 0-3.5-1.4-3.5-3.2v-29c0-1.7 1.5-3.2 3.5-3.2h19c1.9 0 3.5 1.4 3.5 3.2z",className:"st0"})),Ac||(Ac=o.createElement("path",{d:"M39.1 2H21.4c-1 0-2.7.4-3.3 1.4-.1.3 0 .6.2.8.3.1.6 0 .8-.2.2-.4 1.3-.8 2.3-.8H39c2.6 0 3.8 1.3 3.8 4.1v30c0 2.6-1 3.6-3.8 3.6h-2.2c-.3 0-.6.3-.6.6s.3.6.6.6H39c3.5 0 4.9-1.4 4.9-4.7v-30C44 3.8 42.3 2 39.1 2",className:"st0"})),Lc||(Lc=o.createElement("path",{d:"M36.7 24.9c-.3 0-.6.3-.6.6s.3.6.6.6c1.6 0 2.8-1.5 2.8-3.4 0-1.7-1.2-3.2-2.7-3.4-.3 0-.6.2-.6.5s.2.6.5.6c1 .1 1.8 1.2 1.8 2.3-.1 1.2-.9 2.2-1.8 2.2",className:"st0"})))},kc=[{title:"CBR",text:"Cloud Backup & Recovery",link:"/docs/tags/cbr",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",cc({xmlns:"http://www.w3.org/2000/svg",id:"\\u56FE\\u5C42_1","data-name":"\\u56FE\\u5C42 1",viewBox:"0 0 48 48","aria-labelledby":c},l),Jt||(Jt=o.createElement("defs",null,o.createElement("style",null,".cls-1{fill:#060001}"))),void 0===t?o.createElement("title",{id:c},"\u753b\u677f 1"):t?o.createElement("title",{id:c},t):null,ec||(ec=o.createElement("path",{d:"M31.5 19.1a10.59 10.59 0 0 0-20 0A10.44 10.44 0 0 0 2 29.5 10.58 10.58 0 0 0 12.6 40h17.7A10.61 10.61 0 0 0 41 29.5a10.44 10.44 0 0 0-9.5-10.4M30.4 38H12.6A8.58 8.58 0 0 1 4 29.5a8.46 8.46 0 0 1 7.7-8.4 2.1 2.1 0 0 0 1.7-1.3 8.75 8.75 0 0 1 16.4 0 2.1 2.1 0 0 0 1.7 1.3 8.54 8.54 0 0 1 7.7 8.4 8.89 8.89 0 0 1-8.8 8.5",className:"cls-1"})),tc||(tc=o.createElement("path",{d:"M36.4 15.1A11.06 11.06 0 0 0 26 8a10 10 0 0 0-2.5.3 12.1 12.1 0 0 0-4.7 2.3.62.62 0 0 0-.1.7.62.62 0 0 0 .7.1 9.64 9.64 0 0 1 4.3-2.1A8.5 8.5 0 0 1 26 9a10.17 10.17 0 0 1 9.6 6.7c.1.2.2.3.4.3a9.92 9.92 0 0 1 5.3 17.6.62.62 0 0 0-.1.7.52.52 0 0 0 .4.2.37.37 0 0 0 .3-.1 10.91 10.91 0 0 0 4.1-8.5 11.05 11.05 0 0 0-9.6-10.8",className:"cls-1"})))}},{title:"CSBS",text:"Cloud Server Backup Service",link:"/docs/tags/csbs",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",oc({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,lc||(lc=o.createElement("style",null,".st0{fill:#060001}")),ac||(ac=o.createElement("path",{d:"M31.5 19.1c-1.4-4.1-5.4-7.1-10-7.1s-8.6 3-10 7.1c-5.4.5-9.5 5-9.5 10.4C2 35.3 6.8 40 12.6 40h17.7C36.2 40 41 35.3 41 29.5c0-5.4-4.1-9.9-9.5-10.4M30.4 38H12.6C7.9 38 4 34.2 4 29.5c0-4.3 3.3-8 7.7-8.4.8-.1 1.4-.6 1.7-1.3 1.2-3.4 4.5-5.7 8.2-5.7s7 2.3 8.2 5.7c.3.7.9 1.2 1.7 1.3 4.4.5 7.7 4.1 7.7 8.4-.2 4.7-4.1 8.5-8.8 8.5",className:"st0"})),rc||(rc=o.createElement("path",{d:"M36.4 15.1C34.8 10.8 30.6 8 26 8c-.9 0-1.7.1-2.5.3-1.7.4-3.3 1.2-4.7 2.3-.2.2-.2.5-.1.7.2.2.5.2.7.1 1.2-1 2.7-1.8 4.3-2.1.7-.2 1.5-.3 2.3-.3 4.3 0 8.2 2.7 9.6 6.7.1.2.2.3.4.3 5.1.6 9 4.8 9 9.9 0 3-1.4 5.8-3.7 7.7-.2.2-.2.5-.1.7.1.1.2.2.4.2.1 0 .2 0 .3-.1 2.6-2.1 4.1-5.2 4.1-8.5 0-5.4-4.1-10-9.6-10.8",className:"st0"})),nc||(nc=o.createElement("circle",{cx:29,cy:29.5,r:1,className:"st0"})),sc||(sc=o.createElement("path",{d:"M24.4 29.1H13.5c-.3 0-.5.2-.5.5s.2.5.5.5h10.9c.3 0 .5-.2.5-.5s-.2-.5-.5-.5",className:"st0"})),ic||(ic=o.createElement("path",{d:"M29.5 25h-16C11 25 9 27 9 29.5s2 4.5 4.5 4.5h16c2.5 0 4.5-2 4.5-4.5S32 25 29.5 25m0 8h-16c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5h16c1.9 0 3.5 1.6 3.5 3.5S31.4 33 29.5 33",className:"st0"})))}},{title:"EVS",text:"Elastic Volume Service",link:"/docs/tags/evs",icon:e=>{let{title:t,titleId:c,...l}=e;return o.createElement("svg",uc({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},l),t?o.createElement("title",{id:c},t):null,vc||(vc=o.createElement("style",null,".st0{fill:#060001}")),hc||(hc=o.createElement("circle",{cx:14,cy:8,r:1.5,className:"st0"})),dc||(dc=o.createElement("circle",{cx:34.8,cy:8,r:1.5,className:"st0"})),mc||(mc=o.createElement("path",{d:"M28.4 21.1C27.7 19.3 26 18 24 18s-3.7 1.3-4.4 3.1c-2.3.3-4.1 2.2-4.1 4.6 0 2.6 2.1 4.6 4.6 4.6h7.7c2.6 0 4.6-2.1 4.6-4.6.1-2.4-1.7-4.3-4-4.6m-.5 8.3h-7.7c-2 0-3.6-1.6-3.6-3.6 0-1.9 1.4-3.4 3.2-3.6.4 0 .7-.3.8-.7.5-1.5 1.9-2.5 3.4-2.5s2.9 1 3.4 2.4c.1.4.5.6.8.7 1.8.2 3.2 1.8 3.2 3.6.1 2-1.5 3.7-3.5 3.7",className:"st0"})),pc||(pc=o.createElement("path",{d:"M34 2H14c-3.3 0-6 2.7-6 6v32c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6V8c0-3.3-2.7-6-6-6m4 38c0 2.2-1.8 4-4 4H14c-2.2 0-4-1.8-4-4V8c0-2.2 1.8-4 4-4h20c2.2 0 4 1.8 4 4z",className:"st0"})))}},{title:"OBS",text:"Object Storage Service",link:"/docs/tags/obs",icon:c(8755).A},{title:"SDRS",text:"Storage Disaster Recovery Service",link:"/docs/tags/sdrs",icon:fc},{title:"SFS",text:"Scalable File Service",link:"/docs/tags/sfs",icon:Ec},{title:"VBS",text:"Volume Backup Service",link:"/docs/tags/vbs",icon:Hc}];function Nc(){return(0,n.jsx)("div",{children:(0,n.jsx)(i.A,{callouts:kc})})}var Bc=c(34164);c(51107);var qc=c(11470),Ic=c(19365);const Pc={id:"best-practices",title:"Best Practices"},Dc="Best Practices",Tc={id:"best-practices/best-practices",title:"Best Practices",description:"Welcome to the Open Telekom Cloud Architecture Center Best Practices.",source:"@site/docs/best-practices/index.mdx",sourceDirName:"best-practices",slug:"/best-practices/",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/index.mdx",tags:[],version:"current",frontMatter:{id:"best-practices",title:"Best Practices"},sidebar:"bestPracticesSidebar",next:{title:"Selectively Exposing CCE Workloads with a Dedicated Gateway",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/application-services/api-gateway/selectively-exposing-cce-workloads-with-a-dedicated-gateway"}},_c={},Rc=[];function Fc(e){const t={h1:"h1",p:"p",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsx)(t.p,{children:"Welcome to the Open Telekom Cloud Architecture Center Best Practices.\nHere we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that\nenhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as\nefficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance\nto ensure robust system performance. This section serves as a valuable resource for architects and developers\nto implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud\ninfrastructure."}),"\n",(0,n.jsxs)(qc.A,{children:[(0,n.jsx)(Ic.A,{value:"iaas",label:"IaaS",default:!0,children:(0,n.jsx)("section",{className:"container",style:{paddingTop:"20px",paddingBottom:"45px"},children:(0,n.jsx)("div",{className:(0,Bc.A)("row row--no-gutters"),children:(0,n.jsxs)("div",{className:"col col--12","aria-hidden":"true",style:{paddingTop:"20px"},children:[(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Computing"}),(0,n.jsx)(se,{}),(0,n.jsx)("scale-divider",{}),(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Networking"}),(0,n.jsx)(Dt,{}),(0,n.jsx)("scale-divider",{}),(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Storage"}),(0,n.jsx)(Nc,{})]})})})}),(0,n.jsx)(Ic.A,{value:"paas",label:"PaaS",children:(0,n.jsx)("section",{className:"container",style:{paddingTop:"20px",paddingBottom:"45px"},children:(0,n.jsx)("div",{className:(0,Bc.A)("row row--no-gutters"),children:(0,n.jsxs)("div",{className:"col col--12","aria-hidden":"true",style:{paddingTop:"20px"},children:[(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Application Services"}),(0,n.jsx)(E,{}),(0,n.jsx)("scale-divider",{}),(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Big Data & Data Analysis"}),(0,n.jsx)(F,{}),(0,n.jsx)("scale-divider",{}),(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Database Services"}),(0,n.jsx)(Fe,{}),(0,n.jsx)("scale-divider",{}),(0,n.jsx)("scale-tag",{style:{marginLeft:"20px",marginBottom:"20px"},children:"Container Services"}),(0,n.jsx)(me,{})]})})})}),(0,n.jsx)(Ic.A,{value:"security",label:"Security",children:(0,n.jsx)("section",{className:"container",style:{paddingTop:"20px",paddingBottom:"45px"},children:(0,n.jsx)("div",{className:(0,Bc.A)("row row--no-gutters"),children:(0,n.jsx)("div",{className:"col col--12","aria-hidden":"true",style:{paddingTop:"20px"},children:(0,n.jsx)(Yt,{})})})})}),(0,n.jsx)(Ic.A,{value:"management",label:"Management",children:(0,n.jsx)("section",{className:"container",style:{paddingTop:"20px",paddingBottom:"45px"},children:(0,n.jsx)("div",{className:(0,Bc.A)("row row--no-gutters"),children:(0,n.jsx)("div",{className:"col col--12","aria-hidden":"true",style:{paddingTop:"20px"},children:(0,n.jsx)(ot,{})})})})})]})]})}function Zc(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(Fc,{...e})}):Fc(e)}},84706:(e,t,c)=>{c.d(t,{A:()=>n});var l,a=c(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},n),t?a.createElement("title",{id:c},t):null,l||(l=a.createElement("path",{d:"M39.7 22.1 26.1 8.4q-.9-.9-2.1-.9c-1.2 0-1.5.3-2.1.9L8.3 22.1c-1 1-1 2.7 0 3.7l13.9 14c.5.5 1.2.8 1.8.8s1.3-.3 1.8-.8l13.9-14c1.1-1.1 1.1-2.7 0-3.7m-1 2.7-13.9 14c-.2.2-.5.3-.8.3s-.6-.1-.8-.3l-13.9-14c-.5-.5-.5-1.2 0-1.7L22.9 9.4c.3-.3.7-.5 1.1-.5s.8.2 1.1.5l13.6 13.7c.5.4.5 1.2 0 1.7M3 17c.6 0 1-.4 1-1V6.9C4 5.3 5.3 4 6.9 4H16c.6 0 1-.4 1-1s-.4-1-1-1H6.9C4.2 2 2 4.2 2 6.9V16c0 .6.4 1 1 1M41.1 2H32c-.6 0-1 .4-1 1s.4 1 1 1h9.1C42.7 4 44 5.3 44 6.9V16c0 .6.4 1 1 1s1-.4 1-1V6.9C46 4.2 43.8 2 41.1 2M45 31c-.6 0-1 .4-1 1v9.1c0 1.6-1.3 2.9-2.9 2.9H32c-.6 0-1 .4-1 1s.4 1 1 1h9.1c2.7 0 4.9-2.2 4.9-4.9V32c0-.6-.4-1-1-1M16 44H6.9C5.3 44 4 42.7 4 41.1V32c0-.6-.4-1-1-1s-1 .4-1 1v9.1C2 43.8 4.2 46 6.9 46H16c.6 0 1-.4 1-1s-.4-1-1-1"})))}},60405:(e,t,c)=>{c.d(t,{A:()=>h});var l,a,r,n,s,i,o=c(96540);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...h}=e;return o.createElement("svg",v({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},h),t?o.createElement("title",{id:c},t):null,l||(l=o.createElement("style",null,".st1{fill:#040000}")),a||(a=o.createElement("circle",{cx:22,cy:26,r:2,className:"st1"})),r||(r=o.createElement("circle",{cx:14,cy:26,r:2,className:"st1"})),n||(n=o.createElement("circle",{cx:30,cy:26,r:2,className:"st1"})),s||(s=o.createElement("path",{d:"M43.2 8H9.8C8.2 8 7 9.2 7 10.8v.2h1v-.2C8 9.8 8.8 9 9.8 9h33.5c1 0 1.8.8 1.8 1.8v21.5c0 1-.8 1.8-1.8 1.8H43v1h.2c1.5 0 2.8-1.2 2.8-2.8V10.8C46 9.2 44.8 8 43.2 8",className:"st1"})),i||(i=o.createElement("path",{d:"M39 12H5c-1.7 0-3 1.3-3 3v22c0 1.7 1.3 3 3 3h34c1.7 0 3-1.3 3-3V15c0-1.7-1.3-3-3-3m1 25c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V15c0-.6.4-1 1-1h34c.6 0 1 .4 1 1z",className:"st1"})))}},46622:(e,t,c)=>{c.d(t,{A:()=>o});var l,a,r,n,s=c(96540);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...o}=e;return s.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},o),t?s.createElement("title",{id:c},t):null,l||(l=s.createElement("style",null,".st0{fill:#060001}")),a||(a=s.createElement("circle",{cx:31.5,cy:26.5,r:1.5,className:"st0"})),r||(r=s.createElement("path",{d:"M33.8 34H13.4c-.3 0-.5.2-.5.5s.2.5.5.5h20.5c.3 0 .5-.2.5-.5s-.3-.5-.6-.5M31.5 22h-15C14 22 12 24 12 26.5s2 4.5 4.5 4.5h15c2.5 0 4.5-2 4.5-4.5S34 22 31.5 22m0 8h-15c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5h15c1.9 0 3.5 1.6 3.5 3.5S33.4 30 31.5 30",className:"st0"})),n||(n=s.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7s8 2.7 9.4 6.7c.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10",className:"st0"})))}},61706:(e,t,c)=>{c.d(t,{A:()=>n});var l,a=c(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},n),t?a.createElement("title",{id:c},t):null,l||(l=a.createElement("path",{d:"M43 30.4c-.3 0-.5 0-.8.1L26.7 7.7c.5-.6.9-1.4.9-2.3C27.6 3.6 26 2 24 2s-3.6 1.6-3.6 3.5c0 .9.4 1.7.9 2.3L5.8 30.5c-.3-.1-.5-.1-.8-.1-1.6 0-3 1.3-3 2.9s1.3 2.9 3 2.9q.6 0 1.2-.3l14.3 6.8c.1 1.8 1.6 3.3 3.5 3.3s3.5-1.5 3.6-3.3l14.3-6.8c.4.2.8.2 1.2.2 1.6 0 3-1.3 3-2.9-.1-1.5-1.4-2.8-3.1-2.8m-2.9 2.9c0 .3.1.6.1.9l-13.4 6.3c-.4-.5-1-1-1.7-1.2V8.7l.6-.3L41.2 31c-.7.5-1.1 1.3-1.1 2.3M22.3 8.5c.2.1.3.2.5.2v30.5c-.7.2-1.2.7-1.7 1.2L7.8 34.1c.1-.3.1-.5.1-.8 0-.9-.4-1.7-1.1-2.2zM3.2 33.3c0-1 .8-1.7 1.8-1.7s1.8.8 1.8 1.7S6 35 5 35s-1.8-.8-1.8-1.7M24 44.8c-1.3 0-2.4-1-2.4-2.3s1.1-2.3 2.4-2.3 2.4 1 2.4 2.3-1.1 2.3-2.4 2.3M43 35c-1 0-1.8-.8-1.8-1.7 0-1 .8-1.7 1.8-1.7s1.8.8 1.8 1.7S44 35 43 35"})))}},46774:(e,t,c)=>{c.d(t,{A:()=>i});var l,a,r,n=c(96540);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...i}=e;return n.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":c},i),t?n.createElement("title",{id:c},t):null,l||(l=n.createElement("style",null,".st1{fill:#040000}")),a||(a=n.createElement("path",{d:"M39.5 18h-14c-.3 0-.5.2-.5.5s.2.5.5.5h14c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M39.5 23h-14c-.3 0-.5.2-.5.5s.2.5.5.5h14c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M39.5 28h-14c-.3 0-.5.2-.5.5s.2.5.5.5h14c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M19.2 27.7c-.4-.1-1-.3-1.2-.4v-.5a4.6 4.6 0 0 0 1.7-3.6v-3.4c0-2.6-2.1-4.7-4.7-4.7s-4.7 2.1-4.7 4.7v3.4c0 1.4.6 2.7 1.7 3.6v.5c-.2.1-.8.3-1.2.4-1.5.4-3.8 1.1-3.8 3.1v1.7c0 .3.2.5.5.5h15c.3 0 .5-.2.5-.5v-1.7c0-2-2.3-2.7-3.8-3.1M22 32H8v-1.2c0-1.2 1.8-1.8 3.1-2.2 1.1-.3 1.9-.6 1.9-1.2v-.9c0-.2-.1-.3-.2-.4-.9-.7-1.5-1.8-1.5-3v-3.4c0-2.1 1.7-3.8 3.7-3.8s3.7 1.7 3.7 3.8v3.4c0 1.2-.5 2.3-1.5 3-.1.1-.2.2-.2.4v.9c0 .7.8.9 1.9 1.2 1.3.4 3.1.9 3.1 2.2z",className:"st1"})),r||(r=n.createElement("path",{d:"M43 8H5c-1.7 0-3 1.3-3 3v26c0 1.6 1.4 3 3 3h38c1.7 0 3-1.3 3-3V11c0-1.7-1.4-3-3-3m1 29c0 .5-.5 1-1 1H5c-.6 0-1-.4-1-1V11c0-.5.5-1 1-1h38c.6 0 1 .4 1 1z",className:"st1"})))}},8755:(e,t,c)=>{c.d(t,{A:()=>n});var l,a=c(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},n),t?a.createElement("title",{id:c},t):null,l||(l=a.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M20.5 30v-.5H15c-.4 0-.5-.1-.5-.1s0-.2.3-.5l8.2-8.2c.3-.3.6-.5 1.1-.4.4 0 .8.2 1 .4l8 8.1c.3.3.3.4.3.5 0 0-.2.1-.5.1h-5.2V38h-7v-8zM34 38h-5.5v-7.5h4.2c1 0 1.3-.5 1.5-.7.1-.3.2-.8-.5-1.6l-8-8.1c-.5-.5-1.1-.7-1.8-.7s-1.3.3-1.8.7l-8.2 8.2c-.7.7-.6 1.3-.5 1.5.1.3.5.7 1.5.7h4.5V38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7s8 2.7 9.4 6.7c.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10"})))}},86732:(e,t,c)=>{c.d(t,{A:()=>r});var l=c(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...r}=e;return l.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},r),t?l.createElement("title",{id:c},t):null,l.createElement("path",{d:"m43.4 24.8-7.8-4.5v-9.5c0-1.7-1.1-3.7-2.6-4.5l-6.4-3.7c-1.5-.8-3.7-.8-5.2 0L15 6.3c-1.5.8-2.6 2.8-2.6 4.5v9.5l-7.8 4.5c-1.5.8-2.6 2.8-2.6 4.5v7.9c0 1.7 1.1 3.7 2.6 4.5l6.4 3.7c.7.4 1.7.6 2.6.6s1.8-.2 2.6-.6l7.8-4.5 7.9 4.5c.7.4 1.7.6 2.6.6s1.8-.2 2.6-.6l6.4-3.7c1.5-.8 2.6-2.8 2.6-4.5v-7.9c-.1-1.7-1.2-3.6-2.7-4.5M16.2 8.3l6.4-3.7c.8-.4 2.1-.4 2.9 0l6.4 3.7c.7.4 1.4 1.6 1.4 2.5v10.1l-7.6 4.3h-.1c-.4-.4-1-.7-1.6-.7s-1.2.3-1.7.7h-.1l-7.5-4.3V10.8c0-.9.7-2 1.5-2.5m-1.2 35c-.8.4-2.1.4-2.9 0l-6.4-3.7c-.7-.4-1.4-1.6-1.4-2.4v-7.9c0-.9.7-2 1.4-2.5l8.4-4.8-.1-.1 7.6 4.4h.1c-.1.2-.1.4-.1.6 0 1.1.7 2 1.7 2.3v9.4zm28.7-6.1c0 .9-.7 2-1.4 2.5l-6.4 3.7c-.8.4-2.1.4-2.9 0l-8.4-4.8v-9.4c1-.3 1.7-1.2 1.7-2.2 0-.2 0-.4-.1-.6h.1l7.6-4.4h-.1l8.4 4.8c.7.4 1.4 1.6 1.4 2.5v7.9z",style:{fill:"#060001"}}))}},50060:(e,t,c)=>{c.d(t,{A:()=>r});var l=c(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...r}=e;return l.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},r),t?l.createElement("title",{id:c},t):null,l.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9m-11.8 3.8c0 .2.1.4.2.6l-6.6 7c-.1-.1-.3-.1-.5-.1l-2.5-9.8zM34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.1 0 .3-.1.4-.1l2.4 9.5c-.4.3-.7.7-.7 1.2 0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5c0-.2-.1-.5-.2-.7l6.6-7c.2.1.4.1.6.1.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5c-.5 0-1 .3-1.2.7l-9.1-2.4c1.5-3.9 5.2-6.5 9.4-6.5 4.3 0 8 2.7 9.4 6.7.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9C44 33.5 39.5 38 34 38",style:{fill:"#040000"}}))}},12692:(e,t,c)=>{c.d(t,{A:()=>r});var l=c(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...r}=e;return l.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},r),t?l.createElement("title",{id:c},t):null,l.createElement("path",{d:"M38.9 17.8c-.2-.2-.5-.2-.7-.1l-5 4.1c-.5-.4-1.2-.7-1.9-.7s-1.4.3-1.9.7l-2.4-2c.3-.5.5-1.1.5-1.7s-.2-1.2-.5-1.7l4.6-3.8c.2-.2.2-.5.1-.7-.2-.2-.5-.2-.7-.1l-4.6 3.8c-.6-.6-1.4-.9-2.3-.9s-1.7.4-2.3.9L17 11.9c-.2-.2-.5-.1-.7.1s-.1.5.1.7l4.6 3.8c-.3.5-.5 1.1-.5 1.7s.2 1.2.5 1.7l-2.4 2c-.5-.4-1.2-.7-1.9-.7s-1.4.3-1.9.7l-5-4.1c-.2-.2-.5-.1-.7.1s-.1.5.1.7l5 4.1c-.2.3-.4.8-.4 1.3s.1 1 .4 1.4l-5 4.1c-.2.2-.2.5-.1.7.1.1.2.2.4.2.1 0 .2 0 .3-.1l5-4.1c.5.4 1.2.7 1.9.7s1.4-.3 1.9-.7l2.4 2c-.3.5-.5 1.1-.5 1.7s.2 1.2.5 1.7l-4.6 3.8c-.2.2-.2.5-.1.7.1.1.2.2.4.2.1 0 .2 0 .3-.1l4.6-3.8c.6.5 1.4.9 2.3.9s1.7-.4 2.3-.9l4.6 3.8c.1.1.2.1.3.1s.3-.1.4-.2c.2-.2.1-.5-.1-.7l-4.6-3.8c.3-.5.5-1.1.5-1.7s-.2-1.2-.5-1.7l2.4-2c.5.4 1.2.7 1.9.7s1.4-.3 1.9-.7l5 4.1c.1.1.2.1.3.1.2 0 .3-.1.4-.2.2-.2.1-.5-.1-.7l-5-4.1c.2-.4.4-.9.4-1.4s-.1-1-.4-1.4l5-4.1c.4-.2.4-.5.3-.7M24 26.5c-.9 0-1.7.4-2.3.9l-2.4-2c.2-.4.4-.9.4-1.4s-.1-1-.4-1.4l2.4-2c.6.5 1.4.9 2.3.9s1.7-.4 2.3-.9l2.4 2c-.2.4-.4.9-.4 1.4s.1 1 .4 1.4l-2.4 2c-.6-.6-1.4-.9-2.3-.9m0-9.8c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4-1.4-.6-1.4-1.4.6-1.4 1.4-1.4m-7.2 9.2c-1.1 0-1.9-.9-1.9-1.9s.9-1.9 1.9-1.9 1.9.9 1.9 1.9-.9 1.9-1.9 1.9m7.2 5.4c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4 1.4.6 1.4 1.4-.6 1.4-1.4 1.4m7.2-5.4c-1 0-1.9-.9-1.9-1.9s.9-1.9 1.9-1.9 1.9.9 1.9 1.9-.8 1.9-1.9 1.9M41.6 11 26.4 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.5 2.4.5s1.7-.2 2.4-.5L41.6 37c1.3-.7 2.4-2.5 2.4-4V15c0-1.5-1-3.2-2.4-4m.3 22c0 .8-.6 1.8-1.3 2.2l-15.3 8.5c-.6.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2V15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2z",style:{fill:"#000",fillOpacity:1}}))}},17909:(e,t,c)=>{c.d(t,{A:()=>r});var l=c(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...r}=e;return l.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:2},viewBox:"0 0 121 93","aria-labelledby":c},r),t?l.createElement("title",{id:c},t):null,l.createElement("path",{d:"M-10.8-24.72h141.732v141.732H-10.8z",style:{fill:"none"}}),l.createElement("path",{d:"M107.286 33.746c2.904 2.658 5.335 5.853 7.064 9.447 4.652 9.67 3.938 21.724-2.024 30.838-5.687 8.693-15.852 14.238-26.278 14.288q-25.981.04-51.964 0c-10.442-.05-20.629-5.597-26.329-14.367C1.944 65.01 1.072 53.019 5.766 43.23c4.578-9.55 14.105-16.477 24.844-17.709C33.548 16.363 41.015 8.652 50.335 5.54a31.1 31.1 0 0 1 9.893-1.587c10.102.039 20.019 5.292 25.709 13.803a31 31 0 0 1 2.176 3.818l-3.901 3.905c-3.801-9.515-13.59-16.4-24.133-16.387-10.72.041-21.111 7.292-24.554 17.932 0 0-.199.586-.409.968a5.18 5.18 0 0 1-2.962 2.431c-.742.234-1.509.261-2.265.385C18.903 32.61 9.542 41.918 8.048 53.381c-1.232 9.456 3.067 19.443 11.017 25.027 4.363 3.064 9.676 4.746 15.036 4.771q25.966.04 51.931 0c10.28-.048 20.236-6.568 24.266-16.255 3.381-8.126 2.377-17.97-2.824-25.312a26.2 26.2 0 0 0-3.786-4.264z",style:{fill:"#454545"}}),l.createElement("path",{d:"M34.06 58.309h-2.57v-7.327c.016-2.571 2.202-4.926 4.919-4.977q15.785-.097 31.569-.07l-.778 2.568q-15.38-.023-30.759.071c-1.254.024-2.373 1.117-2.381 2.416zm56.733-8.052q.051.33.053.67v7.318h-2.569c0-1.825.008-3.65.006-5.475z",style:{fill:"#454545"}}),l.createElement("path",{d:"M59.933 39.181h2.57v8.108h-2.57z",style:{fill:"#454545"}}),l.createElement("path",{d:"M59.935 50.897h2.57v3.433h-2.57z",style:{fill:"#e20074"}}),l.createElement("path",{d:"M36.221 56.743c3.018.058 5.7 2.576 5.855 5.636.124 2.444.008 4.848.008 7.271-.019 3.004-2.502 5.765-5.636 5.924-2.369.12-4.701.008-7.051.008-2.982-.019-5.764-2.5-5.923-5.636-.124-2.444-.008-4.849-.008-7.272.019-3.003 2.5-5.764 5.636-5.923 2.369-.121 4.746-.023 7.119-.008m-6.816 2.569c-1.75.012-3.335 1.511-3.369 3.327-.015 2.334 0 4.669 0 7.003.011 1.751 1.51 3.335 3.326 3.37 2.261.014 4.522 0 6.783 0 1.75-.011 3.334-1.51 3.369-3.326.015-2.335 0-4.669 0-7.004-.011-1.75-1.51-3.335-3.326-3.369-2.261-.015-4.522-.001-6.783-.001M64.664 21.985c3.004.057 5.7 2.566 5.856 5.635.123 2.441.007 4.849.007 7.272-.019 2.998-2.503 5.765-5.636 5.924-2.367.12-4.701.007-7.051.007-2.999-.019-5.764-2.503-5.923-5.636-.124-2.44-.008-4.848-.008-7.272.019-3.004 2.501-5.764 5.636-5.923 2.368-.12 4.746-.022 7.119-.007m-6.815 2.569c-1.751.011-3.335 1.51-3.37 3.326-.015 2.335 0 4.669 0 7.004.011 1.75 1.51 3.335 3.326 3.369 2.261.015 4.522.001 6.783.001 1.75-.011 3.335-1.511 3.369-3.327.015-2.334.001-4.669.001-7.003-.012-1.75-1.511-3.335-3.327-3.37-2.261-.014-4.521 0-6.782 0M93.007 56.743c3.002.058 5.7 2.567 5.856 5.636.124 2.447.007 4.848.007 7.272-.019 2.997-2.501 5.764-5.635 5.923-2.369.12-4.702.008-7.051.008-2.982-.019-5.765-2.503-5.924-5.636-.124-2.44-.007-4.849-.007-7.272.019-3.005 2.5-5.764 5.635-5.923 2.369-.121 4.746-.023 7.119-.008m-6.815 2.569c-1.75.012-3.335 1.511-3.37 3.327-.014 2.334 0 4.669 0 7.003.011 1.751 1.51 3.335 3.326 3.37 2.261.014 4.522 0 6.783 0 1.75-.011 3.335-1.51 3.37-3.326.014-2.335 0-4.669 0-7.004-.011-1.75-1.51-3.335-3.326-3.369-2.261-.015-4.522-.001-6.783-.001",style:{fill:"#454545"}}),l.createElement("path",{d:"m62.424 73.015 1.076 2.606c-1.528.027-3.045-.015-4.565-.032L60 73.018zm5.405-2.491 2.371.983c-.59 1.676-1.927 3.084-3.621 3.717l-.984-2.384a3.54 3.54 0 0 0 2.234-2.316m-13.217.006a3.54 3.54 0 0 0 2.217 2.309l-.98 2.366c-1.653-.626-3.028-1.982-3.623-3.684zm-2.711-6.606 2.572 1.066q0 1.175.003 2.35l-2.608 1.084c-.025-1.506.015-3.002.033-4.5m18.668-.023c.024 1.506-.015 3.001-.033 4.5l-2.572-1.066-.003-2.351zm-14.712-6.8.984 2.383a3.54 3.54 0 0 0-2.233 2.317l-2.371-.983c.589-1.676 1.926-3.085 3.62-3.717m10.731.019c1.662.63 3.027 1.998 3.62 3.685l-2.384.99a3.54 3.54 0 0 0-2.216-2.31zm-7.652-.417c1.522-.03 3.045.006 4.568.028l-1.067 2.575q-1.213 0-2.425.004zM75.192 40.615c.471.056.93.207 1.309.483.146.105.175.14.307.262l7.177 7.177c.837.905.981 2.336.263 3.326-.266.367-.299.35-.414.449a2.5 2.5 0 0 1-.301.224 3 3 0 0 1-.685.306l-10.042 2.819c-.174.042-.217.058-.396.078-1.525.179-3.043-1.271-2.849-2.863.022-.179.038-.222.081-.396l2.86-9.992c.135-.414.354-.787.653-1.109 0 0 1.116-.8 2.037-.764m.909 11.448 6.067-1.709-7.177-7.177-.018.018-1.723 6.017zm30.555-42.559a3.98 3.98 0 0 1 2.673 1.106c1.831 1.808 3.642 3.637 5.462 5.456 1.363 1.378 1.419 3.826.007 5.257L89.487 46.872c-.907.845-2.342.992-3.335.271-.146-.106-.176-.141-.308-.262l-7.177-7.178c-.837-.905-.981-2.328-.268-3.318.104-.145.139-.175.259-.307l25.196-25.432a3.96 3.96 0 0 1 2.802-1.142m-.064 2.57a1.36 1.36 0 0 0-.922.389L80.484 37.886l7.177 7.178c8.443-8.523 17.011-16.924 25.33-25.568.402-.429.408-1.163-.001-1.597a208 208 0 0 0-5.466-5.46 1.36 1.36 0 0 0-.932-.365",style:{fill:"#e20074"}}))}},27366:(e,t,c)=>{c.d(t,{A:()=>n});var l,a=c(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},n),t?a.createElement("title",{id:c},t):null,l||(l=a.createElement("path",{d:"M42 21.1c-.6 0-1 .4-1 1v10c0 1.5-1.2 3.4-2.6 4.2l-12.8 7.1c-1.4.8-3.8.8-5.2 0L7.6 36.3C6.2 35.5 5 33.6 5 32.1V17.9c0-1.5 1.2-3.4 2.6-4.2l12.8-7.1c1.4-.8 3.8-.8 5.2 0 .5.3 1.1.1 1.4-.4s.1-1.1-.4-1.4c-2-1.1-5.2-1.1-7.2 0L6.6 11.9C4.5 13 3 15.6 3 17.9v14.2c0 2.3 1.5 4.8 3.6 6l12.8 7.1c1 .6 2.3.8 3.6.8s2.6-.3 3.6-.8l12.8-7.1c2.1-1.1 3.6-3.7 3.6-6v-10c0-.5-.4-1-1-1m2.9-10.5-2-2c-.2-.2-.5-.2-.7 0l-2 2c-.2.2-.2.5 0 .7l2 2c.1.1.2.1.4.1s.3 0 .4-.1l2-2c0-.1 0-.5-.1-.7m-14.4 3.6c.1.1.2.1.4.1s.3-.1.4-.1l1.1-1.1 2.1 2.1-1.2 1.2c-.2.2-.2.5 0 .7l1.1 1.1-2.9 1.6-8.3-4.7c-.2-.1-.3-.1-.5 0l-8.5 4.8c-.2.1-.3.3-.3.4v9.5c0 .2.1.3.3.4l8.5 4.8c.1 0 .2.1.2.1s.2 0 .2-.1l8.5-4.8c.2-.1.3-.3.3-.4v-9.2l3.1-1.7 1 1c.1.1.2.1.4.1s.3 0 .4-.1l2.8-2.8c.2-.2.2-.5 0-.7l-2.8-2.8c-.2-.2-.5-.2-.7 0l-.9.9-2.2-2.1 1.1-1.1c.1-.1.1-.2.1-.4 0-.1-.1-.3-.1-.4l-1-1 2-2 1.1 1.1c.1.1.2.1.4.1s.3-.1.4-.1l2.8-2.8c.2-.2.2-.5 0-.7L37 2.3c-.2-.2-.5-.2-.7 0l-3 2.7c-.2.2-.2.5 0 .7l1.1 1.1-2 2-1.1-1.1c-.2-.2-.5-.2-.7 0l-2.8 2.8c-.2.2-.2.5 0 .7zm-8 19.4L15 29.5v-8.3l7.5 4.2zm.5-9.2-7.5-4.2L23 16l7.5 4.2zm8 5.1-7.5 4.2v-8.3l7.5-4.2zm5.5-14.9 2.1 2.1-2.1 2.1-2.1-2.1zm0-11.4 2.1 2.1-2.1 2.1L35.1 6l-.7-.7zm-5.7 5.7L33 11l-2.1 2.1-2.2-2.1z"})))}},28426:(e,t,c)=>{c.d(t,{A:()=>r});var l=c(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...r}=e;return l.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":c},r),t?l.createElement("title",{id:c},t):null,l.createElement("path",{d:"M34.2 23H23.8c-2.4 0-4.3 2-4.3 4.5 0 .3.2.5.5.5s.5-.2.5-.5c0-1.9 1.5-3.5 3.3-3.5h10.4c1.8 0 3.3 1.6 3.3 3.5S36 31 34.2 31h-4.7c-.3 0-.5.2-.5.5s.2.5.5.5h4.7c2.4 0 4.3-2 4.3-4.5S36.6 23 34.2 23M28 27c-.3 0-.5.2-.5.5 0 1.9-1.5 3.5-3.3 3.5H13.8c-1.8 0-3.3-1.6-3.3-3.5S12 24 13.8 24h4.7c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-4.7c-2.4 0-4.3 2-4.3 4.5s1.9 4.5 4.3 4.5h10.4c2.4 0 4.3-2 4.3-4.5 0-.3-.2-.5-.5-.5m7.3-10.9C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7 4.3 0 8 2.7 9.4 6.7.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10",style:{fill:"#040000"}}))}},58657:(e,t,c)=>{c.d(t,{A:()=>n});var l,a=c(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},n),t?a.createElement("title",{id:c},t):null,l||(l=a.createElement("path",{d:"M17.5 19h1c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5s.2.5.5.5m0 4h1c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5s.2.5.5.5m4-4h9c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-9c-.3 0-.5.2-.5.5s.2.5.5.5m-2 11h-3.4c-.6 0-1.1-.5-1.1-1.1v-3.4c0-.3-.2-.5-.5-.5s-.5.2-.5.5v3.4c0 1.2.9 2.1 2.1 2.1h3.4c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M31 22.5c0-.3-.2-.5-.5-.5h-9c-.3 0-.5.2-.5.5s.2.5.5.5h9c.3 0 .5-.2.5-.5M19.5 10h-3.4c-1.2 0-2.1.9-2.1 2.1v3.4c0 .3.2.5.5.5s.5-.2.5-.5v-3.4c0-.6.5-1.1 1.1-1.1h3.4c.3 0 .5-.2.5-.5s-.2-.5-.5-.5m12.4 0h-3.4c-.3 0-.5.2-.5.5s.2.5.5.5h3.4c.6 0 1.1.5 1.1 1.1v3.4c0 .3.2.5.5.5s.5-.2.5-.5v-3.4c0-1.2-.9-2.1-2.1-2.1M38 2H10C7.8 2 6 3.8 6 6v28l12 12h20c2.2 0 4-1.8 4-4V6c0-2.2-1.8-4-4-4M18 43.2l-4.6-4.6L8.8 34h6.7c1.4 0 2.5 1.1 2.5 2.5zM40 42c0 1.1-.9 2-2 2H19v-7.5c0-1.9-1.6-3.5-3.5-3.5H8V6c0-1.1.9-2 2-2h28c1.1 0 2 .9 2 2zm-6.5-17c-.3 0-.5.2-.5.5v3.4c0 .6-.5 1.1-1.1 1.1h-3.4c-.3 0-.5.2-.5.5s.2.5.5.5h3.4c1.2 0 2.1-.9 2.1-2.1v-3.4c0-.3-.2-.5-.5-.5"})))}},9967:(e,t,c)=>{c.d(t,{A:()=>s});var l,a,r=c(96540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...s}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg","data-name":"rms 1",viewBox:"0 0 44 44","aria-labelledby":c},s),t?r.createElement("title",{id:c},t):null,l||(l=r.createElement("path",{d:"m39.5 13.41-14-8a3 3 0 0 0-3 0l-14 8A3 3 0 0 0 7 16v16a3 3 0 0 0 1.5 2.59l14 8a3 3 0 0 0 3 0l14-8A3 3 0 0 0 41 32V16a3 3 0 0 0-1.5-2.59m-1 19.45L25 40.58V28.5a1 1 0 0 0-2 0v12.08L9.5 32.86A1 1 0 0 1 9 32V16.78l10.58 5.85a1 1 0 0 0 1-1.75L9.83 15l13.68-7.87a1 1 0 0 1 1 0L38.22 15l-10.64 5.9a1 1 0 0 0 1 1.75L39 16.84V32a1 1 0 0 1-.5.86"})),a||(a=r.createElement("path",{d:"M32.5 26a3 3 0 0 0-2.2 1l-5.76-3.4v-6.67a3 3 0 1 0-1 0v6.67l-5.68 3.59A3 3 0 1 0 18.5 29a3 3 0 0 0-.16-.94l5.66-3.6 5.7 3.37a3 3 0 0 0-.2 1.17 3 3 0 1 0 3-3m-17 5a2 2 0 1 1 2-2 2 2 0 0 1-2 2M24 16a2 2 0 1 1 2-2 2 2 0 0 1-2 2m8.5 15a2 2 0 1 1 2-2 2 2 0 0 1-2 2"})))}},72489:(e,t,c)=>{c.d(t,{A:()=>n});var l,a=c(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":c},n),t?a.createElement("title",{id:c},t):null,l||(l=a.createElement("path",{d:"M43 29c-.6 0-1 .4-1 1v1.5c0 1.6-1.2 3.7-2.6 4.5l-12.8 7.4c-1.4.8-3.8.8-5.2 0L8.6 35.9C7.2 35.1 6 33.1 6 31.5v-3.7c1.2-.4 2-1.5 2-2.8 0-1.7-1.3-3-3-3s-3 1.3-3 3c0 1.3.9 2.4 2 2.8v3.7c0 2.4 1.5 5 3.6 6.2l12.8 7.4c1 .6 2.3.9 3.6.9s2.6-.3 3.6-.9l12.8-7.4c2-1.2 3.6-3.9 3.6-6.2V30c0-.6-.4-1-1-1M3 25c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2m41-4.8v-3.7c0-2.4-1.5-5-3.6-6.2L27.6 2.9c-2.1-1.2-5.1-1.2-7.2 0L7.6 10.3c-2 1.2-3.6 3.9-3.6 6.2V18c0 .6.4 1 1 1s1-.4 1-1v-1.5c0-1.6 1.2-3.7 2.6-4.5l12.8-7.4c1.4-.8 3.8-.8 5.2 0L39.4 12c1.4.8 2.6 2.8 2.6 4.5v3.7c-1.2.4-2 1.5-2 2.8 0 1.7 1.3 3 3 3s3-1.3 3-3c0-1.3-.9-2.4-2-2.8M43 25c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M31.5 15h-5c-.3 0-.5.2-.5.5V20h-9.5c-.3 0-.5.2-.5.5V25h-4.5c-.3 0-.5.2-.5.5v5c0 .3.2.5.5.5h25c.3 0 .5-.2.5-.5v-5c0-.3-.2-.5-.5-.5H32v-9.5c0-.3-.2-.5-.5-.5M16 30h-4v-4h4zm5 0h-4v-4h4zm0-5h-4v-4h4zm5 5h-4v-4h4zm0-5h-4v-4h4zm5 5h-4v-4h4zm0-5h-4v-4h4zm0-5h-4v-4h4zm5 6v4h-4v-4z"})))}},19365:(e,t,c)=>{c.d(t,{A:()=>n});c(96540);var l=c(34164);const a={tabItem:"tabItem_Ymn6"};var r=c(74848);function n(e){let{children:t,hidden:c,className:n}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,l.A)(a.tabItem,n),hidden:c,children:t})}},11470:(e,t,c)=>{c.d(t,{A:()=>E});var l=c(96540),a=c(34164),r=c(23104),n=c(56347),s=c(205),i=c(57485),o=c(31682),v=c(70679);function h(e){return l.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function d(e){const{values:t,children:c}=e;return(0,l.useMemo)((()=>{const e=t??function(e){return h(e).map((e=>{let{props:{value:t,label:c,attributes:l,default:a}}=e;return{value:t,label:c,attributes:l,default:a}}))}(c);return function(e){const t=(0,o.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,c])}function m(e){let{value:t,tabValues:c}=e;return c.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:c}=e;const a=(0,n.W6)(),r=function(e){let{queryString:t=!1,groupId:c}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!c)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return c??null}({queryString:t,groupId:c});return[(0,i.aZ)(r),(0,l.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(a.location.search);t.set(r,e),a.replace({...a.location,search:t.toString()})}),[r,a])]}function u(e){const{defaultValue:t,queryString:c=!1,groupId:a}=e,r=d(e),[n,i]=(0,l.useState)((()=>function(e){let{defaultValue:t,tabValues:c}=e;if(0===c.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:c}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${c.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const l=c.find((e=>e.default))??c[0];if(!l)throw new Error("Unexpected error: 0 tabValues");return l.value}({defaultValue:t,tabValues:r}))),[o,h]=p({queryString:c,groupId:a}),[u,g]=function(e){let{groupId:t}=e;const c=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,r]=(0,v.Dv)(c);return[a,(0,l.useCallback)((e=>{c&&r.set(e)}),[c,r])]}({groupId:a}),b=(()=>{const e=o??u;return m({value:e,tabValues:r})?e:null})();(0,s.A)((()=>{b&&i(b)}),[b]);return{selectedValue:n,selectValue:(0,l.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),h(e),g(e)}),[h,g,r]),tabValues:r}}var g=c(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var w=c(74848);function f(e){let{className:t,block:c,selectedValue:l,selectValue:n,tabValues:s}=e;const i=[],{blockElementScrollPositionUntilNextRender:o}=(0,r.a_)(),v=e=>{const t=e.currentTarget,c=i.indexOf(t),a=s[c].value;a!==l&&(o(t),n(a))},h=e=>{let t=null;switch(e.key){case"Enter":v(e);break;case"ArrowRight":{const c=i.indexOf(e.currentTarget)+1;t=i[c]??i[0];break}case"ArrowLeft":{const c=i.indexOf(e.currentTarget)-1;t=i[c]??i[i.length-1];break}}t?.focus()};return(0,w.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":c},t),children:s.map((e=>{let{value:t,label:c,attributes:r}=e;return(0,w.jsx)("li",{role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,ref:e=>i.push(e),onKeyDown:h,onClick:v,...r,className:(0,a.A)("tabs__item",b.tabItem,r?.className,{"tabs__item--active":l===t}),children:c??t},t)}))})}function x(e){let{lazy:t,children:c,selectedValue:a}=e;const r=(Array.isArray(c)?c:[c]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===a));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return(0,w.jsx)("div",{className:"margin-top--md",children:r.map(((e,t)=>(0,l.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=u(e);return(0,w.jsxs)("div",{className:(0,a.A)("tabs-container",b.tabList),children:[(0,w.jsx)(f,{...t,...e}),(0,w.jsx)(x,{...t,...e})]})}function E(e){const t=(0,g.A)();return(0,w.jsx)(y,{...e,children:h(e.children)},String(t))}},67408:(e,t,c)=>{c.d(t,{A:()=>i});var l=c(34164);const a={callout:"iwnupRKjsS84xS8RH6vv",callout__title:"Nzy2BPLDAUyOKj5KtfIx",callout__icon:"vnZIe1dhsQtxsLbXkPRN",callout__link:"udXcO7FKTl0t9o202z5z",callout__bottom:"iNvuBjzLIoxJhY0ghemo",callout__shadow:"X_5ZqS0EQNYC2IkdMq7Q",video:"p4vAg2lXdcQ3cM0pmQ8P"};var r=c(86025),n=c(74848);function s(e){return(0,n.jsx)("a",{href:(0,r.Ay)(e.link),className:a.callout__link,children:(0,n.jsxs)("div",{className:(0,l.A)("card",a.callout,a.callout__shadow),style:{marginBottom:"30px"},children:[(0,n.jsx)("div",{className:"card__header",children:(0,n.jsxs)("h3",{style:{fontWeight:"bold",fontSize:"medium",alignItems:"center",display:"flex",marginBottom:"0"},children:[(0,n.jsx)(e.icon,{className:a.callout__icon,stroke:"currentColor","aria-hidden":"true",role:"img"}),e.title]})}),(0,n.jsxs)("div",{className:"card__body",style:{paddingTop:"0"},children:[(0,n.jsx)("span",{className:"link--inset","aria-hidden":"true"}),(0,n.jsx)("p",{children:e.text})]}),(0,n.jsx)("div",{className:a.callout__bottom})]})})}function i(e){let{callouts:t}=e;return(0,n.jsx)("section",{className:"container",children:(0,n.jsx)("div",{className:"row",children:t.map((e=>(0,n.jsx)("div",{className:"col col--4",children:(0,n.jsx)(s,{title:e.title,text:e.text,link:e.link,icon:e.icon})},e.title)))})})}},28453:(e,t,c)=>{c.d(t,{R:()=>n,x:()=>s});var l=c(96540);const a={},r=l.createContext(a);function n(e){const t=l.useContext(r);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),l.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1df93b7f.a10eb748.js b/pr-preview/pr-186/assets/js/1df93b7f.a10eb748.js new file mode 100644 index 000000000..4b23e3d55 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1df93b7f.a10eb748.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[34583],{84706:(e,t,l)=>{l.d(t,{A:()=>n});var c,a=l(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},n),t?a.createElement("title",{id:l},t):null,c||(c=a.createElement("path",{d:"M39.7 22.1 26.1 8.4q-.9-.9-2.1-.9c-1.2 0-1.5.3-2.1.9L8.3 22.1c-1 1-1 2.7 0 3.7l13.9 14c.5.5 1.2.8 1.8.8s1.3-.3 1.8-.8l13.9-14c1.1-1.1 1.1-2.7 0-3.7m-1 2.7-13.9 14c-.2.2-.5.3-.8.3s-.6-.1-.8-.3l-13.9-14c-.5-.5-.5-1.2 0-1.7L22.9 9.4c.3-.3.7-.5 1.1-.5s.8.2 1.1.5l13.6 13.7c.5.4.5 1.2 0 1.7M3 17c.6 0 1-.4 1-1V6.9C4 5.3 5.3 4 6.9 4H16c.6 0 1-.4 1-1s-.4-1-1-1H6.9C4.2 2 2 4.2 2 6.9V16c0 .6.4 1 1 1M41.1 2H32c-.6 0-1 .4-1 1s.4 1 1 1h9.1C42.7 4 44 5.3 44 6.9V16c0 .6.4 1 1 1s1-.4 1-1V6.9C46 4.2 43.8 2 41.1 2M45 31c-.6 0-1 .4-1 1v9.1c0 1.6-1.3 2.9-2.9 2.9H32c-.6 0-1 .4-1 1s.4 1 1 1h9.1c2.7 0 4.9-2.2 4.9-4.9V32c0-.6-.4-1-1-1M16 44H6.9C5.3 44 4 42.7 4 41.1V32c0-.6-.4-1-1-1s-1 .4-1 1v9.1C2 43.8 4.2 46 6.9 46H16c.6 0 1-.4 1-1s-.4-1-1-1"})))}},60405:(e,t,l)=>{l.d(t,{A:()=>h});var c,a,r,n,i,s,o=l(96540);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...h}=e;return o.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":l},h),t?o.createElement("title",{id:l},t):null,c||(c=o.createElement("style",null,".st1{fill:#040000}")),a||(a=o.createElement("circle",{cx:22,cy:26,r:2,className:"st1"})),r||(r=o.createElement("circle",{cx:14,cy:26,r:2,className:"st1"})),n||(n=o.createElement("circle",{cx:30,cy:26,r:2,className:"st1"})),i||(i=o.createElement("path",{d:"M43.2 8H9.8C8.2 8 7 9.2 7 10.8v.2h1v-.2C8 9.8 8.8 9 9.8 9h33.5c1 0 1.8.8 1.8 1.8v21.5c0 1-.8 1.8-1.8 1.8H43v1h.2c1.5 0 2.8-1.2 2.8-2.8V10.8C46 9.2 44.8 8 43.2 8",className:"st1"})),s||(s=o.createElement("path",{d:"M39 12H5c-1.7 0-3 1.3-3 3v22c0 1.7 1.3 3 3 3h34c1.7 0 3-1.3 3-3V15c0-1.7-1.3-3-3-3m1 25c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V15c0-.6.4-1 1-1h34c.6 0 1 .4 1 1z",className:"st1"})))}},46622:(e,t,l)=>{l.d(t,{A:()=>o});var c,a,r,n,i=l(96540);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...o}=e;return i.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":l},o),t?i.createElement("title",{id:l},t):null,c||(c=i.createElement("style",null,".st0{fill:#060001}")),a||(a=i.createElement("circle",{cx:31.5,cy:26.5,r:1.5,className:"st0"})),r||(r=i.createElement("path",{d:"M33.8 34H13.4c-.3 0-.5.2-.5.5s.2.5.5.5h20.5c.3 0 .5-.2.5-.5s-.3-.5-.6-.5M31.5 22h-15C14 22 12 24 12 26.5s2 4.5 4.5 4.5h15c2.5 0 4.5-2 4.5-4.5S34 22 31.5 22m0 8h-15c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5h15c1.9 0 3.5 1.6 3.5 3.5S33.4 30 31.5 30",className:"st0"})),n||(n=i.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7s8 2.7 9.4 6.7c.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10",className:"st0"})))}},61706:(e,t,l)=>{l.d(t,{A:()=>n});var c,a=l(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},n),t?a.createElement("title",{id:l},t):null,c||(c=a.createElement("path",{d:"M43 30.4c-.3 0-.5 0-.8.1L26.7 7.7c.5-.6.9-1.4.9-2.3C27.6 3.6 26 2 24 2s-3.6 1.6-3.6 3.5c0 .9.4 1.7.9 2.3L5.8 30.5c-.3-.1-.5-.1-.8-.1-1.6 0-3 1.3-3 2.9s1.3 2.9 3 2.9q.6 0 1.2-.3l14.3 6.8c.1 1.8 1.6 3.3 3.5 3.3s3.5-1.5 3.6-3.3l14.3-6.8c.4.2.8.2 1.2.2 1.6 0 3-1.3 3-2.9-.1-1.5-1.4-2.8-3.1-2.8m-2.9 2.9c0 .3.1.6.1.9l-13.4 6.3c-.4-.5-1-1-1.7-1.2V8.7l.6-.3L41.2 31c-.7.5-1.1 1.3-1.1 2.3M22.3 8.5c.2.1.3.2.5.2v30.5c-.7.2-1.2.7-1.7 1.2L7.8 34.1c.1-.3.1-.5.1-.8 0-.9-.4-1.7-1.1-2.2zM3.2 33.3c0-1 .8-1.7 1.8-1.7s1.8.8 1.8 1.7S6 35 5 35s-1.8-.8-1.8-1.7M24 44.8c-1.3 0-2.4-1-2.4-2.3s1.1-2.3 2.4-2.3 2.4 1 2.4 2.3-1.1 2.3-2.4 2.3M43 35c-1 0-1.8-.8-1.8-1.7 0-1 .8-1.7 1.8-1.7s1.8.8 1.8 1.7S44 35 43 35"})))}},46774:(e,t,l)=>{l.d(t,{A:()=>s});var c,a,r,n=l(96540);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...s}=e;return n.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"\\u56FE\\u5C42_1",x:0,y:0,viewBox:"0 0 48 48","aria-labelledby":l},s),t?n.createElement("title",{id:l},t):null,c||(c=n.createElement("style",null,".st1{fill:#040000}")),a||(a=n.createElement("path",{d:"M39.5 18h-14c-.3 0-.5.2-.5.5s.2.5.5.5h14c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M39.5 23h-14c-.3 0-.5.2-.5.5s.2.5.5.5h14c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M39.5 28h-14c-.3 0-.5.2-.5.5s.2.5.5.5h14c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M19.2 27.7c-.4-.1-1-.3-1.2-.4v-.5a4.6 4.6 0 0 0 1.7-3.6v-3.4c0-2.6-2.1-4.7-4.7-4.7s-4.7 2.1-4.7 4.7v3.4c0 1.4.6 2.7 1.7 3.6v.5c-.2.1-.8.3-1.2.4-1.5.4-3.8 1.1-3.8 3.1v1.7c0 .3.2.5.5.5h15c.3 0 .5-.2.5-.5v-1.7c0-2-2.3-2.7-3.8-3.1M22 32H8v-1.2c0-1.2 1.8-1.8 3.1-2.2 1.1-.3 1.9-.6 1.9-1.2v-.9c0-.2-.1-.3-.2-.4-.9-.7-1.5-1.8-1.5-3v-3.4c0-2.1 1.7-3.8 3.7-3.8s3.7 1.7 3.7 3.8v3.4c0 1.2-.5 2.3-1.5 3-.1.1-.2.2-.2.4v.9c0 .7.8.9 1.9 1.2 1.3.4 3.1.9 3.1 2.2z",className:"st1"})),r||(r=n.createElement("path",{d:"M43 8H5c-1.7 0-3 1.3-3 3v26c0 1.6 1.4 3 3 3h38c1.7 0 3-1.3 3-3V11c0-1.7-1.4-3-3-3m1 29c0 .5-.5 1-1 1H5c-.6 0-1-.4-1-1V11c0-.5.5-1 1-1h38c.6 0 1 .4 1 1z",className:"st1"})))}},8755:(e,t,l)=>{l.d(t,{A:()=>n});var c,a=l(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},n),t?a.createElement("title",{id:l},t):null,c||(c=a.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M20.5 30v-.5H15c-.4 0-.5-.1-.5-.1s0-.2.3-.5l8.2-8.2c.3-.3.6-.5 1.1-.4.4 0 .8.2 1 .4l8 8.1c.3.3.3.4.3.5 0 0-.2.1-.5.1h-5.2V38h-7v-8zM34 38h-5.5v-7.5h4.2c1 0 1.3-.5 1.5-.7.1-.3.2-.8-.5-1.6l-8-8.1c-.5-.5-1.1-.7-1.8-.7s-1.3.3-1.8.7l-8.2 8.2c-.7.7-.6 1.3-.5 1.5.1.3.5.7 1.5.7h4.5V38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7s8 2.7 9.4 6.7c.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10"})))}},86732:(e,t,l)=>{l.d(t,{A:()=>r});var c=l(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...r}=e;return c.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},r),t?c.createElement("title",{id:l},t):null,c.createElement("path",{d:"m43.4 24.8-7.8-4.5v-9.5c0-1.7-1.1-3.7-2.6-4.5l-6.4-3.7c-1.5-.8-3.7-.8-5.2 0L15 6.3c-1.5.8-2.6 2.8-2.6 4.5v9.5l-7.8 4.5c-1.5.8-2.6 2.8-2.6 4.5v7.9c0 1.7 1.1 3.7 2.6 4.5l6.4 3.7c.7.4 1.7.6 2.6.6s1.8-.2 2.6-.6l7.8-4.5 7.9 4.5c.7.4 1.7.6 2.6.6s1.8-.2 2.6-.6l6.4-3.7c1.5-.8 2.6-2.8 2.6-4.5v-7.9c-.1-1.7-1.2-3.6-2.7-4.5M16.2 8.3l6.4-3.7c.8-.4 2.1-.4 2.9 0l6.4 3.7c.7.4 1.4 1.6 1.4 2.5v10.1l-7.6 4.3h-.1c-.4-.4-1-.7-1.6-.7s-1.2.3-1.7.7h-.1l-7.5-4.3V10.8c0-.9.7-2 1.5-2.5m-1.2 35c-.8.4-2.1.4-2.9 0l-6.4-3.7c-.7-.4-1.4-1.6-1.4-2.4v-7.9c0-.9.7-2 1.4-2.5l8.4-4.8-.1-.1 7.6 4.4h.1c-.1.2-.1.4-.1.6 0 1.1.7 2 1.7 2.3v9.4zm28.7-6.1c0 .9-.7 2-1.4 2.5l-6.4 3.7c-.8.4-2.1.4-2.9 0l-8.4-4.8v-9.4c1-.3 1.7-1.2 1.7-2.2 0-.2 0-.4-.1-.6h.1l7.6-4.4h-.1l8.4 4.8c.7.4 1.4 1.6 1.4 2.5v7.9z",style:{fill:"#060001"}}))}},50060:(e,t,l)=>{l.d(t,{A:()=>r});var c=l(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...r}=e;return c.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},r),t?c.createElement("title",{id:l},t):null,c.createElement("path",{d:"M35.3 16.1C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9m-11.8 3.8c0 .2.1.4.2.6l-6.6 7c-.1-.1-.3-.1-.5-.1l-2.5-9.8zM34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.1 0 .3-.1.4-.1l2.4 9.5c-.4.3-.7.7-.7 1.2 0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5c0-.2-.1-.5-.2-.7l6.6-7c.2.1.4.1.6.1.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5c-.5 0-1 .3-1.2.7l-9.1-2.4c1.5-3.9 5.2-6.5 9.4-6.5 4.3 0 8 2.7 9.4 6.7.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9C44 33.5 39.5 38 34 38",style:{fill:"#040000"}}))}},12692:(e,t,l)=>{l.d(t,{A:()=>r});var c=l(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...r}=e;return c.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":l},r),t?c.createElement("title",{id:l},t):null,c.createElement("path",{d:"M38.9 17.8c-.2-.2-.5-.2-.7-.1l-5 4.1c-.5-.4-1.2-.7-1.9-.7s-1.4.3-1.9.7l-2.4-2c.3-.5.5-1.1.5-1.7s-.2-1.2-.5-1.7l4.6-3.8c.2-.2.2-.5.1-.7-.2-.2-.5-.2-.7-.1l-4.6 3.8c-.6-.6-1.4-.9-2.3-.9s-1.7.4-2.3.9L17 11.9c-.2-.2-.5-.1-.7.1s-.1.5.1.7l4.6 3.8c-.3.5-.5 1.1-.5 1.7s.2 1.2.5 1.7l-2.4 2c-.5-.4-1.2-.7-1.9-.7s-1.4.3-1.9.7l-5-4.1c-.2-.2-.5-.1-.7.1s-.1.5.1.7l5 4.1c-.2.3-.4.8-.4 1.3s.1 1 .4 1.4l-5 4.1c-.2.2-.2.5-.1.7.1.1.2.2.4.2.1 0 .2 0 .3-.1l5-4.1c.5.4 1.2.7 1.9.7s1.4-.3 1.9-.7l2.4 2c-.3.5-.5 1.1-.5 1.7s.2 1.2.5 1.7l-4.6 3.8c-.2.2-.2.5-.1.7.1.1.2.2.4.2.1 0 .2 0 .3-.1l4.6-3.8c.6.5 1.4.9 2.3.9s1.7-.4 2.3-.9l4.6 3.8c.1.1.2.1.3.1s.3-.1.4-.2c.2-.2.1-.5-.1-.7l-4.6-3.8c.3-.5.5-1.1.5-1.7s-.2-1.2-.5-1.7l2.4-2c.5.4 1.2.7 1.9.7s1.4-.3 1.9-.7l5 4.1c.1.1.2.1.3.1.2 0 .3-.1.4-.2.2-.2.1-.5-.1-.7l-5-4.1c.2-.4.4-.9.4-1.4s-.1-1-.4-1.4l5-4.1c.4-.2.4-.5.3-.7M24 26.5c-.9 0-1.7.4-2.3.9l-2.4-2c.2-.4.4-.9.4-1.4s-.1-1-.4-1.4l2.4-2c.6.5 1.4.9 2.3.9s1.7-.4 2.3-.9l2.4 2c-.2.4-.4.9-.4 1.4s.1 1 .4 1.4l-2.4 2c-.6-.6-1.4-.9-2.3-.9m0-9.8c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4-1.4-.6-1.4-1.4.6-1.4 1.4-1.4m-7.2 9.2c-1.1 0-1.9-.9-1.9-1.9s.9-1.9 1.9-1.9 1.9.9 1.9 1.9-.9 1.9-1.9 1.9m7.2 5.4c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4 1.4.6 1.4 1.4-.6 1.4-1.4 1.4m7.2-5.4c-1 0-1.9-.9-1.9-1.9s.9-1.9 1.9-1.9 1.9.9 1.9 1.9-.8 1.9-1.9 1.9M41.6 11 26.4 2.5c-1.3-.7-3.4-.7-4.7 0L6.4 11C5 11.8 4 13.5 4 15v18c0 1.5 1 3.2 2.4 4l15.3 8.5c.6.4 1.5.5 2.4.5s1.7-.2 2.4-.5L41.6 37c1.3-.7 2.4-2.5 2.4-4V15c0-1.5-1-3.2-2.4-4m.3 22c0 .8-.6 1.8-1.3 2.2l-15.3 8.5c-.6.4-2 .4-2.6 0L7.4 35.2c-.7-.4-1.3-1.4-1.3-2.2V15c0-.8.6-1.8 1.3-2.2l15.3-8.5c.3-.2.8-.3 1.3-.3s1 .1 1.3.3l15.3 8.5c.7.4 1.3 1.4 1.3 2.2z",style:{fill:"#000",fillOpacity:1}}))}},17909:(e,t,l)=>{l.d(t,{A:()=>r});var c=l(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...r}=e;return c.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:2},viewBox:"0 0 121 93","aria-labelledby":l},r),t?c.createElement("title",{id:l},t):null,c.createElement("path",{d:"M-10.8-24.72h141.732v141.732H-10.8z",style:{fill:"none"}}),c.createElement("path",{d:"M107.286 33.746c2.904 2.658 5.335 5.853 7.064 9.447 4.652 9.67 3.938 21.724-2.024 30.838-5.687 8.693-15.852 14.238-26.278 14.288q-25.981.04-51.964 0c-10.442-.05-20.629-5.597-26.329-14.367C1.944 65.01 1.072 53.019 5.766 43.23c4.578-9.55 14.105-16.477 24.844-17.709C33.548 16.363 41.015 8.652 50.335 5.54a31.1 31.1 0 0 1 9.893-1.587c10.102.039 20.019 5.292 25.709 13.803a31 31 0 0 1 2.176 3.818l-3.901 3.905c-3.801-9.515-13.59-16.4-24.133-16.387-10.72.041-21.111 7.292-24.554 17.932 0 0-.199.586-.409.968a5.18 5.18 0 0 1-2.962 2.431c-.742.234-1.509.261-2.265.385C18.903 32.61 9.542 41.918 8.048 53.381c-1.232 9.456 3.067 19.443 11.017 25.027 4.363 3.064 9.676 4.746 15.036 4.771q25.966.04 51.931 0c10.28-.048 20.236-6.568 24.266-16.255 3.381-8.126 2.377-17.97-2.824-25.312a26.2 26.2 0 0 0-3.786-4.264z",style:{fill:"#454545"}}),c.createElement("path",{d:"M34.06 58.309h-2.57v-7.327c.016-2.571 2.202-4.926 4.919-4.977q15.785-.097 31.569-.07l-.778 2.568q-15.38-.023-30.759.071c-1.254.024-2.373 1.117-2.381 2.416zm56.733-8.052q.051.33.053.67v7.318h-2.569c0-1.825.008-3.65.006-5.475z",style:{fill:"#454545"}}),c.createElement("path",{d:"M59.933 39.181h2.57v8.108h-2.57z",style:{fill:"#454545"}}),c.createElement("path",{d:"M59.935 50.897h2.57v3.433h-2.57z",style:{fill:"#e20074"}}),c.createElement("path",{d:"M36.221 56.743c3.018.058 5.7 2.576 5.855 5.636.124 2.444.008 4.848.008 7.271-.019 3.004-2.502 5.765-5.636 5.924-2.369.12-4.701.008-7.051.008-2.982-.019-5.764-2.5-5.923-5.636-.124-2.444-.008-4.849-.008-7.272.019-3.003 2.5-5.764 5.636-5.923 2.369-.121 4.746-.023 7.119-.008m-6.816 2.569c-1.75.012-3.335 1.511-3.369 3.327-.015 2.334 0 4.669 0 7.003.011 1.751 1.51 3.335 3.326 3.37 2.261.014 4.522 0 6.783 0 1.75-.011 3.334-1.51 3.369-3.326.015-2.335 0-4.669 0-7.004-.011-1.75-1.51-3.335-3.326-3.369-2.261-.015-4.522-.001-6.783-.001M64.664 21.985c3.004.057 5.7 2.566 5.856 5.635.123 2.441.007 4.849.007 7.272-.019 2.998-2.503 5.765-5.636 5.924-2.367.12-4.701.007-7.051.007-2.999-.019-5.764-2.503-5.923-5.636-.124-2.44-.008-4.848-.008-7.272.019-3.004 2.501-5.764 5.636-5.923 2.368-.12 4.746-.022 7.119-.007m-6.815 2.569c-1.751.011-3.335 1.51-3.37 3.326-.015 2.335 0 4.669 0 7.004.011 1.75 1.51 3.335 3.326 3.369 2.261.015 4.522.001 6.783.001 1.75-.011 3.335-1.511 3.369-3.327.015-2.334.001-4.669.001-7.003-.012-1.75-1.511-3.335-3.327-3.37-2.261-.014-4.521 0-6.782 0M93.007 56.743c3.002.058 5.7 2.567 5.856 5.636.124 2.447.007 4.848.007 7.272-.019 2.997-2.501 5.764-5.635 5.923-2.369.12-4.702.008-7.051.008-2.982-.019-5.765-2.503-5.924-5.636-.124-2.44-.007-4.849-.007-7.272.019-3.005 2.5-5.764 5.635-5.923 2.369-.121 4.746-.023 7.119-.008m-6.815 2.569c-1.75.012-3.335 1.511-3.37 3.327-.014 2.334 0 4.669 0 7.003.011 1.751 1.51 3.335 3.326 3.37 2.261.014 4.522 0 6.783 0 1.75-.011 3.335-1.51 3.37-3.326.014-2.335 0-4.669 0-7.004-.011-1.75-1.51-3.335-3.326-3.369-2.261-.015-4.522-.001-6.783-.001",style:{fill:"#454545"}}),c.createElement("path",{d:"m62.424 73.015 1.076 2.606c-1.528.027-3.045-.015-4.565-.032L60 73.018zm5.405-2.491 2.371.983c-.59 1.676-1.927 3.084-3.621 3.717l-.984-2.384a3.54 3.54 0 0 0 2.234-2.316m-13.217.006a3.54 3.54 0 0 0 2.217 2.309l-.98 2.366c-1.653-.626-3.028-1.982-3.623-3.684zm-2.711-6.606 2.572 1.066q0 1.175.003 2.35l-2.608 1.084c-.025-1.506.015-3.002.033-4.5m18.668-.023c.024 1.506-.015 3.001-.033 4.5l-2.572-1.066-.003-2.351zm-14.712-6.8.984 2.383a3.54 3.54 0 0 0-2.233 2.317l-2.371-.983c.589-1.676 1.926-3.085 3.62-3.717m10.731.019c1.662.63 3.027 1.998 3.62 3.685l-2.384.99a3.54 3.54 0 0 0-2.216-2.31zm-7.652-.417c1.522-.03 3.045.006 4.568.028l-1.067 2.575q-1.213 0-2.425.004zM75.192 40.615c.471.056.93.207 1.309.483.146.105.175.14.307.262l7.177 7.177c.837.905.981 2.336.263 3.326-.266.367-.299.35-.414.449a2.5 2.5 0 0 1-.301.224 3 3 0 0 1-.685.306l-10.042 2.819c-.174.042-.217.058-.396.078-1.525.179-3.043-1.271-2.849-2.863.022-.179.038-.222.081-.396l2.86-9.992c.135-.414.354-.787.653-1.109 0 0 1.116-.8 2.037-.764m.909 11.448 6.067-1.709-7.177-7.177-.018.018-1.723 6.017zm30.555-42.559a3.98 3.98 0 0 1 2.673 1.106c1.831 1.808 3.642 3.637 5.462 5.456 1.363 1.378 1.419 3.826.007 5.257L89.487 46.872c-.907.845-2.342.992-3.335.271-.146-.106-.176-.141-.308-.262l-7.177-7.178c-.837-.905-.981-2.328-.268-3.318.104-.145.139-.175.259-.307l25.196-25.432a3.96 3.96 0 0 1 2.802-1.142m-.064 2.57a1.36 1.36 0 0 0-.922.389L80.484 37.886l7.177 7.178c8.443-8.523 17.011-16.924 25.33-25.568.402-.429.408-1.163-.001-1.597a208 208 0 0 0-5.466-5.46 1.36 1.36 0 0 0-.932-.365",style:{fill:"#e20074"}}))}},27366:(e,t,l)=>{l.d(t,{A:()=>n});var c,a=l(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":l},n),t?a.createElement("title",{id:l},t):null,c||(c=a.createElement("path",{d:"M42 21.1c-.6 0-1 .4-1 1v10c0 1.5-1.2 3.4-2.6 4.2l-12.8 7.1c-1.4.8-3.8.8-5.2 0L7.6 36.3C6.2 35.5 5 33.6 5 32.1V17.9c0-1.5 1.2-3.4 2.6-4.2l12.8-7.1c1.4-.8 3.8-.8 5.2 0 .5.3 1.1.1 1.4-.4s.1-1.1-.4-1.4c-2-1.1-5.2-1.1-7.2 0L6.6 11.9C4.5 13 3 15.6 3 17.9v14.2c0 2.3 1.5 4.8 3.6 6l12.8 7.1c1 .6 2.3.8 3.6.8s2.6-.3 3.6-.8l12.8-7.1c2.1-1.1 3.6-3.7 3.6-6v-10c0-.5-.4-1-1-1m2.9-10.5-2-2c-.2-.2-.5-.2-.7 0l-2 2c-.2.2-.2.5 0 .7l2 2c.1.1.2.1.4.1s.3 0 .4-.1l2-2c0-.1 0-.5-.1-.7m-14.4 3.6c.1.1.2.1.4.1s.3-.1.4-.1l1.1-1.1 2.1 2.1-1.2 1.2c-.2.2-.2.5 0 .7l1.1 1.1-2.9 1.6-8.3-4.7c-.2-.1-.3-.1-.5 0l-8.5 4.8c-.2.1-.3.3-.3.4v9.5c0 .2.1.3.3.4l8.5 4.8c.1 0 .2.1.2.1s.2 0 .2-.1l8.5-4.8c.2-.1.3-.3.3-.4v-9.2l3.1-1.7 1 1c.1.1.2.1.4.1s.3 0 .4-.1l2.8-2.8c.2-.2.2-.5 0-.7l-2.8-2.8c-.2-.2-.5-.2-.7 0l-.9.9-2.2-2.1 1.1-1.1c.1-.1.1-.2.1-.4 0-.1-.1-.3-.1-.4l-1-1 2-2 1.1 1.1c.1.1.2.1.4.1s.3-.1.4-.1l2.8-2.8c.2-.2.2-.5 0-.7L37 2.3c-.2-.2-.5-.2-.7 0l-3 2.7c-.2.2-.2.5 0 .7l1.1 1.1-2 2-1.1-1.1c-.2-.2-.5-.2-.7 0l-2.8 2.8c-.2.2-.2.5 0 .7zm-8 19.4L15 29.5v-8.3l7.5 4.2zm.5-9.2-7.5-4.2L23 16l7.5 4.2zm8 5.1-7.5 4.2v-8.3l7.5-4.2zm5.5-14.9 2.1 2.1-2.1 2.1-2.1-2.1zm0-11.4 2.1 2.1-2.1 2.1L35.1 6l-.7-.7zm-5.7 5.7L33 11l-2.1 2.1-2.2-2.1z"})))}},28426:(e,t,l)=>{l.d(t,{A:()=>r});var c=l(96540);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...r}=e;return c.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",width:132,height:132,viewBox:"0 0 48 48","aria-labelledby":l},r),t?c.createElement("title",{id:l},t):null,c.createElement("path",{d:"M34.2 23H23.8c-2.4 0-4.3 2-4.3 4.5 0 .3.2.5.5.5s.5-.2.5-.5c0-1.9 1.5-3.5 3.3-3.5h10.4c1.8 0 3.3 1.6 3.3 3.5S36 31 34.2 31h-4.7c-.3 0-.5.2-.5.5s.2.5.5.5h4.7c2.4 0 4.3-2 4.3-4.5S36.6 23 34.2 23M28 27c-.3 0-.5.2-.5.5 0 1.9-1.5 3.5-3.3 3.5H13.8c-1.8 0-3.3-1.6-3.3-3.5S12 24 13.8 24h4.7c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-4.7c-2.4 0-4.3 2-4.3 4.5s1.9 4.5 4.3 4.5h10.4c2.4 0 4.3-2 4.3-4.5 0-.3-.2-.5-.5-.5m7.3-10.9C33.7 11.4 29.3 8 24 8s-9.7 3.4-11.3 8.1C6.7 16.7 2 21.8 2 28c0 6.6 5.4 12 12 12h20c6.6 0 12-5.4 12-12 0-6.2-4.7-11.3-10.7-11.9M34 38H14C8.5 38 4 33.5 4 28c0-5.1 3.8-9.4 8.9-9.9.8-.1 1.4-.6 1.7-1.3 1.4-4 5.2-6.7 9.4-6.7 4.3 0 8 2.7 9.4 6.7.3.7.9 1.2 1.7 1.3 5.1.6 8.9 4.8 8.9 9.9 0 5.5-4.5 10-10 10",style:{fill:"#040000"}}))}},58657:(e,t,l)=>{l.d(t,{A:()=>n});var c,a=l(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},n),t?a.createElement("title",{id:l},t):null,c||(c=a.createElement("path",{d:"M17.5 19h1c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5s.2.5.5.5m0 4h1c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5s.2.5.5.5m4-4h9c.3 0 .5-.2.5-.5s-.2-.5-.5-.5h-9c-.3 0-.5.2-.5.5s.2.5.5.5m-2 11h-3.4c-.6 0-1.1-.5-1.1-1.1v-3.4c0-.3-.2-.5-.5-.5s-.5.2-.5.5v3.4c0 1.2.9 2.1 2.1 2.1h3.4c.3 0 .5-.2.5-.5s-.2-.5-.5-.5M31 22.5c0-.3-.2-.5-.5-.5h-9c-.3 0-.5.2-.5.5s.2.5.5.5h9c.3 0 .5-.2.5-.5M19.5 10h-3.4c-1.2 0-2.1.9-2.1 2.1v3.4c0 .3.2.5.5.5s.5-.2.5-.5v-3.4c0-.6.5-1.1 1.1-1.1h3.4c.3 0 .5-.2.5-.5s-.2-.5-.5-.5m12.4 0h-3.4c-.3 0-.5.2-.5.5s.2.5.5.5h3.4c.6 0 1.1.5 1.1 1.1v3.4c0 .3.2.5.5.5s.5-.2.5-.5v-3.4c0-1.2-.9-2.1-2.1-2.1M38 2H10C7.8 2 6 3.8 6 6v28l12 12h20c2.2 0 4-1.8 4-4V6c0-2.2-1.8-4-4-4M18 43.2l-4.6-4.6L8.8 34h6.7c1.4 0 2.5 1.1 2.5 2.5zM40 42c0 1.1-.9 2-2 2H19v-7.5c0-1.9-1.6-3.5-3.5-3.5H8V6c0-1.1.9-2 2-2h28c1.1 0 2 .9 2 2zm-6.5-17c-.3 0-.5.2-.5.5v3.4c0 .6-.5 1.1-1.1 1.1h-3.4c-.3 0-.5.2-.5.5s.2.5.5.5h3.4c1.2 0 2.1-.9 2.1-2.1v-3.4c0-.3-.2-.5-.5-.5"})))}},9967:(e,t,l)=>{l.d(t,{A:()=>i});var c,a,r=l(96540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...i}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg","data-name":"rms 1",viewBox:"0 0 44 44","aria-labelledby":l},i),t?r.createElement("title",{id:l},t):null,c||(c=r.createElement("path",{d:"m39.5 13.41-14-8a3 3 0 0 0-3 0l-14 8A3 3 0 0 0 7 16v16a3 3 0 0 0 1.5 2.59l14 8a3 3 0 0 0 3 0l14-8A3 3 0 0 0 41 32V16a3 3 0 0 0-1.5-2.59m-1 19.45L25 40.58V28.5a1 1 0 0 0-2 0v12.08L9.5 32.86A1 1 0 0 1 9 32V16.78l10.58 5.85a1 1 0 0 0 1-1.75L9.83 15l13.68-7.87a1 1 0 0 1 1 0L38.22 15l-10.64 5.9a1 1 0 0 0 1 1.75L39 16.84V32a1 1 0 0 1-.5.86"})),a||(a=r.createElement("path",{d:"M32.5 26a3 3 0 0 0-2.2 1l-5.76-3.4v-6.67a3 3 0 1 0-1 0v6.67l-5.68 3.59A3 3 0 1 0 18.5 29a3 3 0 0 0-.16-.94l5.66-3.6 5.7 3.37a3 3 0 0 0-.2 1.17 3 3 0 1 0 3-3m-17 5a2 2 0 1 1 2-2 2 2 0 0 1-2 2M24 16a2 2 0 1 1 2-2 2 2 0 0 1-2 2m8.5 15a2 2 0 1 1 2-2 2 2 0 0 1-2 2"})))}},72489:(e,t,l)=>{l.d(t,{A:()=>n});var c,a=l(96540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...n}=e;return a.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 48 48","aria-labelledby":l},n),t?a.createElement("title",{id:l},t):null,c||(c=a.createElement("path",{d:"M43 29c-.6 0-1 .4-1 1v1.5c0 1.6-1.2 3.7-2.6 4.5l-12.8 7.4c-1.4.8-3.8.8-5.2 0L8.6 35.9C7.2 35.1 6 33.1 6 31.5v-3.7c1.2-.4 2-1.5 2-2.8 0-1.7-1.3-3-3-3s-3 1.3-3 3c0 1.3.9 2.4 2 2.8v3.7c0 2.4 1.5 5 3.6 6.2l12.8 7.4c1 .6 2.3.9 3.6.9s2.6-.3 3.6-.9l12.8-7.4c2-1.2 3.6-3.9 3.6-6.2V30c0-.6-.4-1-1-1M3 25c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2m41-4.8v-3.7c0-2.4-1.5-5-3.6-6.2L27.6 2.9c-2.1-1.2-5.1-1.2-7.2 0L7.6 10.3c-2 1.2-3.6 3.9-3.6 6.2V18c0 .6.4 1 1 1s1-.4 1-1v-1.5c0-1.6 1.2-3.7 2.6-4.5l12.8-7.4c1.4-.8 3.8-.8 5.2 0L39.4 12c1.4.8 2.6 2.8 2.6 4.5v3.7c-1.2.4-2 1.5-2 2.8 0 1.7 1.3 3 3 3s3-1.3 3-3c0-1.3-.9-2.4-2-2.8M43 25c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M31.5 15h-5c-.3 0-.5.2-.5.5V20h-9.5c-.3 0-.5.2-.5.5V25h-4.5c-.3 0-.5.2-.5.5v5c0 .3.2.5.5.5h25c.3 0 .5-.2.5-.5v-5c0-.3-.2-.5-.5-.5H32v-9.5c0-.3-.2-.5-.5-.5M16 30h-4v-4h4zm5 0h-4v-4h4zm0-5h-4v-4h4zm5 5h-4v-4h4zm0-5h-4v-4h4zm5 5h-4v-4h4zm0-5h-4v-4h4zm0-5h-4v-4h4zm5 6v4h-4v-4z"})))}},67408:(e,t,l)=>{l.d(t,{A:()=>s});var c=l(34164);const a={callout:"iwnupRKjsS84xS8RH6vv",callout__title:"Nzy2BPLDAUyOKj5KtfIx",callout__icon:"vnZIe1dhsQtxsLbXkPRN",callout__link:"udXcO7FKTl0t9o202z5z",callout__bottom:"iNvuBjzLIoxJhY0ghemo",callout__shadow:"X_5ZqS0EQNYC2IkdMq7Q",video:"p4vAg2lXdcQ3cM0pmQ8P"};var r=l(86025),n=l(74848);function i(e){return(0,n.jsx)("a",{href:(0,r.Ay)(e.link),className:a.callout__link,children:(0,n.jsxs)("div",{className:(0,c.A)("card",a.callout,a.callout__shadow),style:{marginBottom:"30px"},children:[(0,n.jsx)("div",{className:"card__header",children:(0,n.jsxs)("h3",{style:{fontWeight:"bold",fontSize:"medium",alignItems:"center",display:"flex",marginBottom:"0"},children:[(0,n.jsx)(e.icon,{className:a.callout__icon,stroke:"currentColor","aria-hidden":"true",role:"img"}),e.title]})}),(0,n.jsxs)("div",{className:"card__body",style:{paddingTop:"0"},children:[(0,n.jsx)("span",{className:"link--inset","aria-hidden":"true"}),(0,n.jsx)("p",{children:e.text})]}),(0,n.jsx)("div",{className:a.callout__bottom})]})})}function s(e){let{callouts:t}=e;return(0,n.jsx)("section",{className:"container",children:(0,n.jsx)("div",{className:"row",children:t.map((e=>(0,n.jsx)("div",{className:"col col--4",children:(0,n.jsx)(i,{title:e.title,text:e.text,link:e.link,icon:e.icon})},e.title)))})})}},92649:(e,t,l)=>{l.r(t),l.d(t,{default:()=>bt});var c=l(34164),a=l(44586),r=l(74371),n=l(51107);const i={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var s,o,m,h,d,p,f,v,u,x,g,y,E,b,w,j,M,O,_,C,A,N,z,S,k,L,H,B,V,I,P,q,T,R,F,D,Z,Q,G,X,K=l(86025),W=l(96540);function J(){return J=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...c}=e;return W.createElement("svg",J({xmlns:"http://www.w3.org/2000/svg",width:797.116,height:598.245,viewBox:"0 0 797.116 598.245","aria-labelledby":l},c),t?W.createElement("title",{id:l},t):null,s||(s=W.createElement("circle",{cx:553.824,cy:30,r:30,fill:"#ff6584"})),o||(o=W.createElement("path",{fill:"#ffb6b6",d:"m634.242 572.816-10.805.223-6.023-42.495 15.946-.33z"})),m||(m=W.createElement("path",{fill:"#2f2e41",d:"M600.144 591a4.84 4.84 0 0 0 4.93 4.732l21.48-.447 3.538-7.73 1.604 7.62 8.106-.163-2.843-27.26-2.824-.105-11.523-.458-3.717-.14.16 7.731-16.91 12.204a4.83 4.83 0 0 0-2.001 4.016"})),h||(h=W.createElement("path",{fill:"#ffb6b6",d:"m706.953 572.816-10.805.223-6.023-42.495 15.946-.33z"})),d||(d=W.createElement("path",{fill:"#2f2e41",d:"M672.855 591a4.84 4.84 0 0 0 4.93 4.732l21.48-.447 3.538-7.73 1.604 7.62 8.106-.163-2.842-27.26-2.825-.105-11.523-.458-3.717-.14.16 7.731-16.91 12.204a4.83 4.83 0 0 0-2.001 4.016M645.132 246.096l59.49-1.653-3.304 4.958 7.527 7.436s27.176 37.182 18.913 71.059-3.61 234.155-3.61 234.155l-48.445-5.28 5.371-202.021-39.66 76.016L652.944 554l-41.277-.12-13.22-133.03z"})),p||(p=W.createElement("path",{fill:"#3f3d56",d:"M396.269 86.267a.657.657 0 0 0 1.22 0c1.562-3.85 3.785-8.16 6.203-11.455.387-.528-.146-1.233-.762-1.01l-5.183 1.875V43.591h-1.735v32.086l-5.185-1.875c-.615-.223-1.149.482-.762 1.01 2.418 3.294 4.642 7.605 6.204 11.455M430.26 119.304a.657.657 0 0 0 .956.759c3.617-2.043 8.038-4.037 11.98-5.113.632-.172.652-1.056.032-1.264l-5.225-1.755 19.955-25.127-1.36-1.079-19.954 25.127-2.894-4.694c-.343-.557-1.2-.337-1.225.317-.155 4.084-1.095 8.843-2.265 12.829"})),f||(f=W.createElement("path",{fill:"#ffb6b6",d:"m556.996 177.93 32.04-3.694 4.664 18.01-34.015 2.7a10.8 10.8 0 0 1-2.525 1.94c-5.212 2.895-11.785 1.017-14.68-4.195-2.896-5.212-1.018-11.784 4.194-14.68 3.324-1.846 7.198-1.744 10.322-.082"})),v||(v=W.createElement("path",{fill:"#e20074",d:"m710.414 136.39-12.54-19.03c-2.28 1.81-4.28 3.63-5.79 5.24l-2.6 1.79-8.4 7.51-23.78 21.23-7.91 7.07-8.83 1.55-19.49 3.43-29.516 7.942-21.734 1.408c-.01.44-.01 1.1-.01 1.92-.01 4.27.09 12.91.93 17.62.29 1.64.67 2.8 1.17 3.15.16.11 16.804-5.088 17.644-5.098 6.77-.01 18.086 1.848 40.916-1.122 13.56-1.78 25.5-3.4 30.52-4.09l.11-.02 3.63-1.76 39.85-19.3 12.03-5.83a91.7 91.7 0 0 0-6.2-23.61"})),u||(u=W.createElement("path",{fill:"#3f3d56",d:"M22.69 27.94C10.159 27.94 0 38.1 0 50.63v384.31h2V185.62C2 99.642 71.7 29.94 157.68 29.94l397.684-.363-.364-1.636z"})),x||(x=W.createElement("ellipse",{cx:127.706,cy:83.151,fill:"#3f3d56",rx:8.457,ry:8.645})),g||(g=W.createElement("ellipse",{cx:156.92,cy:83.151,fill:"#3f3d56",rx:8.457,ry:8.645})),y||(y=W.createElement("ellipse",{cx:186.134,cy:83.151,fill:"#3f3d56",rx:8.457,ry:8.645})),E||(E=W.createElement("path",{fill:"#f2f2f2",d:"M333.514 185c-12.532 0-22.69 10.159-22.69 22.69V372h2v-29.32c0-85.98 69.7-155.68 155.68-155.68l144.683-.363-.363-1.637z"})),b||(b=W.createElement("path",{fill:"#3f3d56",d:"M417.527 286.973c-1.103 0-2 .896-2 2v31c0 1.103.897 2 2 2s2-.897 2-2v-31c0-1.104-.897-2-2-2"})),w||(w=W.createElement("ellipse",{cx:437.128,cy:304.643,fill:"#e20074",rx:12.463,ry:12.201})),j||(j=W.createElement("path",{fill:"#f2f2f2",d:"M537.041 300.47h-67.085c-2.301 0-4.174-1.873-4.174-4.175s1.873-4.174 4.174-4.174h67.085c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174M589.395 314.596H469.956c-2.301 0-4.174-1.872-4.174-4.174s1.873-4.174 4.174-4.174h119.439c2.301 0 4.174 1.873 4.174 4.174s-1.873 4.174-4.174 4.174"})),M||(M=W.createElement("ellipse",{cx:423.706,cy:225.151,fill:"#f2f2f2",rx:8.457,ry:8.645})),O||(O=W.createElement("ellipse",{cx:452.92,cy:225.151,fill:"#f2f2f2",rx:8.457,ry:8.645})),_||(_=W.createElement("ellipse",{cx:482.134,cy:225.151,fill:"#f2f2f2",rx:8.457,ry:8.645})),C||(C=W.createElement("path",{fill:"#3f3d56",d:"M90.354 169.406c-1.103 0-2 .896-2 2v31c0 1.103.897 2 2 2s2-.897 2-2v-31c0-1.104-.897-2-2-2"})),A||(A=W.createElement("ellipse",{cx:109.955,cy:187.076,fill:"#e20074",rx:12.463,ry:12.201})),N||(N=W.createElement("path",{fill:"#f2f2f2",d:"M209.868 182.902h-67.085c-2.301 0-4.174-1.872-4.174-4.174s1.873-4.174 4.174-4.174h67.085c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174M262.221 197.03H142.783c-2.301 0-4.174-1.873-4.174-4.175s1.873-4.174 4.174-4.174h119.438c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174"})),z||(z=W.createElement("path",{fill:"#3f3d56",d:"M90.354 255.406c-1.103 0-2 .896-2 2v31c0 1.103.897 2 2 2s2-.897 2-2v-31c0-1.104-.897-2-2-2"})),S||(S=W.createElement("ellipse",{cx:109.955,cy:273.076,fill:"#e20074",rx:12.463,ry:12.201})),k||(k=W.createElement("path",{fill:"#f2f2f2",d:"M209.868 268.902h-67.085c-2.301 0-4.174-1.872-4.174-4.174s1.873-4.174 4.174-4.174h67.085c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174M262.221 283.03H142.783c-2.301 0-4.174-1.873-4.174-4.175s1.873-4.174 4.174-4.174h119.438c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174"})),L||(L=W.createElement("path",{fill:"#3f3d56",d:"M90.354 341.406c-1.103 0-2 .896-2 2v31c0 1.103.897 2 2 2s2-.897 2-2v-31c0-1.104-.897-2-2-2"})),H||(H=W.createElement("ellipse",{cx:109.955,cy:359.076,fill:"#e20074",rx:12.463,ry:12.201})),B||(B=W.createElement("path",{fill:"#f2f2f2",d:"M209.868 354.902h-67.085c-2.301 0-4.174-1.872-4.174-4.174s1.873-4.174 4.174-4.174h67.085c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174M262.221 369.03H142.783c-2.301 0-4.174-1.873-4.174-4.175s1.873-4.174 4.174-4.174h119.438c2.302 0 4.174 1.873 4.174 4.174s-1.872 4.174-4.174 4.174"})),V||(V=W.createElement("path",{fill:"#e20074",d:"M720.558 278.122c-1.237 9.418-65.35-12.88-73-17-14.31-7.69.662.197.662.197l-1.662-47.197L644.824 186s-.97-7.47-3-17c-.46-2.14-.95-4.62-1.26-7.25-.88-7.59-.21-16.41 7.26-21.75l26.05-38.84 12.83-.75 11.17 16.95 12.54 19.03a91.7 91.7 0 0 1 6.2 23.61 92 92 0 0 1-1.5 31.44l-7.85 22.01s-.988 3.725 2.46 5.81c6.995 4.23-7.166 15.862 1.5 30.27 0 0-.81 6.62 3.05 7.2 3.86.59 6.805 17.426 6.284 21.392"})),I||(I=W.createElement("path",{fill:"#ffb6b6",d:"m596.004 300.75 19.024-26.046 16.395 8.791-21.093 26.822c.06 1.04-.029 2.107-.288 3.172-1.408 5.793-7.247 9.348-13.04 7.94-5.794-1.409-9.349-7.247-7.94-13.04.898-3.696 3.601-6.472 6.942-7.64"})),P||(P=W.createElement("path",{fill:"#e20074",d:"M676.348 136.445a36.4 36.4 0 0 0-15.016-6.31c-7.633-1.331-11.915 9.652-13.597 20.364-.774 4.965-1.002 9.874-.736 13.458l-.45 3.134-.263 16.227-.62 37.515-19.108 28.29-8 19-16.348 20.896c.319.307.806.755 1.407 1.317 3.136 2.9 9.536 8.684 13.571 11.264 1.403.89 2.507 1.396 3.103 1.271.188-.04 11.7-11.128 12.267-11.749 3.818-4.156 4.57-9.734 16.115-25.947a4514 4514 0 0 0 24.473-34.739l.068-.095 16.644-54.896 1.514-4.976c1.614-13.628-4.525-26.483-15.024-34.024"})),q||(q=W.createElement("path",{fill:"#2f2e41",d:"M666.91 137.268q-.044-.02-.09-.039a10 10 0 0 1-.76.039z"})),T||(T=W.createElement("circle",{cx:674.374,cy:65.071,r:29.088,fill:"#ffb6b6"})),R||(R=W.createElement("path",{fill:"#2f2e41",d:"M634.992 56.986c-1.964-14.101 3.762-18.416 12.72-19.693 17.723-9.211 21.783-6.896 27.402-5.896l2.065-.444c6.336-1.364 8.635-.782 14.27 1.348 11.888 4.482 19.697 15.848 20.561 28.522.595 8.736-2.143 10.097 2.922 17.192 4.235 5.923.996 14.237-6.115 15.767l-6.618 10.006c-1.612-2.037-2.9-4.172-4.36-6.846-.576 2.386-.64 5.119-.34 7.857-6.589 3.282-13.782 4.64-21.412 4.607-1.227-1.635-2.327-3.457-2.182-5.509-.423 2.056-.942 4.105-1.031 6.2-4.8-3.09-8.767-2.182-11.935 2.568-8-6.63-8.627-21.825.883-25.63 8.046-3.22-4.646-25.76-13.3-26.22-.055-.003-2.36 8.712-2.442 8.548-1.221-2.443-.662-3.781-2.123-6.456-.48 2.012-.609 4.265-.45 6.56a36.5 36.5 0 0 1-6.257-1.988c-2.444-3.32-3.39-6.797-2.258-10.493"})),F||(F=W.createElement("path",{fill:"#f2f2f2",d:"M742.857 580.912c2.066.13 3.208-2.438 1.645-3.934l-.156-.618.062-.148c2.09-4.982 9.17-4.948 11.241.042 1.839 4.428 4.18 8.863 4.756 13.546a18 18 0 0 1-.316 6.2c4.308-9.41 6.575-19.687 6.575-30.02q.002-3.897-.433-7.784a72 72 0 0 0-.995-6.31c-2.306-11.277-7.298-22.018-14.5-30.99-3.462-1.892-6.349-4.85-8.093-8.396-.626-1.28-1.117-2.655-1.35-4.056.394.051 1.486-5.95 1.189-6.317.549-.833 1.531-1.248 2.131-2.06 2.982-4.044 7.091-3.338 9.236 2.157 4.583 2.312 4.627 6.148 1.815 9.837-1.789 2.346-2.034 5.522-3.604 8.034.162.207.33.407.491.614a73.6 73.6 0 0 1 7.681 12.169c-.61-4.767.29-10.509 1.827-14.21 1.748-4.217 5.024-7.77 7.91-11.415 3.466-4.38 10.573-2.468 11.184 3.083l.017.162q-.642.362-1.258.77c-2.34 1.547-1.531 5.173 1.24 5.601l.064.01a30.6 30.6 0 0 1-.808 4.58c3.702 14.315-4.29 19.53-15.701 19.763-.252.13-.498.259-.75.381a73 73 0 0 1 2.765 9.98A74 74 0 0 1 768 560.63c.297 3.83.271 7.68-.052 11.503l.02-.135c.82-4.211 3.106-8.145 6.426-10.87 4.946-4.063 11.933-5.56 17.268-8.825 2.569-1.572 5.86.46 5.411 3.437l-.021.143c-.795.323-1.57.698-2.32 1.117q-.642.363-1.258.77c-2.34 1.548-1.53 5.174 1.241 5.602l.063.01.13.02a30.7 30.7 0 0 1-5.64 8.828c-2.314 12.497-12.255 13.683-22.89 10.044h-.006A75 75 0 0 1 761.329 597h-18.02c-.065-.2-.123-.407-.181-.607 1.666.103 3.345.006 4.986-.297-1.337-1.64-2.674-3.294-4.011-4.935a1 1 0 0 1-.084-.097c-.678-.84-1.363-1.672-2.041-2.512v-.001a30 30 0 0 1 .878-7.64"})),D||(D=W.createElement("path",{fill:"#ccc",d:"M541.306 597.055c0 .66.53 1.19 1.19 1.19h253.29c.66 0 1.19-.53 1.19-1.19s-.53-1.19-1.19-1.19h-253.29c-.66 0-1.19.53-1.19 1.19"})),Z||(Z=W.createElement("path",{fill:"#e6e6e6",d:"M414.027 140.716h-33.722a3.8 3.8 0 0 1-3.797-3.797c-4.458-13.031-4.37-25.8 0-38.323a3.8 3.8 0 0 1 3.797-3.797h33.722a3.8 3.8 0 0 1 3.797 3.797v38.323a3.8 3.8 0 0 1-3.797 3.797"})),Q||(Q=W.createElement("path",{fill:"#fff",d:"M387.53 95.93c-5.462 0-9.89 4.429-9.89 9.891v30.285a3.48 3.48 0 0 0 3.478 3.479h18.648c9.348 0 16.926-7.578 16.926-16.926v-23.25a3.48 3.48 0 0 0-3.479-3.479z"})),G||(G=W.createElement("g",{fill:"#e6e6e6"},W.createElement("path",{d:"M405.02 107.067H389.23a.723.723 0 0 1 0-1.443h15.788a.722.722 0 0 1 0 1.443M405.02 122.46H389.23a.723.723 0 0 1 0-1.444h15.788a.722.722 0 0 1 0 1.444M413.491 114.769H380.76a.723.723 0 0 1 0-1.444h32.732a.722.722 0 0 1 0 1.444"}))),X||(X=W.createElement("path",{fill:"#e6e6e6",d:"M413.877 128.718H400.22a.723.723 0 0 1 0-1.443h13.658a.722.722 0 0 1 0 1.443"})))};var $,U,ee,te,le,ce,ae,re,ne,ie,se,oe,me,he,de,pe,fe,ve,ue,xe,ge,ye,Ee,be,we,je,Me,Oe,_e,Ce,Ae,Ne,ze,Se,ke,Le,He,Be,Ve,Ie,Pe,qe,Te,Re,Fe;function De(){return De=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:l,...c}=e;return W.createElement("svg",De({xmlns:"http://www.w3.org/2000/svg",width:671.549,height:517.61,"data-name":"Layer 1",viewBox:"0 0 671.549 517.61","aria-labelledby":l},c),t?W.createElement("title",{id:l},t):null,$||($=W.createElement("path",{fill:"#e6e6e6",d:"M334.087 128.498c-21.382-5.322-39.74-15.784-54.091-33.055a4.845 4.845 0 0 1-1.606-6.652l24.964-40.851a4.845 4.845 0 0 1 6.652-1.606l54.091 33.055a4.845 4.845 0 0 1 1.606 6.653l-24.963 40.85a4.845 4.845 0 0 1-6.653 1.606"})),U||(U=W.createElement("path",{fill:"#fff",d:"M319.664 115.38c-11.258-1.228-22.959-10.226-34.775-21.25a4.537 4.537 0 0 1-1.504-6.23l21.455-35.108a4.537 4.537 0 0 1 6.23-1.504l48.134 29.414a4.537 4.537 0 0 1 1.504 6.23l-13.29 21.75a20.21 20.21 0 0 1-27.754 6.699"})),ee||(ee=W.createElement("path",{fill:"#e6e6e6",d:"M424.087 193.498c-21.382-5.322-39.74-15.784-54.091-33.055a4.845 4.845 0 0 1-1.606-6.652l24.964-40.851a4.845 4.845 0 0 1 6.652-1.606l54.091 33.055a4.845 4.845 0 0 1 1.606 6.653l-24.963 40.85a4.845 4.845 0 0 1-6.653 1.606"})),te||(te=W.createElement("path",{fill:"#fff",d:"M409.664 180.38c-11.258-1.228-22.959-10.226-34.775-21.25a4.537 4.537 0 0 1-1.504-6.23l21.455-35.108a4.537 4.537 0 0 1 6.23-1.504l48.134 29.414a4.537 4.537 0 0 1 1.504 6.23l-13.29 21.75a20.21 20.21 0 0 1-27.754 6.699"})),le||(le=W.createElement("path",{fill:"#e6e6e6",d:"M353.087 219.498c-21.382-5.322-39.74-15.784-54.091-33.055a4.845 4.845 0 0 1-1.606-6.652l24.964-40.851a4.845 4.845 0 0 1 6.652-1.606l54.091 33.055a4.845 4.845 0 0 1 1.606 6.653l-24.963 40.85a4.845 4.845 0 0 1-6.653 1.606"})),ce||(ce=W.createElement("path",{fill:"#fff",d:"M338.664 206.38c-11.258-1.228-22.959-10.226-34.775-21.25a4.537 4.537 0 0 1-1.504-6.23l21.455-35.108a4.537 4.537 0 0 1 6.23-1.504l48.134 29.414a4.537 4.537 0 0 1 1.504 6.23l-13.29 21.75a20.21 20.21 0 0 1-27.754 6.699"})),ae||(ae=W.createElement("path",{fill:"#f2f2f2",d:"M86.167 495.796a2.807 2.807 0 0 1-2.035-4.866l.192-.765-.076-.183a7.54 7.54 0 0 0-13.907.051c-2.274 5.478-5.17 10.966-5.883 16.758a22.3 22.3 0 0 0 .391 7.67 89.4 89.4 0 0 1-8.134-37.138 86 86 0 0 1 .535-9.628q.444-3.932 1.231-7.807a90.46 90.46 0 0 1 17.938-38.337 24.07 24.07 0 0 0 10.012-10.388 18.4 18.4 0 0 0 1.67-5.017c-.488.064-1.838-7.36-1.47-7.815-.68-1.03-1.895-1.543-2.637-2.549-3.69-5.002-8.773-4.129-11.426 2.669-5.669 2.861-5.724 7.606-2.246 12.17 2.213 2.902 2.517 6.83 4.46 9.939-.2.256-.408.503-.608.76a91 91 0 0 0-9.502 15.053 37.85 37.85 0 0 0-2.26-17.579c-2.163-5.217-6.216-9.611-9.786-14.121-4.288-5.418-13.08-3.054-13.836 3.814l-.021.2q.795.448 1.557.952a3.808 3.808 0 0 1-1.535 6.93l-.078.012a38 38 0 0 0 .999 5.665c-4.58 17.71 5.307 24.16 19.424 24.45.312.16.615.32.927.472a93 93 0 0 0-5.002 23.539 88 88 0 0 0 .064 14.23l-.024-.167a23.3 23.3 0 0 0-7.95-13.448c-6.118-5.026-14.762-6.876-21.363-10.916a4.37 4.37 0 0 0-6.694 4.252l.027.176a26 26 0 0 1 2.868 1.382q.796.45 1.558.953a3.808 3.808 0 0 1-1.536 6.93l-.078.012-.16.024a37.9 37.9 0 0 0 6.976 10.922c2.864 15.46 15.162 16.927 28.318 12.425h.008a93 93 0 0 0 6.24 18.218h22.293c.08-.248.152-.503.224-.751a25.3 25.3 0 0 1-6.169-.367c1.654-2.03 3.308-4.076 4.962-6.105a1 1 0 0 0 .104-.12c.84-1.039 1.686-2.07 2.525-3.108v-.001a37 37 0 0 0-1.087-9.452Z"})),re||(re=W.createElement("ellipse",{cx:241.077,cy:119.621,fill:"#e6e6e6",rx:5.239,ry:5.22})),ne||(ne=W.createElement("path",{fill:"#ffb6b6",d:"M67.218 490.329 76 496.038l26.202-31.153-12.96-8.427z"})),ie||(ie=W.createElement("path",{fill:"#2f2e41",d:"m60.952 499.288 27.004 17.559.222-.342a12.54 12.54 0 0 0-3.676-17.344l-2.5-6.95-11.636-2.242-2.357-1.533Z"})),se||(se=W.createElement("path",{fill:"#ffb6b6",d:"m217.708 505.29 10.475-.001 4.982-40.401-15.459.001z"})),oe||(oe=W.createElement("path",{fill:"#2f2e41",d:"m217.34 516.217 32.21-.001v-.407a12.54 12.54 0 0 0-12.537-12.537h-.001l-5.884-4.464-10.977 4.464h-2.812ZM109.288 255.987l93.928 2.065 9.31 11.638s-.804-4.103-.088.403 18.837 94.362 15.412 97.376 6.495 23.82 7.224 25.089 8.582 63.9 0 69.05l-3.224 21.86h-15s-15.026-17.389-12.002-20.54-5.625-13.635-5.956-19.256-3.489-31.116-1.042-35.203 5.754-19.429-.452-25.376-35.155-79.03-35.155-79.03-8.413 85.678-8.393 92.406c.026 8.749-5.72 4.419-5.72 12.1 0 1.55-18.707 41.433-31.28 53.9l-26 20-12-9v-13s11.12-24.121 15-28 18.203-15.754 18.203-21.185 6.743-7.323 2.208-14.524-2.984-10.304-1.432-13.407-1.39-130.26-1.39-130.26Z"})),me||(me=W.createElement("path",{fill:"#3f3d56",d:"m127.073 78.595 40.753-1.958 10.43 17.109s30.46 3.057 26.103 14.513-11.079 90.01-4.92 99.834c3.249 5.184 8.75 22.532 13.22 37.764a19.466 19.466 0 0 1-19.319 24.93c-28.987-.956-72.037-3.221-77.13-8.314-7.758-7.758-14.74-13.965-10.085-16.293s11.313-36.087 11.313-36.087-30.909-97.362-22.842-100.23 30.59-16.117 30.59-16.117Z"})),he||(he=W.createElement("circle",{cx:148.454,cy:39.059,r:28.383,fill:"#ffb6b6"})),de||(de=W.createElement("path",{fill:"#cacaca",d:"m1.184 517.303 315.358.307a1.19 1.19 0 0 0 0-2.381L1.184 514.92a1.19 1.19 0 0 0 0 2.382"})),pe||(pe=W.createElement("path",{fill:"#ffb6b6",d:"m125.78 266.835-7.99-24.05-14.376 2.646 9.352 25.128a8.484 8.484 0 1 0 13.013-3.724"})),fe||(fe=W.createElement("path",{fill:"#3f3d56",d:"m96.917 110.072-.379.158a23.5 23.5 0 0 0-13.96 16.897c-2.038 9.753-4.043 23.86-2.458 37.068 2.8 23.33 4.666 33.594 8.399 41.06s4.665 4.665 3.732 10.264-5.599.933-.933 8.399 7.465 5.599 5.6 9.331-4.667 3.733-.934 8.399 3.733 6.532 4.666 8.398 3.732 15.864 3.732 15.864 14.931-4.666 23.33-2.8c0 0-7.466-13.064-5.6-15.863s4.666-3.733 1.867-6.532-7.466-1.867-2.8-4.666-3.732-31.728-3.732-31.728Z"})),ve||(ve=W.createElement("path",{fill:"#ffb6b6",d:"M321.383 163.22 296.815 157l-5.51 13.54 26.208 5.65a8.484 8.484 0 1 0 3.87-12.971"})),ue||(ue=W.createElement("path",{fill:"#3f3d56",d:"m173.747 103.125-.07.405a23.5 23.5 0 0 0 6.72 20.862c7.12 6.969 17.927 16.255 29.911 22.032 21.166 10.203 30.82 14.158 39.12 15.033s6.445-1.42 10.66 2.382-2.229 5.22 6.574 5.309 8.738-3.276 10.879.307.632 5.941 6.574 5.309 7.514.372 9.59.59 15.377 5.398 15.377 5.398 4.108-15.094 10.203-21.166c0 0-15.028-.744-16.382-3.824s-.633-5.942-4.5-5.09-5.592 5.285-5.439-.154-100.526-54.425-100.526-54.425Z"})),xe||(xe=W.createElement("path",{fill:"#2f2e41",d:"M182.438 34.093c-3.06.95-6.01 1.51-8-1s-1.47-5.38-4.43-6.59a10.47 10.47 0 0 0-7.56.35c-.43.16-.85.34-1.26.52-.23-.2-.46-.39-.71-.57a9.02 9.02 0 0 0-6.49-1.58 8.85 8.85 0 0 1 3.93 3.75c-.82.41-1.65.82-2.49 1.17a24.55 24.55 0 0 1-21.91-1.66c3.28 8.64.73 11.72-4.08 19.61l-.19.46c.48-2.07-5.81-4.46-5.81-1.46a35.8 35.8 0 0 0 2 9c-6.17-9.29-9.81-20.16-7.42-30.59.51-2.19.74-4.54 2.13-6.32 1.39-1.77 3.95-2.81 5.97-1.81a18.818 18.818 0 0 1 30.28-13.5c2.5 1.93 4.47 4.46 6.7 6.71s4.87 4.3 7.99 4.86c1.98.35 4.21.14 5.79 1.39 1.83 1.45 1.85 4 1.84 6.45a9 9 0 0 0-5.07 1.39 8.8 8.8 0 0 1 5.12 1.8.6.6 0 0 1 .08.06c.54 4.12.32 4.99 3.59 7.56"})),ge||(ge=W.createElement("ellipse",{cx:313.116,cy:47.192,fill:"#e6e6e6",rx:5.239,ry:5.22})),ye||(ye=W.createElement("ellipse",{cx:369.473,cy:53.327,fill:"#e6e6e6",rx:5.239,ry:5.22})),Ee||(Ee=W.createElement("ellipse",{cx:410.767,cy:92.173,fill:"#e6e6e6",rx:5.239,ry:5.22})),be||(be=W.createElement("ellipse",{cx:391.394,cy:197.312,fill:"#e6e6e6",rx:5.239,ry:5.22})),we||(we=W.createElement("ellipse",{cx:340.622,cy:221.412,fill:"#e6e6e6",rx:5.239,ry:5.22})),je||(je=W.createElement("ellipse",{cx:287.575,cy:211.625,fill:"#e6e6e6",rx:5.239,ry:5.22})),Me||(Me=W.createElement("ellipse",{cx:250.936,cy:172.779,fill:"#e6e6e6",rx:5.239,ry:5.22})),Oe||(Oe=W.createElement("ellipse",{cx:263.998,cy:71.987,fill:"#e6e6e6",rx:5.239,ry:5.22})),_e||(_e=W.createElement("ellipse",{cx:279.716,cy:120.926,fill:"#e6e6e6",rx:5.239,ry:5.22})),Ce||(Ce=W.createElement("ellipse",{cx:362.888,cy:99.393,fill:"#e6e6e6",rx:5.239,ry:5.22})),Ae||(Ae=W.createElement("ellipse",{cx:375.331,cy:147.026,fill:"#e6e6e6",rx:5.239,ry:5.22})),Ne||(Ne=W.createElement("ellipse",{cx:412.006,cy:148.331,fill:"#e20074",rx:15.063,ry:15.008})),ze||(ze=W.createElement("ellipse",{cx:337.347,cy:176.389,fill:"#e20074",rx:15.063,ry:15.008})),Se||(Se=W.createElement("ellipse",{cx:318.355,cy:84.385,fill:"#e20074",rx:15.063,ry:15.008})),ke||(ke=W.createElement("path",{fill:"#3f3d56",d:"M331.726 78.42c24.432-7.592 50.588.619 75.154-6.39a51 51 0 0 0 15.789-7.415 98 98 0 0 0 11.491-10.227c7.39-7.309 15.416-14.984 26.518-14.899 14.62.111 25.847 10.972 35.592 20.562 1.377 1.355 3.5-.765 2.121-2.122-8.955-8.812-18.63-18.108-31.376-20.738a28.96 28.96 0 0 0-17.116 1.421 44.7 44.7 0 0 0-12.72 8.697c-3.924 3.6-7.545 7.52-11.523 11.062a48 48 0 0 1-14.136 8.923c-11.262 4.484-23.616 5.025-35.594 4.894-15.036-.163-30.43-1.187-44.998 3.34-1.837.57-1.053 3.467.798 2.892"})),Le||(Le=W.createElement("path",{fill:"#3f3d56",d:"m501.628 39.833 7.51 13.24 3.634 6.406c.646 1.138 1.31 2.268 1.939 3.416.386.705 1.23 1.977.424 2.645a3.9 3.9 0 0 1-2.283.357c-1.324.002-2.649-.027-3.973-.04l-7.448-.076-15.393-.156a1.5 1.5 0 0 0 0 3c8.936.09 17.877.28 26.814.272a6.4 6.4 0 0 0 4.385-1.2 4.17 4.17 0 0 0 .796-4.81 46 46 0 0 0-3.034-5.563l-3.27-5.766-7.51-13.24a1.501 1.501 0 0 0-2.591 1.514"})),He||(He=W.createElement("path",{fill:"#e20074",d:"M600.897 72.274h-69.03a2.876 2.876 0 1 1 0-5.752h69.03a2.876 2.876 0 1 1 0 5.752"})),Be||(Be=W.createElement("path",{fill:"#e6e6e6",d:"M600.897 118.602h-69.03a2.876 2.876 0 1 1 0-5.752h69.03a2.876 2.876 0 1 1 0 5.752M668.662 95.438H531.866a2.876 2.876 0 1 1 0-5.752h136.796a2.876 2.876 0 1 1 0 5.752"})),Ve||(Ve=W.createElement("path",{fill:"#e20074",d:"M569.462 214.522h-69.03a2.876 2.876 0 1 1 0-5.753h69.03a2.876 2.876 0 1 1 0 5.753"})),Ie||(Ie=W.createElement("path",{fill:"#e6e6e6",d:"M569.462 260.85h-69.03a2.876 2.876 0 1 1 0-5.753h69.03a2.876 2.876 0 1 1 0 5.753M637.227 237.686H500.431a2.876 2.876 0 1 1 0-5.753h136.796a2.876 2.876 0 1 1 0 5.753"})),Pe||(Pe=W.createElement("path",{fill:"#e20074",d:"M262.968 264.765h-69.03a2.876 2.876 0 1 1 0-5.753h69.03a2.876 2.876 0 1 1 0 5.753"})),qe||(qe=W.createElement("path",{fill:"#e6e6e6",d:"M262.968 311.093h-69.03a2.876 2.876 0 1 1 0-5.752h69.03a2.876 2.876 0 1 1 0 5.752M330.734 287.93H193.938a2.876 2.876 0 1 1 0-5.753h136.796a2.876 2.876 0 1 1 0 5.752"})),Te||(Te=W.createElement("path",{fill:"#3f3d56",d:"m409.377 148.617 51.615 38.94 14.691 11.084c1.541 1.163 3.038-1.441 1.514-2.59l-51.615-38.941-14.69-11.084c-1.542-1.163-3.039 1.441-1.515 2.59"})),Re||(Re=W.createElement("path",{fill:"#3f3d56",d:"M453.298 201.017a92 92 0 0 0 35.97 8.977 1.515 1.515 0 0 0 1.446-1.898l-7.993-32.084c-.467-1.872-3.36-1.08-2.893.798l7.993 32.083 1.447-1.899a88.3 88.3 0 0 1-34.456-8.568c-1.732-.83-3.256 1.756-1.514 2.59M335.4 175.7l-37.089 53.042-10.453 14.95c-1.109 1.586 1.49 3.086 2.59 1.514l37.089-53.043 10.453-14.95c1.11-1.585-1.49-3.086-2.59-1.514"})),Fe||(Fe=W.createElement("path",{fill:"#3f3d56",d:"M284.588 221.5a91.2 91.2 0 0 0-7.608 36.161 1.515 1.515 0 0 0 1.899 1.447l31.86-9.229a1.501 1.501 0 0 0-.798-2.893l-31.86 9.229 1.899 1.446a87.5 87.5 0 0 1 7.199-34.647c.762-1.753-1.822-3.282-2.59-1.514"})))};var Qe=l(74848);const Ge=[{title:"Best Practices",Svg:Y,description:(0,Qe.jsx)(Qe.Fragment,{children:"Explore the recommended strategies for resource management, such as efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance to ensure robust system performance."}),link:"/docs/best-practices"},{title:"Blueprints",Svg:Ze,description:(0,Qe.jsx)(Qe.Fragment,{children:"Discover tailored out-of-the-box solutions and practical implementations for a range of scenarios. Explore real-world examples demonstrating the versatility and optimal application and infrastructure design using Open Telekom Cloud."}),link:"/docs/blueprints"}];function Xe(e){let{title:t,Svg:l,description:a,link:r}=e;return(0,Qe.jsx)("div",{className:(0,c.A)("col col--6"),children:(0,Qe.jsx)("scale-card",{to:(0,K.Ay)(r),class:"scale-telekom-feature-card",children:(0,Qe.jsxs)("div",{style:{margin:"-24px"},children:[(0,Qe.jsx)("div",{className:"text--center",children:(0,Qe.jsx)(l,{className:i.featureSvg,role:"img"})}),(0,Qe.jsxs)("div",{className:"text--center padding-horiz--md",style:{margin:"0 0 16px 0"},children:[(0,Qe.jsx)(n.A,{as:"h3",style:{margin:"8px"},children:t}),(0,Qe.jsx)("span",{children:a})]})]})})})}function Ke(){return(0,Qe.jsx)("section",{className:i.features,children:(0,Qe.jsx)("div",{className:"container",children:(0,Qe.jsx)("div",{className:"row",children:Ge.map(((e,t)=>(0,Qe.jsx)(Xe,{...e},t)))})})})}const We={item:"item_BTEg",item__inner:"item__inner_nV1L",item__title:"item__title_fqBy"};var Je=l(67408),Ye=l(50060),$e=l(46622),Ue=l(8755),et=l(46774),tt=l(61706),lt=l(60405),ct=l(84706),at=l(72489),rt=l(17909);const nt=[{title:"VPC",text:"Virtual Private Cloud",link:"/docs/tags/vpc",icon:Ye.A},{title:"ECS",text:"Elastic Cloud Server",link:"/docs/tags/ecs",icon:$e.A},{title:"OBS",text:"Object Storage Service",link:"/docs/tags/obs",icon:Ue.A},{title:"IAM",text:"Identity & Access Management",link:"/docs/tags/iam",icon:et.A},{title:"ELB",text:"Elastic Load Balancing",link:"/docs/tags/elb",icon:tt.A},{title:"DMS",text:"Distributed Message Service",link:"/docs/tags/dms",icon:lt.A},{title:"CCE",text:"Cloud Container Engine",link:"/docs/tags/cce",icon:ct.A},{title:"SWR",text:"Software Repository for Containers",link:"/docs/tags/swr",icon:at.A},{title:"Cloud Create",text:"Multi-Cloud Management Platform",link:"/docs/tags/cloud-create",icon:rt.A}];function it(){return(0,Qe.jsx)("div",{children:(0,Qe.jsx)(Je.A,{callouts:nt})})}var st=l(12692),ot=l(27366),mt=l(9967),ht=l(58657),dt=l(28426),pt=l(86732);const ft=[{title:"ASM",text:"Application Service Mesh (Istio-Based)",link:"https://docs.otc.t-systems.com/application-service-mesh/index.html",icon:st.A},{title:"CCI",text:"Serverless Container Engine",link:"https://docs.otc.t-systems.com/cloud-container-instance/index.html",icon:ot.A},{title:"Config",text:"Continuously Evaluate Resource Configuration",link:"https://docs.otc.t-systems.com/config/index.html",icon:mt.A},{title:"OCR",text:"Optical Character Recognition",link:"https://docs.otc.t-systems.com/optical-character-recognition/index.html",icon:ht.A},{title:"FGS",text:"FunctionGraph",link:"https://docs.otc.t-systems.com/function-graph/index.html",icon:dt.A},{title:"GeminiDB",text:"Distributed, Multi-Model NoSQL Database Service",link:"https://docs.otc.t-systems.com/geminidb/index.html",icon:pt.A}];function vt(){return(0,Qe.jsx)("div",{children:(0,Qe.jsx)(Je.A,{callouts:ft})})}function ut(){return(0,Qe.jsx)("section",{className:"container",style:{paddingTop:"20px",paddingBottom:"45px"},children:(0,Qe.jsxs)("div",{className:(0,c.A)("row row--no-gutters",We.item),children:[(0,Qe.jsx)("div",{className:(0,c.A)("col col--4",We.item__inner),children:(0,Qe.jsxs)("div",{children:[(0,Qe.jsx)("h1",{className:(0,c.A)("margin-bottom--md",We.item__title),children:"Explore our Featured Services"}),(0,Qe.jsx)("p",{className:"margin-bottom--md",children:"Check out our collection of technical solutions, best practices and cool tips for the most popular services of Open Telekom Cloud."}),(0,Qe.jsx)("a",{className:"button button--secondary",href:(0,K.Ay)("/docs/best-practices"),children:"Explore our Best Practices"})]})}),(0,Qe.jsx)("div",{className:"col col--8","aria-hidden":"true",style:{paddingTop:"40px"},children:(0,Qe.jsx)(it,{})}),(0,Qe.jsx)("div",{className:(0,c.A)("col col--4",We.item__inner),children:(0,Qe.jsxs)("div",{children:[(0,Qe.jsx)("h1",{className:(0,c.A)("margin-bottom--md",We.item__title),children:"What's new?"}),(0,Qe.jsx)("p",{className:"margin-bottom--md",children:"Explore the technical documentation of our brand new services in Help Center."}),(0,Qe.jsx)("a",{className:"button button--secondary",href:"https://www.open-telekom-cloud.com/en/products-services/roadmap",target:"_blank",children:"Check the Portfolio Roadmap"})]})}),(0,Qe.jsx)("div",{className:"col col--8","aria-hidden":"true",style:{paddingTop:"40px"},children:(0,Qe.jsx)(vt,{})})]})})}const xt={item:"item_FxE2",item__inner:"item__inner_Hj0M",item__title:"item__title_AWTr"};function gt(){return(0,Qe.jsx)("div",{className:(0,c.A)("row row--no-gutters ",xt.item),children:(0,Qe.jsx)("div",{className:(0,c.A)("col col--12",xt.item__inner),children:(0,Qe.jsxs)("div",{children:[(0,Qe.jsx)("h1",{className:(0,c.A)("margin-bottom--md",xt.item__title),children:"Ask a Technical Question"}),(0,Qe.jsx)("p",{className:"margin-bottom--md",children:"Connect with people sharing the same passion for Open Telekom Cloud. Discover our exciting upcoming Events and Webinars!"}),(0,Qe.jsx)("a",{className:"button button--secondary",href:"https://community.open-telekom-cloud.com/community/?id=community_home",target:"_blank",children:"Join our Community Forum"})]})})})}const yt={item:"item_XzKz",item__inner:"item__inner_Ogs7",item__title:"item__title_n8Sg"};function Et(){return(0,Qe.jsx)("div",{className:(0,c.A)("row row--no-gutters",yt.item),children:(0,Qe.jsx)("div",{className:(0,c.A)("col col--12",yt.item__inner),children:(0,Qe.jsxs)("div",{children:[(0,Qe.jsx)("h1",{className:"margin-bottom--md",children:"Contribute"}),(0,Qe.jsx)("p",{className:"margin-bottom--md",children:"Share with our vibrant community all that cool staff you've built with Open Telekom Cloud."}),(0,Qe.jsx)("a",{href:"https://github.com/opentelekomcloud/docs-next",className:"button button--secondary",style:{marginRight:"10px",marginBottom:"10px"},children:"Join us on GitHub"})]})})})}function bt(){const{siteConfig:e}=(0,a.default)();return(0,Qe.jsx)(r.A,{title:`${e.title}`,description:`${e.title}`,children:(0,Qe.jsxs)("main",{children:[(0,Qe.jsx)(Ke,{}),(0,Qe.jsx)(ut,{}),(0,Qe.jsx)("section",{className:"container",style:{paddingTop:"20px",paddingBottom:"45px"},children:(0,Qe.jsxs)("div",{className:(0,c.A)("row"),children:[(0,Qe.jsx)("div",{className:(0,c.A)("col col--6"),children:(0,Qe.jsx)(Et,{})}),(0,Qe.jsx)("div",{className:(0,c.A)("col col--6"),children:(0,Qe.jsx)(gt,{})})]})})]})})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1e5166c2.ddd5fefb.js b/pr-preview/pr-186/assets/js/1e5166c2.ddd5fefb.js new file mode 100644 index 000000000..d4d350f67 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1e5166c2.ddd5fefb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[11276],{28711:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var t=s(74848),i=s(28453);const r={id:"auditing-and-analyzing-logins-and-logouts-with-functiongraph",title:"Auditing and Analyzing Logins and Logouts with Functiongraph",tags:["cts","cts-trigger","functiongraph","events","logs"]},o="Auditing and Analyzing Logins and Logouts with Functiongraph",a={id:"best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph",title:"Auditing and Analyzing Logins and Logouts with Functiongraph",description:"Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.",source:"@site/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph.md",sourceDirName:"best-practices/management-and-deployment/cloud-trace",slug:"/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph.md",tags:[{inline:!0,label:"cts",permalink:"/docs-next/pr-preview/pr-186/docs/tags/cts"},{inline:!0,label:"cts-trigger",permalink:"/docs-next/pr-preview/pr-186/docs/tags/cts-trigger"},{inline:!0,label:"functiongraph",permalink:"/docs-next/pr-preview/pr-186/docs/tags/functiongraph"},{inline:!0,label:"events",permalink:"/docs-next/pr-preview/pr-186/docs/tags/events"},{inline:!0,label:"logs",permalink:"/docs-next/pr-preview/pr-186/docs/tags/logs"}],version:"current",frontMatter:{id:"auditing-and-analyzing-logins-and-logouts-with-functiongraph",title:"Auditing and Analyzing Logins and Logouts with Functiongraph",tags:["cts","cts-trigger","functiongraph","events","logs"]},sidebar:"bestPracticesSidebar",previous:{title:"Resource Group Monitoring",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-eye/resource-group-monitoring"},next:{title:"Configuring Private Domain Names for ECSs",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/domain-name-service/configuring-private-domain-names-for-ecss"}},c={},l=[{value:"Solution Design",id:"solution-design",level:2},{value:"Enabling CTS",id:"enabling-cts",level:2},{value:"Creating an Agency",id:"creating-an-agency",level:2},{value:"Pushing Alarm Messages",id:"pushing-alarm-messages",level:2},{value:"Building a Program",id:"building-a-program",level:2},{value:"Creating a Function",id:"creating-a-function",level:3},{value:"Setting Environment Variables",id:"setting-environment-variables",level:3},{value:"Adding an Event Source",id:"adding-an-event-source",level:2},{value:"Processing Operation Records",id:"processing-operation-records",level:2}];function d(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"auditing-and-analyzing-logins-and-logouts-with-functiongraph",children:"Auditing and Analyzing Logins and Logouts with Functiongraph"}),"\n",(0,t.jsxs)(n.p,{children:["Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. ",(0,t.jsx)(n.a,{href:"#figure-1",children:"Figure 1"})," shows the procedure."]}),"\n",(0,t.jsx)(n.h2,{id:"solution-design",children:"Solution Design"}),"\n",(0,t.jsx)("a",{id:"figure-1"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Figure 1",src:s(60435).A+"",width:"753",height:"460"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Figure 1"})," Flowchart"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Operation records collected by CTS can be quickly analyzed and operations from specified IP addresses can be filtered out."}),"\n",(0,t.jsx)(n.li,{children:"CTS processes and analyzes data in response to log events in a serverless architecture, which features automatic scaling, no O&M, and pay-per-use billing."}),"\n",(0,t.jsx)(n.li,{children:"CTS sends alarm notifications through SMN."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"enabling-cts",children:"Enabling CTS"}),"\n",(0,t.jsx)(n.p,{children:"Configure a tracker, and the system immediately starts recording operations based on the new rule."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Log in to the console."}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.img,{src:s(55435).A+"",width:"15",height:"18"})," in the upper left corner of the console and select a region and a project."]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.img,{src:s(72312).A+"",width:"25",height:"23"})," in the upper left corner and choose ",(0,t.jsx)(n.em,{children:"Management & Governance"})," -> ",(0,t.jsx)(n.em,{children:"Cloud Trace Service"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["On the displayed page, choose ",(0,t.jsx)(n.em,{children:"Tracker List"})," in the navigation pane on the left."]}),"\n",(0,t.jsxs)(n.li,{children:["Locate a data tracker and click ",(0,t.jsx)(n.em,{children:"Configure"})," in the ",(0,t.jsx)(n.em,{children:"Operation"})," column.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Operation"}),": Select the data operations that need to be recorded."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Transfer to OBS"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["If you select ",(0,t.jsx)(n.em,{children:"Yes"}),", select an existing OBS bucket or create one directly on the ",(0,t.jsx)(n.em,{children:"Configure Tracker"})," page and set ",(0,t.jsx)(n.strong,{children:"File Prefix"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["If you select ",(0,t.jsx)(n.em,{children:"No"}),", no configuration is required."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Create OBS Bucket"}),": If this function is enabled, an OBS bucket will be created automatically with the name you enter. If this function is disabled, select an existing OBS bucket."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"OBS Bucket"}),": You can create an OBS bucket or select an existing OBS bucket."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Retention Period"}),": Select the duration for storing traces in the OBS bucket."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"File Prefix"}),": The prefix is used to mark a transferred trace file. Your specified prefix will be automatically added to the beginning of the name of a transferred file, helping you quickly filter files."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Verify Trace File"}),": When this function is enabled, integrity verification will be performed to check whether trace files in OBS buckets have been tampered with."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.em,{children:"OK"})," to complete the tracker configuration."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"creating-an-agency",children:"Creating an Agency"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Log in to the ",(0,t.jsx)(n.a,{href:"https://console.otc.t-systems.com/iam/?locale=en-us",children:(0,t.jsx)(n.em,{children:"Identity and Access Management (IAM) console"})}),". In the navigation pane on the left, choose ",(0,t.jsx)(n.em,{children:"Agencies"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["On the ",(0,t.jsx)(n.em,{children:"Agencies"})," page, click ",(0,t.jsx)(n.em,{children:"Create Agency"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Set the agency information."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["For ",(0,t.jsx)(n.strong,{children:"Agency Name"}),", enter ",(0,t.jsx)(n.code,{children:"serverless\\_trust"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["For ",(0,t.jsx)(n.strong,{children:"Agency Type"}),", select ",(0,t.jsx)(n.strong,{children:"Cloud service"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["For ",(0,t.jsx)(n.strong,{children:"Cloud service"}),", select ",(0,t.jsx)(n.strong,{children:"FunctionGraph"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["For ",(0,t.jsx)(n.strong,{children:"Validity Period"}),", select ",(0,t.jsx)(n.strong,{children:"Unlimited"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.em,{children:"Assign Permissions"}),". On the ",(0,t.jsx)(n.em,{children:"Assign Permissions"})," page, select ",(0,t.jsx)(n.strong,{children:"Tenant Administrator"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Users with the ",(0,t.jsx)(n.strong,{children:"Tenant Administrator"})," permission can perform any operations on all cloud resources of the enterprise."]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Click ",(0,t.jsx)(n.em,{children:"OK"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"pushing-alarm-messages",children:"Pushing Alarm Messages"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a topic named ",(0,t.jsx)(n.code,{children:"cts\\_test"})," on the ",(0,t.jsx)(n.em,{children:"SMN console"}),". For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/simple-message-notification/umn/topic_management/creating_a_topic.html",children:"Creating a Topic"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Add subscriptions to the ",(0,t.jsx)(n.code,{children:"cts\\_test"})," topic to push alarm messages. For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/simple-message-notification/umn/topic_management/adding_a_subscription_to_a_topic.html",children:"Adding a Subscription"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Alarm messages can be sent by ",(0,t.jsx)(n.strong,{children:"emails"}),", ",(0,t.jsx)(n.strong,{children:"SMS"})," messages, and ",(0,t.jsx)(n.strong,{children:"HTTP/HTTPS"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"In this example, when log events trigger the specified function, the function filters operations that are performed by users not in the IP address whitelist, and pushes alarm messages to the subscribers."}),"\n"]})}),"\n",(0,t.jsx)(n.h2,{id:"building-a-program",children:"Building a Program"}),"\n",(0,t.jsx)(n.p,{children:"This section describes how use the following snippet for log alarms."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-python",children:'import json\nimport base64\nimport sys\nimport os\nimport requests\n\ndef handler(event, context):\n text = json.dumps(event["cts"])\n ctsmsg = json.loads(text)\n \n #Resource operator IP\n source_ip = ctsmsg["source_ip"]\n #trace_name\n action = ctsmsg["trace_name"]\n \n SMN_Topic = context.getUserData(\'SMN_Topic\')\n regionName = context.getUserData(\'RegionName\')\n ip = context.getUserData(\'IP\')\n projectId = context.getProjectID()\n \n if (action not in ("login" or "logout")):\n \treturn "action is fail"\n \n if ip.find(source_ip) < 0 :\n return "reasonable " + action\n \n logInfo = " IP:"+source_ip + ", Action:"+action\n\n body = {"message" :"Illegal operation["+logInfo+"]", "subject":"CTSTrigger"}\n headers = {\'X-Auth-Token\': context.getToken(), "accept": "application/json"}\n url= "https://smn."+regionName+".myhuaweicloud.com/v2/"+projectId+"/notifications/topics/urn:smn:"+regionName+":"+projectId+":"+SMN_Topic+"/publish"\n\n response = requests.post(url,headers=headers,data=json.dumps(body))\n if response.status_code != 200:\n print (response.status_code)\n return "send alarm message failed."\n\n\n return \'send email success\'\n'})}),"\n",(0,t.jsx)(n.h3,{id:"creating-a-function",children:"Creating a Function"}),"\n",(0,t.jsxs)(n.p,{children:["Create a function for extracting the logs (as shown in the Python snippet below) and upload the code package. For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/function-graph/umn/function_management.html",children:"Function Management"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-python",children:'import json\nimport base64\nimport sys\nimport os\nimport requests\n\nfrom obs import *\n\ncurrent_file_path = os.path.dirname(os.path.realpath(__file__))\n# append current path to search paths, so that we can import some third party libraries.\nsys.path.append(current_file_path)\n\nTEMP_ROOT_PATH = "/tmp/"\nregion = \'eu-de\'\nsecure = True\nsignature = \'v4\'\nport = 443\npath_style = True\n\n\ndef GetObject(obsAddr, bucketName, objName, ak, sk):\n TestObs = ObsClient(access_key_id=ak, secret_access_key=sk,\n is_secure=secure, server=obsAddr, signature=signature, path_style=path_style, region=region,\n ssl_verify=False, port=port,\n max_retry_count=5, timeout=20)\n\n LobjectRequest = GetObjectRequest(content_type=\'application/zip\', content_language=None, expires=None,\n cache_control=None, content_disposition=None, content_encoding=None,\n versionId=None)\n\n Lheaders = GetObjectHeader(range=\'\', if_modified_since=None, if_unmodified_since=None, if_match=None,\n if_none_match=None)\n\n loadStreamInMemory = False\n fileNamePath = TEMP_ROOT_PATH + objName\n resp = TestObs.getObject(bucketName=bucketName, objectKey=objName, downloadPath=fileNamePath,\n getObjectRequest=LobjectRequest, headers=Lheaders, loadStreamInMemory=loadStreamInMemory)\n\n print(\'*** GetObject resp: \', resp)\n\n return (int(resp.status))\n\n\ndef PostObject(obsAddr, bucket, objName, ak, sk):\n obsClient = ObsClient(access_key_id=ak, secret_access_key=sk,\n is_secure=secure, server=obsAddr, signature=signature, path_style=path_style, region=region,\n ssl_verify=False, port=port,\n max_retry_count=5, timeout=20)\n\n Lheaders = PutObjectHeader(md5=None, acl=\'private\', location=None, contentType=\'text/plain\')\n\n Lheaders.sseHeader = SseKmsHeader.getInstance()\n h = PutObjectHeader()\n Lmetadata = {\'key\': \'value\'}\n\n objPath = TEMP_ROOT_PATH + objName\n resp = obsClient.putFile(bucketName=bucket, objectKey=objName, file_path=objPath,\n metadata=Lmetadata, headers=h)\n if isinstance(resp, list):\n for k, v in resp:\n print(\n \'PostObject, objectKey\', k, \'common msg:status:\', v.status, \',errorCode:\', v.errorCode, \',errorMessage:\',\n v.errorMessage)\n else:\n print(\'*** PostObject, common msg: status:\', resp.status, \',errorCode:\', resp.errorCode, \',errorMessage:\',\n resp.errorMessage)\n\ndef checkAlarmLogs(logs):\n alarmlogs = []\n for log in logs:\n logStr = json.dumps(log)\n if "WARN" in logStr or "WRN" in logStr or "ERROR" in logStr or "ERR" in logStr:\n alarmlogs.append(logStr)\n return alarmlogs\n\ndef log_store(fileName, logs):\n fileNamePath = TEMP_ROOT_PATH + fileName\n with open(fileNamePath, \'a\') as f:\n print ("*** Open log file"+fileNamePath+" successfully")\n for log in logs:\n logStr = json.dumps(log).replace(\'\\\\\',\'\')\n if "WARN" in logStr or "WRN" in logStr or "ERROR" in logStr or "ERR" in logStr:\n f.write(logStr + \'\\n\')\n return fileName\n\ndef handler(event, context):\n # Obtains the data of lts logs.\n print ("*********the data of lts logs********")\n encodingData = event["lts"]["data"]\n data = base64.b64decode(encodingData) # Base64 decoding is required because the information of lts logs has been encoded.\n text = json.loads(data)\n # Output log group id\n print ("*** log group id:"+text["log_group_id"])\n # Output log topic id\n print ("*** log topic id:"+text["log_topic_id"])\n # Obtains lts log list\n logs = text["logs"]\n # Check whether the alarm log existed\n alarmLogs = checkAlarmLogs(logs)\n if len(alarmLogs) == 0:\n print ("*** no need to send alarm message")\n return "no need to send alarm message"\n \n # send smn message \n print ("***********send smn message **********")\n SMN_Topic = context.getUserData(\'SMN_Topic\')\n if not SMN_Topic.strip():\n print (\'*** No SMN topic. Please configure "SMN_Topic" environment variable\')\n return "Environment variable configuration error"\n projectId = context.getProjectID()\n body = {"message" :"Get warning message.The content of message is:"+json.dumps(alarmLogs).replace(\'\\\\\',\'\'), "subject":"TimeTrigger"}\n headers = {\'X-Auth-Token\': context.getToken(), "accept": "application/json"}\n url= "https://smn." + region + ".myhuaweicloud.com/v2/"+projectId+"/notifications/topics/urn:smn:" + region + ":"+projectId+":"+SMN_Topic+"/publish"\n response = requests.post(url,headers=headers,data=json.dumps(body))\n if response.status_code != 200:\n print ("*** send SMN message failed. resp statusCode:"+str(response.status_code))\n return "send alarm message failed."\n print ("*** send SMN message to terminal successfully")\n \n print ("***********strore log file to obs bucket **********")\n obs_address = context.getUserData(\'obs_address\')\n storeBucket = context.getUserData(\'obs_store_bucket\')\n storeObjName = context.getUserData(\'obs_store_objName\')\n if not obs_address.strip() or not storeBucket.strip() or not storeObjName.strip():\n print (\'*** No obs environment variable. Please configure obs environment variable\')\n return "Environment variable configuration error"\n\n ak = context.getAccessKey()\n sk = context.getSecretKey()\n if not ak.strip() or not sk.strip():\n print ("*** Can not get accessKey or secretKey. Please check authority of IAM service")\n return "accessKey or secretKey error" \n\n print ("*** obs_address: " + obs_address)\n print ("*** store bucket: " + storeBucket)\n print ("*** store objName: " + storeObjName)\n\n # download file uploaded by user from obs\n # if store object uploaded not exist, automatically create OBS object.\n status = GetObject(obs_address, storeBucket, storeObjName, ak, sk)\n if status != 200:\n print ("*** get store object failed. Create a new OBS object:"+storeObjName)\n \n outFile = log_store(storeObjName, alarmLogs)\n \n # upload file to obs bucket\n PostObject(obs_address, storeBucket, outFile, ak, sk)\n return \'log store success\'\n'})}),"\n",(0,t.jsx)(n.p,{children:"This function analyzes received operation records, filters logins or logouts from unauthorized IP addresses using a whitelist, and sends alarms under a specified SMN topic."}),"\n",(0,t.jsx)(n.h3,{id:"setting-environment-variables",children:"Setting Environment Variables"}),"\n",(0,t.jsxs)(n.p,{children:["On the ",(0,t.jsx)(n.em,{children:"Configuration"})," tab page of the function, set the environment variables and SMN topic name, as shown in table below:"]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Environment Variable"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMN_Topic"}),(0,t.jsx)(n.td,{children:"SMN topic name."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"RegionName"}),(0,t.jsx)(n.td,{children:"Region."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"IP"}),(0,t.jsx)(n.td,{children:"IP address whitelist."})]})]})]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Table 1"})," Environment variable description"]}),"\n",(0,t.jsxs)(n.p,{children:["For details about how to set environment variables, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/function-graph/umn/configuring_functions/configuring_environment_variables.html",children:"Using Environment Variables"}),", as shown in ",(0,t.jsx)(n.a,{href:"#figure-2",children:"Figure 2"}),"."]}),"\n",(0,t.jsx)("a",{id:"figure-2"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:s(69273).A+"",width:"859",height:"307"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Figure 2"})," Setting environment variables"]}),"\n",(0,t.jsx)(n.h2,{id:"adding-an-event-source",children:"Adding an Event Source"}),"\n",(0,t.jsxs)(n.p,{children:["Create a CTS trigger, as shown in ",(0,t.jsx)(n.a,{href:"#enabling-cts",children:"Enabling CTS"}),". For details, see ",(0,t.jsx)(n.a,{href:"https://docs.otc.t-systems.com/function-graph/umn/creating_triggers/using_a_cts_trigger.html",children:"Using a CTS Trigger"}),"."]}),"\n",(0,t.jsx)("a",{id:"figure-3"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:s(38949).A+"",width:"671",height:"560"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Figure 3"})," Creating a CTS trigger"]}),"\n",(0,t.jsx)(n.p,{children:"CTS records the logins and logouts of users on IAM."}),"\n",(0,t.jsx)(n.h2,{id:"processing-operation-records",children:"Processing Operation Records"}),"\n",(0,t.jsxs)(n.p,{children:["When a user performs login or logout using an account, the subscription service log will be triggered and a function will be directly invoked. The system then checks whether the IP address of the current login or logout account is in the whitelist based on function code. If the IP address is not in the whitelist, SMN will send notifications, as shown in ",(0,t.jsx)(n.a,{href:"#figure-4",children:"Figure 4"}),"."]}),"\n",(0,t.jsx)("a",{id:"figure-4"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://support.huaweicloud.com/intl/en-us/bestpractice-cts/en-us_image_0000001312598869.png",alt:""})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Figure 4"})," Alarm notification sent by email"]}),"\n",(0,t.jsx)(n.p,{children:"The email contains the unauthorized IP address and user operation (login or logout)."}),"\n",(0,t.jsxs)(n.p,{children:["On the ",(0,t.jsx)(n.em,{children:"Monitoring"})," tab page of the function, check the number of invocations, as shown in ",(0,t.jsx)(n.a,{href:"#figure-5",children:"Figure 5"}),"."]}),"\n",(0,t.jsx)("a",{id:"figure-"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Figure 5"})," Function metrics",(0,t.jsx)(n.br,{}),"\n",(0,t.jsx)(n.img,{src:"https://support.huaweicloud.com/intl/en-us/bestpractice-cts/en-us_image_0000001312357985.png",alt:""})]})]})}function g(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},69273:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/en-us_image_0000001264392960-9054719e1a3dce557972321447efaadb.png"},60435:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/en-us_image_0000001264679162-167335dc9b9138298f172342e243483d.png"},38949:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/en-us_image_0000001312436037-e3255c9a57e3bf03e77905d1bad381f0.png"},55435:(e,n,s)=>{s.d(n,{A:()=>t});const t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAASCAYAAACEnoQPAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAEXRFWHRTb2Z0d2FyZQBTbmlwYXN0ZV0Xzt0AAAGkSURBVDiNndO/i+JAGMfhj8eQLFYagkUKbSyEYCysRLCwsFJEwc7av8tCEGJnIfaaSkWxEWzFFCIqGAKJgbviUC5m2Vv2W87MMzPv/Ih5nvebH+bXT+F/8e12+xKL94bdbodlWTiO82pLJpM0m00SiURobOzfmufzOcvlEgBZllEUhcvlgud5ALRaLTKZTBTbto1pmgghaDQaoUGr1YrZbIYQgl6vhyRJ4ZoXiwUAlUrlBZ81F4tFdF0nCALW6/Vr0he+3W4IIcjlcgAMBgP6/T6TyQSAQqEAwPF4jOJnJEnC933u9zsAl8sl1P94PKL44+ODIAiwbRtJkmg2mxiGQbvdBuBwOACgKEoUZ7NZADabDQCaplGtVonH48DfKwTQdT2K8/k8siyz3+85nU6hrW63W87nM6qqomlaFEuSRLlcBmA8HuP7PgCu62JZFgC1Wi00aejADMMgnU7jOA6maeL7PqPRCM/zKJVKpFKpEI69/yrf9xkOh1yvV4QQBEGAqqp0u13e8+lVdTodZFn+En668jOu6zKdTqnX66/n+G38nfwBKbqv10VnRowAAAAASUVORK5CYII="},72312:(e,n,s)=>{s.d(n,{A:()=>t});const t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAXCAYAAAD+4+QTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAEXRFWHRTb2Z0d2FyZQBTbmlwYXN0ZV0Xzt0AAABSSURBVEiJY/z///9/BhoDJlpbQDdLWGCM9+8/MKRllTJcvHyNIgP1dbUYZk3rZhAUFICL0cUnjKMRPzItGU3CJIHhE/HDx5LRJEwSGD4RTxdLANA6KyHkPZlqAAAAAElFTkSuQmCC"},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(96540);const i={},r=t.createContext(i);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/1f391b9e.73967ce0.js b/pr-preview/pr-186/assets/js/1f391b9e.73967ce0.js new file mode 100644 index 000000000..318c0e526 --- /dev/null +++ b/pr-preview/pr-186/assets/js/1f391b9e.73967ce0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[66061],{67973:(e,a,s)=>{s.r(a),s.d(a,{default:()=>x});s(96540);var t=s(34164),d=s(1003),l=s(17559),i=s(74371),r=s(88509),n=s(67763),c=s(50996),o=s(12153);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var p=s(74848);function x(e){const{content:a}=e,{metadata:{title:s,editUrl:x,description:g,frontMatter:h,unlisted:j,lastUpdatedBy:_,lastUpdatedAt:A},assets:v}=a,{keywords:u,wrapperClassName:w,hide_table_of_contents:f}=h,N=v.image??h.image,k=!!(x||A||_);return(0,p.jsx)(d.e3,{className:(0,t.A)(w??l.G.wrapper.mdxPages,l.G.page.mdxPage),children:(0,p.jsxs)(i.A,{children:[(0,p.jsx)(d.be,{title:s,description:g,keywords:u,image:N}),(0,p.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,p.jsxs)("div",{className:(0,t.A)("row",m.mdxPageWrapper),children:[(0,p.jsxs)("div",{className:(0,t.A)("col",!f&&"col--8"),children:[j&&(0,p.jsx)(c.A,{}),(0,p.jsx)("article",{children:(0,p.jsx)(r.A,{children:(0,p.jsx)(a,{})})}),k&&(0,p.jsx)(o.A,{className:(0,t.A)("margin-top--sm",l.G.pages.pageFooterEditMetaRow),editUrl:x,lastUpdatedAt:A,lastUpdatedBy:_})]}),!f&&a.toc.length>0&&(0,p.jsx)("div",{className:"col col--2",children:(0,p.jsx)(n.A,{toc:a.toc,minHeadingLevel:h.toc_min_heading_level,maxHeadingLevel:h.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2032.bed23702.js b/pr-preview/pr-186/assets/js/2032.bed23702.js new file mode 100644 index 000000000..67bed439f --- /dev/null +++ b/pr-preview/pr-186/assets/js/2032.bed23702.js @@ -0,0 +1,239 @@ +"use strict"; +exports.id = 2032; +exports.ids = [2032]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 22032: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_sidebar_nav: () => (/* binding */ SidebarNav) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); + + + + +const sidebarNavCss = ":host{--max-width:15rem;--spacing-indent:var(--telekom-spacing-composition-space-08);--spacing-collapsible:var(--telekom-spacing-composition-space-06);--opacity-chevron:0;--left-current-border:0;--color-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-active:var(--telekom-color-text-and-icon-primary-pressed);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--color-toggle-button:var(--telekom-color-ui-regular);--border-y-toggle-button:1px solid var(--telekom-color-ui-faint);--radius-toggle-button:var(--telekom-radius-small)}.sidebar-nav--collapsible{--max-width:none;--spacing-indent:0;--opacity-chevron:1;--left-current-border:calc(-1 * var(--spacing-collapsible));padding-right:var(--spacing-collapsible);padding-left:var(--spacing-collapsible)}.sidebar-nav__list{list-style:none;max-width:var(--max-width);padding-left:0;margin-top:0;margin-bottom:0}.sidebar-nav__toggle-button{box-sizing:border-box;appearance:none;border:0;background-color:transparent;color:var(--color-toggle-button);width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;text-decoration:none;font-family:inherit;font-size:1rem;padding-top:1rem;padding-right:calc(0.5 * var(--spacing-indent));padding-bottom:1rem;padding-left:var(--spacing-indent);border-radius:var(--radius-toggle-button);border-bottom:var(--border-y-toggle-button);border-top:var(--border-y-toggle-button);cursor:pointer}.sidebar-nav__toggle-button:hover{color:var(--color-hover)}.sidebar-nav__toggle-button:active{color:var(--color-active)}.sidebar-nav__toggle-button:focus{outline:var(--focus-outline)}[aria-expanded='true'] .sidebar-nav__icon{transform:rotate(0.5turn)}"; + +const SidebarNav = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** Set to `true` to make the sidebar toggleable (useful for small screens) */ + this.collapsible = false; + /** Automatically set `collapsible` based on this media query */ + this.collapsibleMediaQuery = '(max-width: 30em)'; + /** Label for toggle button */ + this.collapsibleLabel = 'Menu'; + this.collapsed = true; + this.handleMediaQueryChange = (event) => { + this.collapsible = event.matches; + }; + this.toggle = () => { + this.collapsed = !this.collapsed; + }; + } + componentDidLoad() { + this.setNestingLevelOnChildren(); + this.setMatchMedia(); + } + disconnectedCallback() { + if (this.mq != null) { + this.mq.removeListener(this.handleMediaQueryChange); + } + } + componentDidRender() { + if (this.el.hasAttribute('aria-label')) { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "ariaLabel" is deprecated. Please use the "ariaLabelSidebarNav" property!', + type: 'warn', + source: this.el, + }); + } + } + /** + * Set `nesting-level` and `condensed` attributes in + * and children, + * so styling different levels "automatically" is possible. + */ + setNestingLevelOnChildren() { + function setNestingLevel(el, level = 1) { + Array.from(el.children).forEach((child) => { + if (child.tagName.toUpperCase() === 'SCALE-SIDEBAR-NAV-COLLAPSIBLE') { + setNestingLevel(child, level + 1); + if (!child.hasAttribute('nesting-level')) { + child.setAttribute('nesting-level', String(level)); + } + if (level === 2 && !child.hasAttribute('condensed')) { + child.setAttribute('condensed', 'true'); + } + } + if (child.tagName.toUpperCase() === 'SCALE-SIDEBAR-NAV-ITEM') { + if (!child.hasAttribute('nesting-level')) { + child.setAttribute('nesting-level', String(level)); + } + if (level === 3 && !child.hasAttribute('condensed')) { + child.setAttribute('condensed', 'true'); + } + } + }); + } + setNestingLevel(this.el); + } + setMatchMedia() { + if (this.collapsibleMediaQuery) { + this.mq = window.matchMedia(this.collapsibleMediaQuery); + // Recent versions of Safari throw with `addEventListener` + // https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener + this.mq.addListener(this.handleMediaQueryChange); + this.collapsible = this.mq.matches; + } + } + render() { + const label = this.ariaLabelSidebarNav + ? { 'aria-label': this.ariaLabelSidebarNav } + : {}; + const hidden = this.collapsible ? { hidden: this.collapsed } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: this.getBasePartMap(), class: this.getCssClassMap() }, this.collapsible === true && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", { part: "toggle-button", class: "sidebar-nav__toggle-button", "aria-expanded": this.collapsed ? 'false' : 'true', onClick: this.toggle }, this.collapsibleLabel, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-down", { part: "icon", class: "sidebar-nav__icon", size: 20 }))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", Object.assign({ part: "nav" }, label, hidden), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("ul", { part: "list", class: "sidebar-nav__list", role: "list" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const component = 'sidebar-nav'; + const prefix = mode === 'basePart' ? '' : `${component}--`; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)(component, this.collapsible && `${prefix}collapsible`); + } + get el() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +SidebarNav.style = sidebarNavCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2033.18f0dafb.js b/pr-preview/pr-186/assets/js/2033.18f0dafb.js new file mode 100644 index 000000000..76445cde2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2033.18f0dafb.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2033; +exports.ids = [2033]; +exports.modules = { + +/***/ 82033: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_stopwatch: () => (/* binding */ ContentStopwatch) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentStopwatch = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.5 1v1.5h-1.75v1.538a9.45 9.45 0 015.144 2.024l.265.218 1.311-1.31 1.06 1.06-1.31 1.311A9.453 9.453 0 0121.5 13.5c0 5.238-4.262 9.5-9.5 9.5-5.239 0-9.5-4.262-9.5-9.5 0-2.232.778-4.283 2.072-5.906l.209-.253L3.47 6.03l1.06-1.06 1.311 1.31a9.453 9.453 0 015.048-2.207l.361-.035V2.5H9.5V1h5zM12 7a6.5 6.5 0 016.496 6.267l.004.233H12V7z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.5 1v1.5h-1.75v1.538a9.45 9.45 0 015.144 2.024l.265.218 1.311-1.31 1.06 1.06-1.31 1.311A9.453 9.453 0 0121.5 13.5c0 5.238-4.262 9.5-9.5 9.5-5.239 0-9.5-4.262-9.5-9.5 0-2.232.778-4.283 2.072-5.906l.209-.253L3.47 6.03l1.06-1.06 1.311 1.31a9.453 9.453 0 015.048-2.207l.361-.035V2.5H9.5V1h5zM12 5.5c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8zM12 7a6.5 6.5 0 016.496 6.267l.004.233H12V7z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentStopwatch.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/20695155.bc538bb9.js b/pr-preview/pr-186/assets/js/20695155.bc538bb9.js new file mode 100644 index 000000000..bac59322b --- /dev/null +++ b/pr-preview/pr-186/assets/js/20695155.bc538bb9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[73730],{87060:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var n=o(74848),i=o(28453);const r={id:"caf",title:"Cloud Adoption Framework",sidebar_position:1},s="Cloud Adoption Framework",c={id:"caf/caf",title:"Cloud Adoption Framework",description:"Welcome to the Open Telekom Cloud Architecture Center Best Practices.",source:"@site/docs/caf/index.md",sourceDirName:"caf",slug:"/caf/",permalink:"/docs-next/pr-preview/pr-186/docs/caf/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/caf/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{id:"caf",title:"Cloud Adoption Framework",sidebar_position:1},sidebar:"cafSidebar"},a={},d=[];function u(e){const t={h1:"h1",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"cloud-adoption-framework",children:"Cloud Adoption Framework"}),"\n",(0,n.jsx)(t.p,{children:"Welcome to the Open Telekom Cloud Architecture Center Best Practices.\nHere we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that\nenhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as\nefficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance\nto ensure robust system performance. This section serves as a valuable resource for architects and developers\nto implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud\ninfrastructure."})]})}function l(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},28453:(e,t,o)=>{o.d(t,{R:()=>s,x:()=>c});var n=o(96540);const i={},r=n.createContext(i);function s(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/20908.2199944b.js b/pr-preview/pr-186/assets/js/20908.2199944b.js new file mode 100644 index 000000000..3752c837a --- /dev/null +++ b/pr-preview/pr-186/assets/js/20908.2199944b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[20908],{20908:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_content_food:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M5.002 1v6.25c0 1.24 1.009 2.25 2.25 2.25a2.253 2.253 0 002.244-2.096l.005-.154V1h1.5v6.25a3.75 3.75 0 01-2.062 3.346l-.177.084.61 10.573a2.124 2.124 0 11-4.244.152l.003-.152.61-10.573a3.755 3.755 0 01-2.234-3.223l-.006-.207V1h1.5zM17.23 0c1.334 0 2.46.958 2.688 2.256l.024.172 1.026 9.24a3.005 3.005 0 01-.745 2.333 3.005 3.005 0 01-2.04.993l-.196.006h-.203l.713 6.269a2.005 2.005 0 11-3.991.376l-.005-.15V2.73A2.732 2.732 0 0117.23 0zM8 1v6.25a.75.75 0 01-1.493.102l-.006-.102V1h1.5z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M17.229 0c1.334 0 2.46.958 2.688 2.256l.024.172 1.027 9.24a3.005 3.005 0 01-.746 2.333 3.005 3.005 0 01-2.04.993l-.195.006h-.203l.713 6.269a2.005 2.005 0 11-3.992.376l-.005-.15V2.73A2.732 2.732 0 0117.229 0zM5 1v6.25C5 8.49 6.01 9.5 7.25 9.5a2.253 2.253 0 002.245-2.096L9.5 7.25V1H11v6.25a3.75 3.75 0 01-2.062 3.346l-.178.084.61 10.573a2.124 2.124 0 11-4.244.152l.003-.152.61-10.573a3.755 3.755 0 01-2.233-3.223L3.5 7.25V1H5zm12.229.5c-.635 0-1.16.485-1.223 1.104L16 2.729V13.5h1.986a1.48 1.48 0 001.118-.5 1.48 1.48 0 00.382-1.005l-.01-.16-1.026-9.242A1.227 1.227 0 0017.229 1.5zM8 1v6.25a.75.75 0 01-1.493.102L6.5 7.25V1H8z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/20992.fb045a35.js b/pr-preview/pr-186/assets/js/20992.fb045a35.js new file mode 100644 index 000000000..df6eabed9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/20992.fb045a35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[20992],{20992:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_action_pin:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M13.065 6.11L18 11.06l-3.5 3.5a7 7 0 01-1.6 6.555l-.19.2-.355.355-4.42-4.42-5.83 5.815a.755.755 0 01-1.135-.971L1.04 22l5.835-5.81-4.42-4.42.355-.355a7 7 0 016.486-1.871l.269.066 3.5-3.5zm1.536-4.646a2.25 2.25 0 012.048.465l.126.116L22.08 7.35a2.245 2.245 0 01.134 3.034l-.134.146-.146.134a2.25 2.25 0 01-2.893 0l-.146-.134-5.3-5.3a2.25 2.25 0 011.006-3.766z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M22.08 7.35l-5.305-5.305a2.242 2.242 0 00-3.18 0c-.88.88-.88 2.305 0 3.18l.175.175-4.205 4.205a6.988 6.988 0 00-1.815-.24c-1.79 0-3.575.68-4.94 2.045l-.355.355 4.42 4.42L1.04 22.02a.745.745 0 000 1.06c.145.145.34.22.53.22s.385-.075.53-.22l5.835-5.83 4.42 4.42.355-.355a6.984 6.984 0 001.805-6.755l4.205-4.205.175.175a2.242 2.242 0 003.18 0 2.24 2.24 0 00.005-3.18zm-9.235 6.76l.225.835a5.535 5.535 0 01-.775 4.535l-7.65-7.65a5.446 5.446 0 013.11-.96c.485 0 .965.065 1.43.185l.835.225 4.815-4.815 2.83 2.83-4.82 4.815zm8.175-4.64a.752.752 0 01-1.06 0l-5.305-5.305a.754.754 0 010-1.06.752.752 0 011.06 0L21.02 8.41a.752.752 0 010 1.06z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/20b78d29.3fbfde7e.js b/pr-preview/pr-186/assets/js/20b78d29.3fbfde7e.js new file mode 100644 index 000000000..ce5ea1e71 --- /dev/null +++ b/pr-preview/pr-186/assets/js/20b78d29.3fbfde7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[7411],{87238:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var i=t(74848),s=t(28453);const r={id:"combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports",title:"Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports",tags:["waf","load-balancer","security"]},a="Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports",c={id:"best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports",title:"Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports",description:"This topic walks you through how to combine dedicated WAF instances and layer-7 load balancers to protect your services over non-standard ports that cannot be protected with WAF alone. For ports supported by WAF, see Ports Supported by WAF.",source:"@site/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports.md",sourceDirName:"best-practices/security-services/web-application-firewall",slug:"/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports.md",tags:[{inline:!0,label:"waf",permalink:"/docs-next/pr-preview/pr-186/docs/tags/waf"},{inline:!0,label:"load-balancer",permalink:"/docs-next/pr-preview/pr-186/docs/tags/load-balancer"},{inline:!0,label:"security",permalink:"/docs-next/pr-preview/pr-186/docs/tags/security"}],version:"current",frontMatter:{id:"combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports",title:"Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports",tags:["waf","load-balancer","security"]},sidebar:"bestPracticesSidebar",previous:{title:"Connecting Multiple On-Premises Branch Networks Through a VPN Hub",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub"},next:{title:"Using LTS to Quickly Query and Analyze WAF Access Logs",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/using-lts-to-quickly-query-and-analyze-waf-access-logs"}},o={},d=[{value:"Protection Scenarios",id:"protection-scenarios",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Procedure",id:"procedure",level:2},{value:"How the Combination Protects Traffic",id:"how-the-combination-protects-traffic",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports",children:"Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports"}),"\n",(0,i.jsxs)(n.p,{children:["This topic walks you through how to combine dedicated WAF instances and layer-7 load balancers to protect your services over non-standard ports that cannot be protected with WAF alone. For ports supported by WAF, see ",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/web-application-firewall-dedicated/umn/enabling_waf_protection/ports_supported_by_waf.html",children:"Ports Supported by WAF"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"protection-scenarios",children:"Protection Scenarios"}),"\n",(0,i.jsxs)(n.p,{children:["The following procedure describes how WAF and ELB together protect\n",(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"http://www.example.com:9876",children:"www.example.com:9876"})}),". Port ",(0,i.jsx)(n.code,{children:"9876"})," is a non-standard port WAF alone\ncannot protect."]}),"\n",(0,i.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["You have purchased a dedicated layer-7 load balancer. For details\nabout load balancer types, see ",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-load-balancing/umn/service_overview/differences_between_dedicated_and_shared_load_balancers.html",children:"Differences Between Dedicated and\nShared Load\nBalancers"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"Dedicated WAF instances issued before April 2023 cannot be used with\ndedicated network load balancers. If you use a dedicated network\nload balancer (TCP/UDP), ensure that your dedicated WAF instance has\nbeen upgraded to the latest version (issued after April 2023)."})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Related ports have been enabled in the security group to which the\ndedicated WAF instance belongs."}),"\n",(0,i.jsx)(n.p,{children:"You can configure your security group as follows:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Inbound rules"})}),"\n",(0,i.jsxs)(n.p,{children:["Add an inbound rule to allow incoming network traffic to pass\nthrough over a specified port based on your service\nrequirements. For example, if you want to allow access from port\n80, add a rule that allows ",(0,i.jsx)(n.code,{children:"TCP"})," and port ",(0,i.jsx)(n.code,{children:"80"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Outbound rules"})}),"\n",(0,i.jsx)(n.p,{children:"Retain the default settings. All outgoing network traffic is\nallowed by default."}),"\n",(0,i.jsxs)(n.p,{children:["For more details, see ",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-network/umn/getting_started/optional_configure_security_group_rules/adding_a_security_group_rule.html",children:"Adding a Security Group\nRule"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"procedure",children:"Procedure"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/web-application-firewall-dedicated/umn/applying_for_a_dedicated_waf_instance.html",children:"Apply for a dedicated WAF instance"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Connect ",(0,i.jsx)(n.a,{href:"http://www.example.com",children:"www.example.com"})," to WAF by referring to ",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/web-application-firewall-dedicated/umn/enabling_waf_protection/connecting_a_website_to_waf/connection_process_dedicated_mode.html#waf-01-0326",children:"Adding a Website to\nWAF (Dedicated\nMode)"}),".\nSelect any non-standard port as the protected port, for example,\nport 86, set ",(0,i.jsx)(n.strong,{children:"Server Port"})," to ",(0,i.jsx)(n.code,{children:"9876"}),", and set ",(0,i.jsx)(n.strong,{children:"Proxy\nConfigured"})," to ",(0,i.jsx)(n.code,{children:"Layer-7 proxy"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 1 Adding a domain name to\nWAF",src:t(41546).A+"",width:"830",height:"762"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add listeners and backend server groups to the load balancer."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Log in to the management console."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click\n",(0,i.jsx)(n.img,{alt:"image1",src:t(32474).A+"",width:"19",height:"23"})," in\nthe upper left corner of the management console and select a\nregion or project."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click\n",(0,i.jsx)(n.img,{alt:"image2",src:t(61474).A+"",width:"26",height:"23"})," in\nthe upper left corner of the page and choose ",(0,i.jsx)(n.em,{children:"Elastic Load\nBalance"})," under ",(0,i.jsx)(n.em,{children:"Networking"})," to go to the ",(0,i.jsx)(n.em,{children:"Load Balancers"}),"\npage."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click the name of the load balancer in the ",(0,i.jsx)(n.em,{children:"Name"})," column to go\nto the ",(0,i.jsx)(n.em,{children:"Basic Information"})," page."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click the ",(0,i.jsx)(n.em,{children:"Listeners"})," tab and then click ",(0,i.jsx)(n.em,{children:"Add Listener"}),". On\nthe displayed page, configure the listener. In the ",(0,i.jsx)(n.em,{children:"Frontend\nPort"})," text box, enter the port you want to protect. In this\ncase, enter ",(0,i.jsx)(n.code,{children:"9876"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 2 Configuring a\nlistener",src:t(71077).A+"",width:"1083",height:"560"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.em,{children:"Next: Configure Request Routing Policy"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 3 Configuring a backend server\ngroup",src:t(59144).A+"",width:"1484",height:"409"})}),"\n",(0,i.jsx)(n.admonition,{type:"important",children:(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["If you select ",(0,i.jsx)(n.strong,{children:"Weighted round robin"})," for ",(0,i.jsx)(n.strong,{children:"Load Balancing\nAlgorithm"}),", disable ",(0,i.jsx)(n.strong,{children:"Sticky Session"}),". If you enable\n",(0,i.jsx)(n.strong,{children:"Sticky Session"}),", the same requests will be forwarded to\nthe same dedicated WAF instance. If this instance becomes\nfaulty, an error will occur when the requests come to it\nnext time."]}),"\n",(0,i.jsxs)(n.li,{children:["For details about ELB traffic distribution policies, see\n",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-load-balancing/umn/backend_server_group/key_functions/load_balancing_algorithms.html",children:"Load Balancing\nAlgorithms"}),"."]}),"\n"]})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.em,{children:"Next: Add Backend Server"})," and click ",(0,i.jsx)(n.em,{children:"Next: Confirm"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Add the WAF instance to the load balancer."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Log in to the management console."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click\n",(0,i.jsx)(n.img,{alt:"image3",src:t(2460).A+"",width:"19",height:"23"})," in\nthe upper left corner of the management console and select a\nregion or project."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click\n",(0,i.jsx)(n.img,{alt:"image4",src:t(71276).A+"",width:"27",height:"27"})," in\nthe upper left corner, select a region, and choose ",(0,i.jsx)(n.em,{children:"Security"})," -> ",(0,i.jsx)(n.em,{children:"Web Application Firewall (Dedicated)"})," to go to the\n",(0,i.jsx)(n.em,{children:"Dashboard"})," page."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["In the navigation pane on the left, choose ",(0,i.jsx)(n.em,{children:"Instance\nManagement"})," -> ",(0,i.jsx)(n.em,{children:"Dedicated Engine"})," to go to the dedicated WAF\ninstance page."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 4 Dedicated engine\nlist",src:t(94938).A+"",width:"1617",height:"93"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Locate the row containing the WAF instance. In the ",(0,i.jsx)(n.em,{children:"Operation"}),"\ncolumn, click ",(0,i.jsx)(n.em,{children:"More"})," -> ",(0,i.jsx)(n.em,{children:"Add to ELB"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["In the ",(0,i.jsx)(n.em,{children:"Add to ELB"})," dialog box, specify ",(0,i.jsx)(n.em,{children:"ELB (Load\nBalancer)"}),", ",(0,i.jsx)(n.em,{children:"ELB Listener"}),", and ",(0,i.jsx)(n.em,{children:"Backend Server Group"}),"\nbased on previous step."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 5 Add to\nELB",src:t(30589).A+"",width:"575",height:"559"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.em,{children:"Confirm"}),". Then, configure service port for the WAF\ninstance. In this example, configure ",(0,i.jsx)(n.em,{children:"Backend Port"})," to ",(0,i.jsx)(n.code,{children:"86"}),",\nwhich is the one we configured in step 2."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 6 Configuring Backend\nPort",src:t(94174).A+"",width:"681",height:"365"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.em,{children:"Confirm"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/web-application-firewall-dedicated/umn/enabling_waf_protection/connecting_a_website_to_waf/step_3_bind_an_eip_to_a_load_balancer.html",children:"Bind an EIP to a Load\nBalancer"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/web-application-firewall-dedicated/umn/enabling_waf_protection/connecting_a_website_to_waf/step_4_whitelist_the_back-to-source_ip_addresses_of_your_dedicated_waf_instances.html",children:"Whitelist IP addresses of your dedicated WAF\ninstances"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"how-the-combination-protects-traffic",children:"How the Combination Protects Traffic"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image5",src:t(67513).A+"",width:"683",height:"222"})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},94174:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001369344100-7ad8ecca86f8d6a23038d0f65c613414.png"},71077:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001369483086-c8ff5281eec0134024ad609d223a1653.png"},94938:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001369501992-6aeaf7152ebf5cce271389cbb5faa79b.png"},61474:(e,n,t)=>{t.d(n,{A:()=>i});const i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAXCAIAAACatshHAAAAOElEQVR42mP8//8/A/UA46hx1DLuSqtO+kKSDQlbdSXfgA7GUdmzo8aRb9xoQhk1jijjRhMKCQAAj0di0zHSG9AAAAAASUVORK5CYII="},71276:(e,n,t)=>{t.d(n,{A:()=>i});const i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAIAAAACtmMCAAAAO0lEQVR42mP8//8/A1UB46iJQ8PEfbU6tStJNsRz+pUaZ7qZSH1fj5pIHRNHU8+oieSbOJp6Rk0kAQAAcfRuy59/sAIAAAAASUVORK5CYII="},30589:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001369683888-5fbc27aa0673f7597de4c49c558205b6.png"},32474:(e,n,t)=>{t.d(n,{A:()=>i});const i="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAXABMDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3WSRURpJGCqoySegFVYNStbmVY45DuYZUMhXcPbI5pNUhefTpEjG5hhtv97Bzis8Ol7dW4t53l3Si4bcf9So/h9snjFdFOlGUG2Zzm07I3KKKK5zQkaPnK/lUMdokLO0cSqZG3MR3NFFO7Ak8tvSiiikB/9k="},2460:(e,n,t)=>{t.d(n,{A:()=>i});const i="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAXABMDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3WSRURpJGCqoySegFVYNStbmVY45DuYZUMhXcPbI5pNUhefTpEjG5hhtv97Bzis8Ol7dW4t53l3Si4bcf9So/h9snjFdFOlGUG2Zzm07I3KKKK5zQkaPnK/lUMdokLO0cSqZG3MR3NFFO7Ak8tvSiiikB/9k="},59144:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001423609253-9712c91b54f98dbe07a0fa223bee8f27.png"},67513:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001764240765-c723a76ee1fb383d1bde19f54e6b01a8.png"},41546:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/en-us_image_0000001764480001-cd042668a96490da0e78c5d4f864a96e.png"},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>c});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/20d66ccc.b5ba1638.js b/pr-preview/pr-186/assets/js/20d66ccc.b5ba1638.js new file mode 100644 index 000000000..340127a1e --- /dev/null +++ b/pr-preview/pr-186/assets/js/20d66ccc.b5ba1638.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[22756],{61400:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>d,contentTitle:()=>c,default:()=>o,frontMatter:()=>a,metadata:()=>r,toc:()=>h});var n=s(74848),t=s(28453);const a={id:"migrating-service-data-across-accounts-data-disks",title:"Migrating Service Data Across Accounts (Data Disks)",tags:["ims","migration"]},c="Migrating Service Data Across Accounts (Data Disks)",r={id:"best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks",title:"Migrating Service Data Across Accounts (Data Disks)",description:"Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region.",source:"@site/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks.md",sourceDirName:"best-practices/computing/image-management-service",slug:"/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks.md",tags:[{inline:!0,label:"ims",permalink:"/docs-next/pr-preview/pr-186/docs/tags/ims"},{inline:!0,label:"migration",permalink:"/docs-next/pr-preview/pr-186/docs/tags/migration"}],version:"current",frontMatter:{id:"migrating-service-data-across-accounts-data-disks",title:"Migrating Service Data Across Accounts (Data Disks)",tags:["ims","migration"]},sidebar:"bestPracticesSidebar",previous:{title:"Building Highly Available Web Server Clusters with Keepalived",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived"},next:{title:"Creating a Linux Image Using VirtualBox and an ISO File",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file"}},d={},h=[{value:"Solution Design",id:"solution-design",level:2},{value:"Creating a Data Disk Image",id:"creating-a-data-disk-image",level:2},{value:"Sharing the Image with the Target Account",id:"sharing-the-image-with-the-target-account",level:2},{value:"Accepting the Shared Image",id:"accepting-the-shared-image",level:2},{value:"Creating a Data Disk or an ECS",id:"creating-a-data-disk-or-an-ecs",level:2}];function l(e){const i={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"migrating-service-data-across-accounts-data-disks",children:"Migrating Service Data Across Accounts (Data Disks)"}),"\n",(0,n.jsx)(i.p,{children:"Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region."}),"\n",(0,n.jsx)(i.h2,{id:"solution-design",children:"Solution Design"}),"\n",(0,n.jsx)(i.p,{children:"To migrate service data stored on a data disk across accounts, create an\nimage for the data disk, share the image with the target account. The\ntarget account accepts the shared image and attaches the new data disk\ncreated from the shared image to an existing or new ECS."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 1 Migration process",src:s(81884).A+"",width:"846",height:"519"})}),"\n",(0,n.jsx)(i.h2,{id:"creating-a-data-disk-image",children:"Creating a Data Disk Image"}),"\n",(0,n.jsxs)(i.p,{children:["Assume that ",(0,n.jsx)(i.em,{children:"hello-world.txt"})," is stored on the data disk of your ECS\nand you want to migrate the file to another account."]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"image1",src:s(26323).A+"",width:"534",height:"215"})}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Log in to the management console and switch to the related region."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Under ",(0,n.jsx)(i.em,{children:"Service List"}),", choose ",(0,n.jsx)(i.em,{children:"Compute"})," -> ",(0,n.jsx)(i.em,{children:"Image ManagementService"}),"."]}),"\n",(0,n.jsxs)(i.p,{children:["The ",(0,n.jsx)(i.em,{children:"Image Management Service"})," page is displayed."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["In the upper right corner, click ",(0,n.jsx)(i.em,{children:"Create Image"}),"."]}),"\n",(0,n.jsxs)(i.p,{children:["The ",(0,n.jsx)(i.em,{children:"Create Image"})," page is displayed."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Set parameters."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 2 Creating a data disk\nimage",src:s(26103).A+"",width:"1199",height:"727"})}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Type"}),": Select ",(0,n.jsx)(i.em,{children:"Data disk image"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Source"}),": Select ",(0,n.jsx)(i.em,{children:"ECS"})," and then select the ",(0,n.jsx)(i.code,{children:"data disk ecs-disk-image-test-volume"})," data disk."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Name"}),": Enter a name for the data disk image, for example, ",(0,n.jsx)(i.code,{children:"disk-image-test"}),"."]}),"\n",(0,n.jsxs)(i.li,{children:[(0,n.jsx)(i.strong,{children:"Enterprise Project"}),": Select ",(0,n.jsx)(i.code,{children:"default"}),"."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Click ",(0,n.jsx)(i.em,{children:"Next"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Confirm the settings, read and agree to the agreement, and click\n",(0,n.jsx)(i.em,{children:"Submit"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"The system redirects to the private image list. Wait for several\nminutes and check whether the data disk image is successfully\ncreated."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 3 Viewing private\nimages",src:s(12605).A+"",width:"865",height:"84"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"sharing-the-image-with-the-target-account",children:"Sharing the Image with the Target Account"}),"\n",(0,n.jsxs)(i.p,{children:["Share the data disk image created in ",(0,n.jsx)(i.a,{href:"#creating-a-data-disk-image",children:"Step 1"})," with the target account. Before the image sharing, obtain\nthe project ID of the target account. (You can obtain the project ID from ",(0,n.jsx)(i.em,{children:"My Credentials"}),":"]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 4 Viewing the project\nID",src:s(2993).A+"",width:"1221",height:"417"})}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Locate the row that contains the ",(0,n.jsx)(i.code,{children:"disk-image-test"})," private image.\nChoose ",(0,n.jsx)(i.em,{children:"More"})," -> ",(0,n.jsx)(i.em,{children:"Share"})," in the ",(0,n.jsx)(i.em,{children:"Operation"})," column."]}),"\n",(0,n.jsxs)(i.p,{children:["The ",(0,n.jsx)(i.em,{children:"Share Image"})," dialog box is displayed."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["In the ",(0,n.jsx)(i.em,{children:"Share Image"})," dialog box, enter the project ID of the\ntarget account."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Click ",(0,n.jsx)(i.em,{children:"OK"}),"."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"accepting-the-shared-image",children:"Accepting the Shared Image"}),"\n",(0,n.jsx)(i.p,{children:"Accept the shared data disk image."}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Log in to the management console using the account the image is\nshared with and switch to the related region."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Under ",(0,n.jsx)(i.em,{children:"Service List"}),", choose ",(0,n.jsx)(i.em,{children:"Compute"})," -> ",(0,n.jsx)(i.em,{children:"Image Management\nService"}),". Then, click the ",(0,n.jsx)(i.em,{children:"Images Shared with Me"})," tab."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Select ",(0,n.jsx)(i.em,{children:"disk-image-test"})," and click ",(0,n.jsx)(i.em,{children:"Accept"}),"."]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 5 Accepting a shared\nimage",src:s(14046).A+"",width:"966",height:"281"})}),"\n",(0,n.jsx)(i.p,{children:"After the image is accepted, it is displayed in the shared image\nlist."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"creating-a-data-disk-or-an-ecs",children:"Creating a Data Disk or an ECS"}),"\n",(0,n.jsx)(i.p,{children:"Use the shared image to create a new data disk and attach it to an\nexisting ECS. Alternatively, create an ECS with a data disk created from\nthe shared image. Then, check whether the service data is successfully\nmigrated."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["Create a new data disk and attach it to an existing ECS.","\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Locate the row that contains the shared image\n",(0,n.jsx)(i.code,{children:"disk-image-test"}),", and click ",(0,n.jsx)(i.em,{children:"Create Data Disk"})," in the\n",(0,n.jsx)(i.em,{children:"Operation"})," column."]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 6 Creating a data\ndisk",src:s(2464).A+"",width:"1609",height:"80"})}),"\n",(0,n.jsx)(i.p,{children:"The page for purchasing EVS disks is displayed."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Configure the billing mode and disk specifications as needed.\n",(0,n.jsx)(i.strong,{children:"The AZ must be the same as that of the ECS to which the data\ndisk will be attached"}),". Click ",(0,n.jsx)(i.em,{children:"Next"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Return to the EVS disk list. ",(0,n.jsx)(i.strong,{children:"Wait"})," for several minutes until the\nEVS disk is created successfully."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Locate the row that contains the new EVS disk and click\n",(0,n.jsx)(i.em,{children:"Attach"})," in the ",(0,n.jsx)(i.em,{children:"Operation"})," column to attach the data disk\nto the ECS."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Log in to the ECS and check whether the service data is\nsuccessfully migrated."}),"\n",(0,n.jsxs)(i.p,{children:["Run the ",(0,n.jsx)(i.code,{children:"fdisk -l"})," command. The command output shows that the\nnew data disk has been partitioned."]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"image2",src:s(47631).A+"",width:"572",height:"404"})}),"\n",(0,n.jsxs)(i.p,{children:["Mount the new partition to a directory of the ECS and check the\n",(0,n.jsx)(i.em,{children:"hello-world.txt"})," file. The file content is properly printed,\nwhich means that the service data migration is successful."]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"image3",src:s(29225).A+"",width:"429",height:"217"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["Create an ECS with a data disk attached.","\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Under ",(0,n.jsx)(i.em,{children:"Service List"}),", choose ",(0,n.jsx)(i.em,{children:"Compute"})," -> ",(0,n.jsx)(i.em,{children:"Elastic Cloud\nServer"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["In the upper right corner, click ",(0,n.jsx)(i.em,{children:"Create ECS"}),"."]}),"\n",(0,n.jsx)(i.p,{children:"The page for purchasing ECSs is displayed."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Configure the billing mode, AZ, and specifications as needed and\nadd a data disk which will be created from the shared data disk\nimage. Complete the ECS creation as instructed."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Figure 7 Adding a data\ndisk",src:s(32865).A+"",width:"838",height:"195"})}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Wait for several minutes and check whether the new ECS is\ndisplayed in the ECS list."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Log in to the new ECS and check whether the service data is\nsuccessfully migrated."}),"\n",(0,n.jsxs)(i.p,{children:["Run the ",(0,n.jsx)(i.code,{children:"fdisk -l"})," command. The command output shows that the\nnew data disk has been partitioned. Mount the new partition to a\ndirectory of the ECS and check the ",(0,n.jsx)(i.em,{children:"hello-world.txt"})," file. The\nfile content is properly printed, which means that the service\ndata migration is successful."]}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"image4",src:s(67381).A+"",width:"565",height:"570"})}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]})}function o(e={}){const{wrapper:i}={...(0,t.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},2993:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0000001138989308-d00739932f445bb26755e35a3b9c295f.png"},26103:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0000001251619009-cf3bb0e1b31a77675c6de772bb70129d.png"},14046:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0000001251966577-8b104358976ed863fac58c2f5ec26fc1.png"},81884:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295094264-7e3556cdc6abb17dc000a8ad41246b5b.png"},26323:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295099813-ba8299040d7f3e8556444b63f8a11e26.png"},12605:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295100003-1b0bce06bbc7c252b6dc52ee78023743.png"},2464:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295117864-4659d6be92bf64793576e8a988c68b9b.png"},47631:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295125718-502c48febb7133c3caba1fc5374b8699.png"},29225:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295125796-ea2c9a1ced9274b3298743f3007cc8e7.png"},32865:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295128562-d35fb06ee5d89729c5cfe763da7a7df8.png"},67381:(e,i,s)=>{s.d(i,{A:()=>n});const n=s.p+"assets/images/en-us_image_0295129442-8151d9083306c0216af034f6c963b9ee.png"},28453:(e,i,s)=>{s.d(i,{R:()=>c,x:()=>r});var n=s(96540);const t={},a=n.createContext(t);function c(e){const i=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),n.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/20ecd4aa.254d4f91.js b/pr-preview/pr-186/assets/js/20ecd4aa.254d4f91.js new file mode 100644 index 000000000..0ace6a8fd --- /dev/null +++ b/pr-preview/pr-186/assets/js/20ecd4aa.254d4f91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[26171],{76497:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=o(74848),n=o(28453);const r={id:"ufa-adopts-full-cloud-workflow-in-film-productionpp",title:"UFA Adopts Full-Cloud Workflow in Film Production",tags:["media","by-industry"]},s="UFA Adopts Full-Cloud Workflow in Film Production",l={id:"blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp",title:"UFA Adopts Full-Cloud Workflow in Film Production",description:"UFA opts for the Open Telekom Cloud. Delivery vans commuting by road to transport hard disks will soon be a thing of the past.",source:"@site/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-production.md",sourceDirName:"blueprints/by-industry/media",slug:"/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-production.md",tags:[{inline:!0,label:"media",permalink:"/docs-next/pr-preview/pr-186/docs/tags/media"},{inline:!0,label:"by-industry",permalink:"/docs-next/pr-preview/pr-186/docs/tags/by-industry"}],version:"current",frontMatter:{id:"ufa-adopts-full-cloud-workflow-in-film-productionpp",title:"UFA Adopts Full-Cloud Workflow in Film Production",tags:["media","by-industry"]},sidebar:"blueprintsSidebar",previous:{title:"Media",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/"},next:{title:"Retail",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/retail/"}},a={},d=[{value:"Long-Term Goal: Digitizing the Entire Value Chain",id:"long-term-goal-digitizing-the-entire-value-chain",level:2},{value:"Lower Costs with Open Telekom Cloud",id:"lower-costs-with-open-telekom-cloud",level:2},{value:"The Challenge",id:"the-challenge",level:2},{value:"The Solution",id:"the-solution",level:2},{value:"Customer Benefits",id:"customer-benefits",level:2},{value:"About UFA GmbH",id:"about-ufa-gmbh",level:2},{value:"See Also",id:"see-also",level:2}];function c(e){const t={a:"a",admonition:"admonition",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"ufa-adopts-full-cloud-workflow-in-film-production",children:"UFA Adopts Full-Cloud Workflow in Film Production"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"#about-ufa-gmbh",children:"UFA"})," opts for the Open Telekom Cloud. Delivery vans commuting by road to transport hard disks will soon be a thing of the past."]}),"\n",(0,i.jsxs)(t.p,{children:['What might at first seem trivial actually has a big impact: because the digitized distribution process not only saves UFA a lot of money, it also protects the environment. Previously, at the end of each day of shooting, courier services and production drivers transported the raw material on hard disks between locations all over Germany and the post-production facilities by road. "',(0,i.jsx)(t.em,{children:"These are tens of thousands of kilometers that we want to eliminate in the future with our new full-cloud workflow. It also increases overall efficiency and production speed,"}),'" says Ernst Feiler, Technology Director at UFA, "',(0,i.jsx)(t.em,{children:"And that\u2019s all without our employees having to change the way they work."}),"\u201d"]}),"\n",(0,i.jsx)(t.p,{children:"That\u2019s because, after every shoot, the crew plugs the storage media from the film cameras into a network-attached storage (NAS). Previously, the NAS was then picked up by a courier and taken to Potsdam. In the future, however, the NAS systems can simply stay put at locations with suitable connectivity \u2013 and transfer the data into the Open Telekom Cloud via the internet."}),"\n",(0,i.jsx)(t.h2,{id:"long-term-goal-digitizing-the-entire-value-chain",children:"Long-Term Goal: Digitizing the Entire Value Chain"}),"\n",(0,i.jsx)(t.p,{children:"The film industry is undergoing one of its biggest upheavals since the invention of color television. With more and more people consuming video content on the screens they carry around with them, the value chain is increasingly moving to where the audience is already: the cloud. It\u2019s a development that UFA GmbH is well aware of: The German market leader in film and television production has already been digitizing its value chain for the past 10 years."}),"\n",(0,i.jsx)(t.p,{children:"The Potsdam-based company\u2019s next step is to distribute raw material via the cloud. Film material that is shot at different locations during production \u2013 such as at outside locations or film studios located far away \u2013 is currently still transported to the relevant post-production sites by courier. In the future, some of that data will be automatically transferred directly to the Open Telekom Cloud via the internet. All those involved in the process, such as the editors who turn the material into finished clips, will then have access to it."}),"\n",(0,i.jsx)(t.h2,{id:"lower-costs-with-open-telekom-cloud",children:"Lower Costs with Open Telekom Cloud"}),"\n",(0,i.jsx)(t.p,{children:'Why doesn\'t UFA send the film material directly to the production headquarters via the internet? Quite simply because the company would then need their own storage capacities, which would not be freely scalable. That would involve having to purchase, store and maintain bulky IT hardware. In the Open Telekom Cloud, on the other hand, UFA will be using low-cost object-based storage (OBS) from now on. The data stored there can be classified at different levels: "cold" for occasional access over a year, "warm" for monthly data access and "standard" for more frequent access. The less frequent the access, the cheaper the storage.'}),"\n",(0,i.jsxs)(t.p,{children:['The full-cloud workflow is currently being tested as part of a proof of concept (PoC). In the long term, Technology Director Feiler plans to move the film production\u2019s entire value chain to the cloud. "',(0,i.jsx)(t.em,{children:"Deutsche Telekom will certainly also be our partner for future cloud projects,"}),'" says Feiler. "',(0,i.jsx)(t.em,{children:"Because we can expect reliable, fast and highly available technology from them. And, what's more, they are competent partners at eye level who reliably meet any legal requirements of the GDPR."}),'"']}),"\n",(0,i.jsx)(t.h2,{id:"the-challenge",children:"The Challenge"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Previously, vans transported film material across Germany between the filming location, headquarters and archive."}),"\n",(0,i.jsx)(t.li,{children:"Although this was customary practice in the industry, it was slow and also caused high transport costs."}),"\n",(0,i.jsx)(t.li,{children:"For this reason, the entire workflow had to be digitized and automated without changing the employees\u2019 workflow."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"the-solution",children:"The Solution"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"A fully automated cloud workflow with S3-compatible object storage in the Open Telekom Cloud."}),"\n",(0,i.jsx)(t.li,{children:"Film crews transfer their footage to a network-attached storage (NAS) system. From there it is transferred to the cloud via the internet."}),"\n",(0,i.jsx)(t.li,{children:"For that, Deutsche Telekom relies on widely-used standards. This ensures low costs and less complexity compared to individual software and hardware."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"customer-benefits",children:"Customer Benefits"}),"\n",(0,i.jsx)(t.p,{children:"UFA: \u201cTens of thousands of kilometers saved thanks to the cloud\u201d"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Transports between filming locations, headquarters and archive are reduced. This saves time and money."}),"\n",(0,i.jsx)(t.li,{children:"Post-production teams have access to raw material from anywhere and can work with it directly."}),"\n",(0,i.jsx)(t.li,{children:"Finished video material is automatically archived in the cloud."}),"\n",(0,i.jsx)(t.li,{children:"UFA is currently testing the process in a proof of concept (PoC)."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"about-ufa-gmbh",children:"About UFA GmbH"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"http://www.ufa.de/",children:"UFA"})," is one of the best-known entertainment brands in the world and market leader in film and television production in Germany. Founded more than 100 years ago, UFA has developed into a comprehensive content specialist providing digital and multimedia content \u2013 to all major German broadcasters and other partners."]}),"\n",(0,i.jsx)(t.h2,{id:"see-also",children:"See Also"}),"\n",(0,i.jsx)(t.admonition,{title:"Additional Information",type:"info",children:(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Read the whole success story ",(0,i.jsx)(t.a,{href:"https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/ufa",children:"here"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.a,{href:"https://www.t-systems.com/resource/blob/138216/45bc1b68b95db72e1b9e094872e068e9/DL-Flyer-Success-Story-UFA-T-Systems-en-05-2020.pdf",children:"Download"})," our reference flyer."]}),"\n"]})})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},28453:(e,t,o)=>{o.d(t,{R:()=>s,x:()=>l});var i=o(96540);const n={},r=i.createContext(n);function s(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2112.706b37c1.js b/pr-preview/pr-186/assets/js/2112.706b37c1.js new file mode 100644 index 000000000..66617686e --- /dev/null +++ b/pr-preview/pr-186/assets/js/2112.706b37c1.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2112; +exports.ids = [2112]; +exports.modules = { + +/***/ 12112: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_server: () => (/* binding */ DeviceServer) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceServer = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.002 16v3.5a3 3 0 01-2.824 2.995L18 22.5H6a3.001 3.001 0 01-2.994-2.824L3 19.5V16h18zm-5 1.5a1 1 0 100 2 1 1 0 000-2zm5-8v5h-18v-5h18zm-5 1.5a1 1 0 100 2 1 1 0 000-2zm2-9.5a3 3 0 012.994 2.824l.006.176V8h-18V4.5a3.001 3.001 0 012.823-2.995l.176-.005h12zm-2 3a1 1 0 100 2 1 1 0 000-2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.002 1.5a3 3 0 012.995 2.824l.005.176v15a3 3 0 01-2.824 2.995l-.176.005h-12a3 3 0 01-2.995-2.824l-.005-.176v-15a3 3 0 012.823-2.995l.177-.005h12zm1.5 14.5h-15v3.5c0 .778.596 1.42 1.355 1.493l.145.007h12c.778 0 1.42-.596 1.493-1.356l.007-.144V16zm-3.5 1.5a1 1 0 110 2 1 1 0 010-2zm3.5-8h-15v5h15v-5zm-3.5 1.5a1 1 0 110 2 1 1 0 010-2zm2-8h-12c-.779 0-1.42.596-1.494 1.356l-.006.144V8h15V4.5c0-.827-.673-1.5-1.5-1.5zm-2 1.5a1 1 0 110 2 1 1 0 010-2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceServer.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/21270.5dfcb96f.js b/pr-preview/pr-186/assets/js/21270.5dfcb96f.js new file mode 100644 index 000000000..ae46a95ca --- /dev/null +++ b/pr-preview/pr-186/assets/js/21270.5dfcb96f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21270],{21270:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_user_file_file_collection:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M15.55.46V4a2.33 2.33 0 002.145 2.328l.185.007h3.62v8.875a2.245 2.245 0 01-2.052 2.242l-.198.008h-.75v.79a2.245 2.245 0 01-2.052 2.242l-.198.008h-.75v.75a2.245 2.245 0 01-2.052 2.242l-.198.008h-9a2.245 2.245 0 01-2.242-2.052L2 21.25V6.5h3v-3h3V.46h7.55zM5 8H3.5v13.25c0 .38.282.693.648.743L4.25 22h9a.75.75 0 00.743-.648L14 21.25v-.75H7.25a2.245 2.245 0 01-2.242-2.052L5 18.25V8zm3-3H6.5v13.25c0 .38.282.693.648.743L7.25 19h9a.75.75 0 00.743-.648L17 18.25v-.79h-6.75a2.245 2.245 0 01-2.242-2.052L8 15.21V5zM16.625.46L21.5 5.335h-3.545a1.33 1.33 0 01-1.322-1.185L16.625 4V.46z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M17.75.5H8v3H5v3H2v14.75a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-.75h.75a2.25 2.25 0 002.25-2.25v-.75h.75a2.25 2.25 0 002.25-2.25V4.363L17.75.5zM14 21.25a.75.75 0 01-.75.75h-9a.75.75 0 01-.75-.75V8H5v10.25a2.25 2.25 0 002.25 2.25H14v.75zm3-3a.75.75 0 01-.75.75h-9a.75.75 0 01-.75-.75V5H8v10.25a2.25 2.25 0 002.25 2.25H17v.75zM19.25 16h-9a.75.75 0 01-.75-.75V2H16v2.17c0 .734.595 1.33 1.33 1.33H20v9.75a.75.75 0 01-.75.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/21512.54dd5ebc.js b/pr-preview/pr-186/assets/js/21512.54dd5ebc.js new file mode 100644 index 000000000..388e174c3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/21512.54dd5ebc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21512],{21512:(e,t,r)=>{r.r(t),r.d(t,{scale_helper_text:()=>a});var n=r(90936);const a=class{constructor(e){(0,n.r)(this,e),this.variant="informational"}renderHelperIcon(){const e=this.variant;return"informational"===e||"warning"===e?(0,n.h)("scale-icon-alert-information",null):"danger"===e?(0,n.h)("scale-icon-alert-error",null):"success"===e?(0,n.h)("scale-icon-action-success",null):void 0}render(){return(0,n.h)(n.a,null,(0,n.h)("div",{class:{"helper-text":!0,"helper-text--informational":"informational"===this.variant,"helper-text--warning":"warning"===this.variant,"helper-text--danger":"danger"===this.variant,"helper-text--success":"success"===this.variant,"helper-text--neutral":"neutral"===this.variant},part:"base"},this.helperText?(0,n.h)("span",{part:"text"},this.helperText):(0,n.h)("span",{part:"text"},(0,n.h)("slot",null)),this.renderHelperIcon()),this.styles&&(0,n.h)("style",null,this.styles))}};a.style=":host{--color-informational:var(\n --telekom-color-text-and-icon-functional-informational\n );--color-warning:var(--telekom-color-text-and-icon-functional-warning);--color-danger:var(--telekom-color-text-and-icon-functional-danger);--color-success:var(--telekom-color-text-and-icon-functional-success);--color-neutral:var(--telekom-color-text-and-icon-additional);--font-size:0.75rem;--font-weight:700;--line-height:1.35;--icon-size-helper-text:11px}.helper-text{display:flex;align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end;font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}[part='text']{text-align:left}scale-icon-alert-information,scale-icon-alert-error,scale-icon-action-success{display:flex;justify-content:center;align-items:center;margin-right:var(--telekom-spacing-composition-space-03);margin-top:0.1666em;}.scale-icon{height:var(--icon-size-helper-text);width:var(--icon-size-helper-text)}.helper-text--informational{color:var(--color-informational)}.helper-text--warning{color:var(--color-warning)}.helper-text--danger{color:var(--color-danger)}.helper-text--success{color:var(--color-success)}.helper-text--neutral{color:var(--color-neutral)}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/21547.9517cde8.js b/pr-preview/pr-186/assets/js/21547.9517cde8.js new file mode 100644 index 000000000..3c053b45f --- /dev/null +++ b/pr-preview/pr-186/assets/js/21547.9517cde8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21547],{21547:(t,e,h)=>{h.r(e),h.d(e,{scale_icon_content_height:()=>l});var i=h(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M8.002 1.482v2.5H5.183c-.646 0-1.179.493-1.243 1.123l-.007.127V5.5h1.57a.75.75 0 01.101 1.493L5.502 7H3.933v2.5h1.57a.75.75 0 01.101 1.493l-.102.006H3.933v2.5h1.57a.75.75 0 01.101 1.493L5.502 15H3.933v2.5h1.57a.75.75 0 01.101 1.493L5.502 19H3.933v.245c0 .646.493 1.179 1.123 1.243l.127.007h2.82v2.5h-2.82a3.754 3.754 0 01-3.744-3.552l-.005-.198V5.232a3.754 3.754 0 013.55-3.744l.2-.006h2.818zm13.2 8.316c1.06 0 1.616.629 1.666 1.846l.004.187v3.624h-1.466v-3.442c0-.534-.193-.875-.715-.875-.53 0-.892.367-.938.97l-.005.132v3.215h-1.466v-3.442c0-.534-.193-.875-.716-.875-.519 0-.88.376-.926.972l-.005.13v3.215h-1.466V9.98h1.375v.67h.068c.284-.534.807-.852 1.466-.852.682 0 1.14.262 1.404.749l.061.126h.068c.308-.568.875-.875 1.591-.875zm-8.228-1.931v7.588h-1.466V9.866h-.068l-1.977 1.635V9.73l2.182-1.862h1.329z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M2 4.5V20c0 1.654 1.345 3 3 3h3v-1.5H5c-.827 0-1.5-.673-1.5-1.5v-1h2a.75.75 0 100-1.5h-2V15h2a.75.75 0 100-1.5h-2V11h2a.75.75 0 100-1.5h-2V7h2a.75.75 0 100-1.5h-2v-1C3.5 3.673 4.173 3 5 3h3V1.5H5c-1.655 0-3 1.345-3 3zm19.2 5.299c-.715 0-1.283.306-1.59.875h-.069c-.25-.569-.727-.875-1.465-.875-.659 0-1.181.318-1.466.851h-.068v-.67h-1.375v5.476h1.466v-3.215c0-.67.375-1.102.931-1.102.523 0 .716.341.716.875v3.442h1.466v-3.215c0-.681.375-1.102.943-1.102.523 0 .715.341.715.875v3.442h1.466v-3.624c0-1.34-.556-2.034-1.67-2.034zM9.462 9.73v1.772l1.976-1.636h.069v5.59h1.466V7.867h-1.33L9.462 9.73z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/21614.d053df78.js b/pr-preview/pr-186/assets/js/21614.d053df78.js new file mode 100644 index 000000000..982312b7b --- /dev/null +++ b/pr-preview/pr-186/assets/js/21614.d053df78.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21614],{21614:(t,a,e)=>{e.r(a),e.d(a,{scale_icon_action_light_dark_mode:()=>l});var i=e(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},a=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,a),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("defs",null,(0,i.h)("path",{id:"a",d:"M0 0h23.995v22.496H0z"})),(0,i.h)("g",{transform:"translate(.005 .75)",fill:"none","fill-rule":"evenodd"},(0,i.h)("mask",{id:"b",fill:"#fff"},(0,i.h)("use",{xlinkHref:"#a"})),(0,i.h)("path",{d:"M12.671 17.339a6.241 6.241 0 01-1.423.169A6.248 6.248 0 1113.12 5.297a7.732 7.732 0 00-3.122 6.201 7.726 7.726 0 002.673 5.841zm5.075-12.09a6.248 6.248 0 00-6.248 6.249 6.248 6.248 0 1012.497 0 6.249 6.249 0 00-6.249-6.249zM4.708 16.727l-1.414 1.414a.749.749 0 101.061 1.06l1.414-1.414a.749.749 0 10-1.061-1.06zm6.54 2.269a.75.75 0 00-.75.75v2a.75.75 0 001.499 0v-2a.75.75 0 00-.749-.75zm-7.749-7.748a.75.75 0 00-.75-.75H.75a.75.75 0 000 1.5h1.999a.75.75 0 00.75-.75zM11.248 3.5a.75.75 0 00.749-.75v-2a.75.75 0 00-1.499 0v2c0 .414.336.75.75.75zm-6.54 2.269a.748.748 0 001.061 0 .749.749 0 000-1.06L4.355 3.295a.75.75 0 00-1.061 1.06l1.414 1.414z",fill:"#000",mask:"url(#b)"}))):(0,i.h)("g",null,(0,i.h)("path",{d:"M4.71 17.48l-1.414 1.413a.75.75 0 101.06 1.061l1.415-1.415a.749.749 0 10-1.061-1.06zm6.54 2.27a.75.75 0 00-.75.75v2a.75.75 0 001.5 0v-2a.75.75 0 00-.75-.75zm.195-3.01c-.065.002-.13.01-.195.01A4.756 4.756 0 016.5 12a4.756 4.756 0 014.75-4.75c.189 0 .374.013.556.035a7.833 7.833 0 011.327-1.246 6.25 6.25 0 10-1.883 12.21c.487 0 .959-.06 1.414-.167a7.815 7.815 0 01-1.22-1.343zM3.5 12a.75.75 0 00-.75-.75h-2a.75.75 0 000 1.5h2A.75.75 0 003.5 12zm7.749-7.75A.75.75 0 0012 3.5v-2a.75.75 0 00-1.5 0v2c0 .413.336.75.75.75zM17.75 6a6.25 6.25 0 100 12.499 6.25 6.25 0 000-12.5zm-13.04.52a.746.746 0 001.06 0 .749.749 0 000-1.06L4.357 4.043a.749.749 0 10-1.06 1.061L4.71 6.52z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/21637.a5f4c2c6.js b/pr-preview/pr-186/assets/js/21637.a5f4c2c6.js new file mode 100644 index 000000000..b96a85973 --- /dev/null +++ b/pr-preview/pr-186/assets/js/21637.a5f4c2c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21637],{21637:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_zoom_out:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21.385 19.615l-4.92-4.915a8 8 0 10-1.765 1.765l4.915 4.92c.49.487 1.28.487 1.77 0a1.26 1.26 0 000-1.77zM13 10.75H7a.75.75 0 110-1.5h6a.75.75 0 110 1.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M10 2c4.42 0 8 3.58 8 8 0 1.65-.505 3.177-1.36 4.445l-.175.25 4.92 4.92c.485.49.485 1.28.005 1.77a1.245 1.245 0 01-.885.365c-.274 0-.549-.088-.776-.268l-.109-.097-4.92-4.92A7.961 7.961 0 0110 18c-4.42 0-8-3.58-8-8s3.58-8 8-8zm0 1.5A6.506 6.506 0 003.5 10c0 3.585 2.915 6.5 6.5 6.5s6.5-2.915 6.5-6.5-2.915-6.5-6.5-6.5zm3 5.75a.749.749 0 01.102 1.493L13 10.75H7a.749.749 0 01-.102-1.493L7 9.25h6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2170.7d7ac604.js b/pr-preview/pr-186/assets/js/2170.7d7ac604.js new file mode 100644 index 000000000..c5addf24d --- /dev/null +++ b/pr-preview/pr-186/assets/js/2170.7d7ac604.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2170; +exports.ids = [2170]; +exports.modules = { + +/***/ 22170: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_t_product_telekom_plan: () => (/* binding */ TProductTelekomPlan) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const TProductTelekomPlan = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.5 16.5h-7a.75.75 0 010-1.5h7a.75.75 0 110 1.5zm0 1.5a.75.75 0 110 1.5h-7a.75.75 0 010-1.5h7zm-.385-12.5v2.556h-.447v-.075c0-1.146-.609-1.882-1.762-1.95l-.177-.005h-.075v5.414c0 .705.262 1.013.91 1.049l.134.003h.224v.527h-3.879v-.527h.224c.7 0 1.005-.264 1.04-.917l.004-.135V6.026h-.074c-1.208 0-1.874.682-1.935 1.786l-.004.17v.074H8.85V5.5h6.265zm0 3.342v1.67h-1.67v-1.67h1.67zm-4.594 0v1.67H8.85v-1.67h1.67zM3.5.5v20a3 3 0 003 3h11a3 3 0 003-3V.5h-17z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.5 19.5h7a.75.75 0 000-1.5h-7a.75.75 0 000 1.5zm7-4.5a.75.75 0 010 1.5h-7a.75.75 0 010-1.5zm-.385-9.5v2.556h-.447v-.075c0-1.146-.609-1.882-1.762-1.95l-.177-.005h-.075v5.414c0 .705.262 1.013.91 1.049l.134.003h.224v.527h-3.879v-.527h.224c.7 0 1.005-.264 1.04-.917l.004-.135V6.026h-.074c-1.208 0-1.874.682-1.935 1.786l-.004.17v.074H8.85V5.5h6.265zm0 3.342v1.67h-1.67v-1.67h1.67zm-4.594 0v1.67H8.85v-1.67h1.67zM19 20.5c0 .827-.673 1.5-1.5 1.5h-11c-.828 0-1.5-.673-1.5-1.5V2h14v18.5zM3.5.5v20a3 3 0 003 3h11a3 3 0 003-3V.5h-17z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TProductTelekomPlan.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2176.9317dfd1.js b/pr-preview/pr-186/assets/js/2176.9317dfd1.js new file mode 100644 index 000000000..e9ae78335 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2176.9317dfd1.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2176; +exports.ids = [2176]; +exports.modules = { + +/***/ 19795: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_delivery: () => (/* binding */ ContentDelivery) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentDelivery = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.25 11.5a6.25 6.25 0 100 12.5 6.25 6.25 0 000-12.5zm2.6 3.814c.2 0 .39.08.53.221.294.29.3.762.015 1.06L16.5 20.5 14.045 18a.75.75 0 011.06-1.06l1.395 1.415 2.82-2.82a.745.745 0 01.53-.221zM9 6.5v14H3a3 3 0 01-3-3v-11h9zm10.5 0v3.835a7.745 7.745 0 00-9 3.615V6.5h9zM9 1.5V5H0l3-3.5h6zm7.5 0l3 3.5h-9V1.5h6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.25 11.5c3.45 0 6.25 2.8 6.25 6.25S20.7 24 17.25 24 11 21.2 11 17.75s2.8-6.25 6.25-6.25zm3.1 4.05a.722.722 0 00-.965-.074l-.085.074-2.8 2.8-1.4-1.4c-.3-.3-.75-.3-1.05 0a.722.722 0 00-.074.965l.074.085 2.45 2.5 3.9-3.9c.3-.3.25-.75-.05-1.05zM16.5 1.5l3 3.5v5.35a8.086 8.086 0 00-1.125-.253L18 10.05V6.5h-7.5v3H9v-3H1.5v11c0 .8.576 1.423 1.352 1.493L3 19h6.6c.08.4.16.8.291 1.2l.109.3H3a3.01 3.01 0 01-2.995-2.824L0 17.5V5l3-3.5h13.5zM15.8 3h-5.3v2h7.05L15.8 3zM9 3H3.7L2 5h7V3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentDelivery.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/219.2b14594b.js b/pr-preview/pr-186/assets/js/219.2b14594b.js new file mode 100644 index 000000000..b7cfaea65 --- /dev/null +++ b/pr-preview/pr-186/assets/js/219.2b14594b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 219; +exports.ids = [219]; +exports.modules = { + +/***/ 219: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_security: () => (/* binding */ AlertSecurity) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertSecurity = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1l9.5 2.1v8c0 3.05-1.1 5.95-3 8.2-1.807 2.218-3.884 3.289-5.51 3.877l-.414.144-.39.123L12 23.5l-.267-.07-.23-.067-.412-.133c-.1-.035-.206-.073-.316-.115l-.346-.136A12.802 12.802 0 015.85 19.75a12.774 12.774 0 01-3.344-8.226L2.5 11.15v-8L12 1zm3.3 7.95c.3-.3.75-.3 1.05 0 .273.273.298.67.074.965L16.35 10l-5.05 5.05-3.15-3.15c-.3-.3-.3-.75 0-1.05a.722.722 0 01.965-.074l.085.074 2.15 2.05 3.95-3.95z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1l9.5 2.1v8c0 3.05-1.1 5.95-3 8.2-1.807 2.218-3.884 3.289-5.51 3.877l-.414.144-.39.123L12 23.5l-.267-.07-.23-.067-.412-.133c-.1-.035-.206-.073-.316-.115l-.346-.136A12.802 12.802 0 015.85 19.75a12.774 12.774 0 01-3.344-8.226L2.5 11.15v-8L12 1zm0 1.5L4 4.35v6.8c0 4.95 3.3 9.35 8 10.8 4.606-1.421 7.867-5.675 7.996-10.504L20 11.15v-6.8L12 2.5zm3.3 6.45c.3-.3.75-.3 1.05 0 .273.273.298.67.074.965L16.35 10l-5.05 5.05-3.15-3.15c-.3-.3-.3-.75 0-1.05a.722.722 0 01.965-.074l.085.074 2.15 2.05 3.95-3.95z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertSecurity.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/219.a709a9d6.js b/pr-preview/pr-186/assets/js/219.a709a9d6.js new file mode 100644 index 000000000..a454f11dd --- /dev/null +++ b/pr-preview/pr-186/assets/js/219.a709a9d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[219],{219:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_alert_security:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M12 1l9.5 2.1v8c0 3.05-1.1 5.95-3 8.2-1.807 2.218-3.884 3.289-5.51 3.877l-.414.144-.39.123L12 23.5l-.267-.07-.23-.067-.412-.133c-.1-.035-.206-.073-.316-.115l-.346-.136A12.802 12.802 0 015.85 19.75a12.774 12.774 0 01-3.344-8.226L2.5 11.15v-8L12 1zm3.3 7.95c.3-.3.75-.3 1.05 0 .273.273.298.67.074.965L16.35 10l-5.05 5.05-3.15-3.15c-.3-.3-.3-.75 0-1.05a.722.722 0 01.965-.074l.085.074 2.15 2.05 3.95-3.95z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12 1l9.5 2.1v8c0 3.05-1.1 5.95-3 8.2-1.807 2.218-3.884 3.289-5.51 3.877l-.414.144-.39.123L12 23.5l-.267-.07-.23-.067-.412-.133c-.1-.035-.206-.073-.316-.115l-.346-.136A12.802 12.802 0 015.85 19.75a12.774 12.774 0 01-3.344-8.226L2.5 11.15v-8L12 1zm0 1.5L4 4.35v6.8c0 4.95 3.3 9.35 8 10.8 4.606-1.421 7.867-5.675 7.996-10.504L20 11.15v-6.8L12 2.5zm3.3 6.45c.3-.3.75-.3 1.05 0 .273.273.298.67.074.965L16.35 10l-5.05 5.05-3.15-3.15c-.3-.3-.3-.75 0-1.05a.722.722 0 01.965-.074l.085.074 2.15 2.05 3.95-3.95z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/21ecd8c7.89b8a305.js b/pr-preview/pr-186/assets/js/21ecd8c7.89b8a305.js new file mode 100644 index 000000000..2ff31f759 --- /dev/null +++ b/pr-preview/pr-186/assets/js/21ecd8c7.89b8a305.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[32786],{74853:e=>{e.exports=JSON.parse('{"tag":{"label":"hybrid","permalink":"/docs-next/pr-preview/pr-186/docs/tags/hybrid","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub","title":"Connecting Multiple On-Premises Branch Networks Through a VPN Hub","description":"In this solution we are going to demonstrate how an Enterprise A can implement communication between its two on-premises data centers in order to meet service requirements.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/22032.5671019a.js b/pr-preview/pr-186/assets/js/22032.5671019a.js new file mode 100644 index 000000000..27be0bc52 --- /dev/null +++ b/pr-preview/pr-186/assets/js/22032.5671019a.js @@ -0,0 +1,2 @@ +/*! For license information please see 22032.5671019a.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[22032],{88114:(e,t,a)=>{a.d(t,{c:()=>n});var r,s,i,n=(r=function(e){!function(){var t={}.hasOwnProperty;function a(){for(var e=[],r=0;r{a.r(t),a.d(t,{scale_sidebar_nav:()=>n});var r=a(90936),s=a(88114),i=a(94200);const n=class{constructor(e){(0,r.r)(this,e),this.collapsible=!1,this.collapsibleMediaQuery="(max-width: 30em)",this.collapsibleLabel="Menu",this.collapsed=!0,this.handleMediaQueryChange=e=>{this.collapsible=e.matches},this.toggle=()=>{this.collapsed=!this.collapsed}}componentDidLoad(){this.setNestingLevelOnChildren(),this.setMatchMedia()}disconnectedCallback(){null!=this.mq&&this.mq.removeListener(this.handleMediaQueryChange)}componentDidRender(){this.el.hasAttribute("aria-label")&&(0,i.s)({tag:"deprecated",message:'Property "ariaLabel" is deprecated. Please use the "ariaLabelSidebarNav" property!',type:"warn",source:this.el})}setNestingLevelOnChildren(){!function e(t,a=1){Array.from(t.children).forEach((t=>{"SCALE-SIDEBAR-NAV-COLLAPSIBLE"===t.tagName.toUpperCase()&&(e(t,a+1),t.hasAttribute("nesting-level")||t.setAttribute("nesting-level",String(a)),2!==a||t.hasAttribute("condensed")||t.setAttribute("condensed","true")),"SCALE-SIDEBAR-NAV-ITEM"===t.tagName.toUpperCase()&&(t.hasAttribute("nesting-level")||t.setAttribute("nesting-level",String(a)),3!==a||t.hasAttribute("condensed")||t.setAttribute("condensed","true"))}))}(this.el)}setMatchMedia(){this.collapsibleMediaQuery&&(this.mq=window.matchMedia(this.collapsibleMediaQuery),this.mq.addListener(this.handleMediaQueryChange),this.collapsible=this.mq.matches)}render(){const e=this.ariaLabelSidebarNav?{"aria-label":this.ariaLabelSidebarNav}:{},t=this.collapsible?{hidden:this.collapsed}:{};return(0,r.h)(r.a,null,this.styles&&(0,r.h)("style",null,this.styles),(0,r.h)("div",{part:this.getBasePartMap(),class:this.getCssClassMap()},!0===this.collapsible&&(0,r.h)("button",{part:"toggle-button",class:"sidebar-nav__toggle-button","aria-expanded":this.collapsed?"false":"true",onClick:this.toggle},this.collapsibleLabel,(0,r.h)("scale-icon-navigation-collapse-down",{part:"icon",class:"sidebar-nav__icon",size:20})),(0,r.h)("nav",Object.assign({part:"nav"},e,t),(0,r.h)("ul",{part:"list",class:"sidebar-nav__list",role:"list"},(0,r.h)("slot",null)))))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(e){const t="sidebar-nav",a="basePart"===e?"":`${t}--`;return(0,s.c)(t,this.collapsible&&`${a}collapsible`)}get el(){return(0,r.g)(this)}};n.style=":host{--max-width:15rem;--spacing-indent:var(--telekom-spacing-composition-space-08);--spacing-collapsible:var(--telekom-spacing-composition-space-06);--opacity-chevron:0;--left-current-border:0;--color-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-active:var(--telekom-color-text-and-icon-primary-pressed);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--color-toggle-button:var(--telekom-color-ui-regular);--border-y-toggle-button:1px solid var(--telekom-color-ui-faint);--radius-toggle-button:var(--telekom-radius-small)}.sidebar-nav--collapsible{--max-width:none;--spacing-indent:0;--opacity-chevron:1;--left-current-border:calc(-1 * var(--spacing-collapsible));padding-right:var(--spacing-collapsible);padding-left:var(--spacing-collapsible)}.sidebar-nav__list{list-style:none;max-width:var(--max-width);padding-left:0;margin-top:0;margin-bottom:0}.sidebar-nav__toggle-button{box-sizing:border-box;appearance:none;border:0;background-color:transparent;color:var(--color-toggle-button);width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;text-decoration:none;font-family:inherit;font-size:1rem;padding-top:1rem;padding-right:calc(0.5 * var(--spacing-indent));padding-bottom:1rem;padding-left:var(--spacing-indent);border-radius:var(--radius-toggle-button);border-bottom:var(--border-y-toggle-button);border-top:var(--border-y-toggle-button);cursor:pointer}.sidebar-nav__toggle-button:hover{color:var(--color-hover)}.sidebar-nav__toggle-button:active{color:var(--color-active)}.sidebar-nav__toggle-button:focus{outline:var(--focus-outline)}[aria-expanded='true'] .sidebar-nav__icon{transform:rotate(0.5turn)}"},94200:(e,t,a)=>{a.d(t,{s:()=>i});const r={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},s={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function i({tag:e="WIP",extraMessage:t=null,message:a=null,source:i=null,type:n="info"}){(0,console[n])(`%c scale \u2013 ${r[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${a||s[e]} ${t?"\n"+t:""}\n `,null!==i?"\nsource:":"","object"==typeof i?i:`${i}`,null!==i?"\n\n":"")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/22032.5671019a.js.LICENSE.txt b/pr-preview/pr-186/assets/js/22032.5671019a.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/22032.5671019a.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/2210.fb0f807c.js b/pr-preview/pr-186/assets/js/2210.fb0f807c.js new file mode 100644 index 000000000..6758b8a71 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2210.fb0f807c.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2210; +exports.ids = [2210]; +exports.modules = { + +/***/ 42210: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_left_condensed: () => (/* binding */ NavigationLeftCondensed) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationLeftCondensed = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.797 19.271c-.336 0-.671-.134-.917-.4l-6.368-6.866L13.88 5.14a1.25 1.25 0 111.833 1.7l-4.791 5.166 4.79 5.166a1.252 1.252 0 01-.915 2.1", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.252 12l5.069-5.491a.75.75 0 10-1.102-1.017L8.211 12l6.008 6.509a.748.748 0 001.06.042.75.75 0 00.043-1.059L10.252 12z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationLeftCondensed.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/22170.4322d730.js b/pr-preview/pr-186/assets/js/22170.4322d730.js new file mode 100644 index 000000000..f49715dac --- /dev/null +++ b/pr-preview/pr-186/assets/js/22170.4322d730.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[22170],{22170:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_t_product_telekom_plan:()=>s});var h=i(90936);const s=class{constructor(t){(0,h.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,h.h)(h.a,null,(0,h.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,h.h)("title",null,this.accessibilityTitle),(0,h.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,h.h)("g",null,(0,h.h)("path",{d:"M15.5 16.5h-7a.75.75 0 010-1.5h7a.75.75 0 110 1.5zm0 1.5a.75.75 0 110 1.5h-7a.75.75 0 010-1.5h7zm-.385-12.5v2.556h-.447v-.075c0-1.146-.609-1.882-1.762-1.95l-.177-.005h-.075v5.414c0 .705.262 1.013.91 1.049l.134.003h.224v.527h-3.879v-.527h.224c.7 0 1.005-.264 1.04-.917l.004-.135V6.026h-.074c-1.208 0-1.874.682-1.935 1.786l-.004.17v.074H8.85V5.5h6.265zm0 3.342v1.67h-1.67v-1.67h1.67zm-4.594 0v1.67H8.85v-1.67h1.67zM3.5.5v20a3 3 0 003 3h11a3 3 0 003-3V.5h-17z","fill-rule":"evenodd"})):(0,h.h)("g",null,(0,h.h)("path",{d:"M8.5 19.5h7a.75.75 0 000-1.5h-7a.75.75 0 000 1.5zm7-4.5a.75.75 0 010 1.5h-7a.75.75 0 010-1.5zm-.385-9.5v2.556h-.447v-.075c0-1.146-.609-1.882-1.762-1.95l-.177-.005h-.075v5.414c0 .705.262 1.013.91 1.049l.134.003h.224v.527h-3.879v-.527h.224c.7 0 1.005-.264 1.04-.917l.004-.135V6.026h-.074c-1.208 0-1.874.682-1.935 1.786l-.004.17v.074H8.85V5.5h6.265zm0 3.342v1.67h-1.67v-1.67h1.67zm-4.594 0v1.67H8.85v-1.67h1.67zM19 20.5c0 .827-.673 1.5-1.5 1.5h-11c-.828 0-1.5-.673-1.5-1.5V2h14v18.5zM3.5.5v20a3 3 0 003 3h11a3 3 0 003-3V.5h-17z","fill-rule":"evenodd"})))))}get hostElement(){return(0,h.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2219.871ac67d.js b/pr-preview/pr-186/assets/js/2219.871ac67d.js new file mode 100644 index 000000000..aa595f51d --- /dev/null +++ b/pr-preview/pr-186/assets/js/2219.871ac67d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2219],{2219:(t,e,l)=>{l.r(e),l.d(e,{scale_icon_content_hour_glass:()=>i});var s=l(90936);const i=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M13.493 9.332c-.396.444-.698.77-.924 1.008a.78.78 0 01-1.13.006 44.54 44.54 0 01-.929-1.011L8.119 6.662c1.207.219 2.556.38 3.923.38 1.366 0 2.633-.161 3.84-.38l-2.389 2.67zm3.626 9.388a1.5 1.5 0 01.382 1v.78h-11v-.78c0-.37.135-.725.381-1 1.214-1.356 3.4-3.048 5.119-3.048 1.718 0 3.862 1.645 5.118 3.048zm2.235-11.438a4.496 4.496 0 001.147-3.001V.5h-17v3.78c0 1.107.407 2.176 1.146 3l3.626 4.053a1 1 0 010 1.333l-3.626 4.052a4.499 4.499 0 00-1.146 3v.781a3 3 0 003 3h11a3 3 0 003-3v-.78a4.496 4.496 0 00-1.147-3l-3.625-4.053a1 1 0 010-1.334l3.625-4.052z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12.042 7.041c-1.367 0-2.715-.161-3.922-.378l2.39 2.671c.395.441.7.77.929 1.011a.778.778 0 001.13-.005c.226-.238.527-.565.924-1.009l2.389-2.669c-1.207.218-2.473.379-3.84.379zm-5.16 11.678a1.5 1.5 0 00-.381 1v.781h11v-.781a1.5 1.5 0 00-.382-1c-1.255-1.403-3.4-3.048-5.118-3.048-1.72 0-3.905 1.692-5.118 3.048zm7.73-5.052l3.625 4.052a3 3 0 01.764 2v.781c0 .827-.674 1.5-1.5 1.5h-11c-.828 0-1.5-.673-1.5-1.5v-.781c0-.739.27-1.449.763-2l3.626-4.052c.85-.951.85-2.384 0-3.334L5.764 6.281a2.995 2.995 0 01-.764-2V2h14v2.281a3 3 0 01-.764 2l-3.626 4.052c-.85.95-.85 2.384.002 3.334zm4.742-6.386a4.496 4.496 0 001.147-3V.5h-17v3.781c0 1.106.408 2.175 1.146 3l3.626 4.052c.339.379.339.954 0 1.334l-3.626 4.052a4.5 4.5 0 00-1.146 3v.781a3 3 0 003 3h11a3 3 0 003-3v-.781a4.497 4.497 0 00-1.147-3l-3.625-4.052a1.002 1.002 0 010-1.334l3.625-4.052z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2219.d143da9a.js b/pr-preview/pr-186/assets/js/2219.d143da9a.js new file mode 100644 index 000000000..160a2943e --- /dev/null +++ b/pr-preview/pr-186/assets/js/2219.d143da9a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2219; +exports.ids = [2219]; +exports.modules = { + +/***/ 2219: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_hour_glass: () => (/* binding */ ContentHourGlass) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentHourGlass = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13.493 9.332c-.396.444-.698.77-.924 1.008a.78.78 0 01-1.13.006 44.54 44.54 0 01-.929-1.011L8.119 6.662c1.207.219 2.556.38 3.923.38 1.366 0 2.633-.161 3.84-.38l-2.389 2.67zm3.626 9.388a1.5 1.5 0 01.382 1v.78h-11v-.78c0-.37.135-.725.381-1 1.214-1.356 3.4-3.048 5.119-3.048 1.718 0 3.862 1.645 5.118 3.048zm2.235-11.438a4.496 4.496 0 001.147-3.001V.5h-17v3.78c0 1.107.407 2.176 1.146 3l3.626 4.053a1 1 0 010 1.333l-3.626 4.052a4.499 4.499 0 00-1.146 3v.781a3 3 0 003 3h11a3 3 0 003-3v-.78a4.496 4.496 0 00-1.147-3l-3.625-4.053a1 1 0 010-1.334l3.625-4.052z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.042 7.041c-1.367 0-2.715-.161-3.922-.378l2.39 2.671c.395.441.7.77.929 1.011a.778.778 0 001.13-.005c.226-.238.527-.565.924-1.009l2.389-2.669c-1.207.218-2.473.379-3.84.379zm-5.16 11.678a1.5 1.5 0 00-.381 1v.781h11v-.781a1.5 1.5 0 00-.382-1c-1.255-1.403-3.4-3.048-5.118-3.048-1.72 0-3.905 1.692-5.118 3.048zm7.73-5.052l3.625 4.052a3 3 0 01.764 2v.781c0 .827-.674 1.5-1.5 1.5h-11c-.828 0-1.5-.673-1.5-1.5v-.781c0-.739.27-1.449.763-2l3.626-4.052c.85-.951.85-2.384 0-3.334L5.764 6.281a2.995 2.995 0 01-.764-2V2h14v2.281a3 3 0 01-.764 2l-3.626 4.052c-.85.95-.85 2.384.002 3.334zm4.742-6.386a4.496 4.496 0 001.147-3V.5h-17v3.781c0 1.106.408 2.175 1.146 3l3.626 4.052c.339.379.339.954 0 1.334l-3.626 4.052a4.5 4.5 0 00-1.146 3v.781a3 3 0 003 3h11a3 3 0 003-3v-.781a4.497 4.497 0 00-1.147-3l-3.625-4.052a1.002 1.002 0 010-1.334l3.625-4.052z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentHourGlass.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/22288baf.84926133.js b/pr-preview/pr-186/assets/js/22288baf.84926133.js new file mode 100644 index 000000000..e2a2bbd44 --- /dev/null +++ b/pr-preview/pr-186/assets/js/22288baf.84926133.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[386],{36795:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var s=t(74848),o=t(28453);const i={id:"vpc-and-subnet-planning-suggestions",title:"VPC and Subnet Planning Suggestions",tags:["vpc"]},a="VPC and Subnet Planning Suggestions",r={id:"best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions",title:"VPC and Subnet Planning Suggestions",description:"Before creating your VPCs, determine how many VPCs, the number of",source:"@site/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions.md",sourceDirName:"best-practices/networking/virtual-private-cloud",slug:"/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions.md",tags:[{inline:!0,label:"vpc",permalink:"/docs-next/pr-preview/pr-186/docs/tags/vpc"}],version:"current",frontMatter:{id:"vpc-and-subnet-planning-suggestions",title:"VPC and Subnet Planning Suggestions",tags:["vpc"]},sidebar:"bestPracticesSidebar",previous:{title:"Using a Public NAT Gateway and VPC Peering to Enable Communications Between VPCs and the Internet",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internet"},next:{title:"Unsupported VPC Peering Configurations",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurations"}},c={},l=[{value:"How Do I Determine How Many VPCs I Need?",id:"how-do-i-determine-how-many-vpcs-i-need",level:2},{value:"One VPC",id:"one-vpc",level:3},{value:"Multiple VPCs",id:"multiple-vpcs",level:3},{value:"How Do I Plan Subnets?",id:"how-do-i-plan-subnets",level:2},{value:"How Do I Plan Routing Policies?",id:"how-do-i-plan-routing-policies",level:2},{value:"How Do I Connect to an On-Premises Data Center?",id:"how-do-i-connect-to-an-on-premises-data-center",level:2},{value:"How Do I Access the Internet?",id:"how-do-i-access-the-internet",level:2},{value:"Use EIPs to enable a small number of ECSs to access the Internet",id:"use-eips-to-enable-a-small-number-of-ecss-to-access-the-internet",level:3},{value:"Use a NAT gateway to enable a large number of ECSs to access the Internet",id:"use-a-nat-gateway-to-enable-a-large-number-of-ecss-to-access-the-internet",level:3},{value:"Use ELB to access the Internet If there are a large number of concurrent requests",id:"use-elb-to-access-the-internet-if-there-are-a-large-number-of-concurrent-requests",level:3},{value:"Additional Resources",id:"additional-resources",level:2}];function d(e){const n={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"vpc-and-subnet-planning-suggestions",children:"VPC and Subnet Planning Suggestions"}),"\n",(0,s.jsx)(n.p,{children:"Before creating your VPCs, determine how many VPCs, the number of\nsubnets, and what IP address ranges or connectivity options you will\nneed."}),"\n",(0,s.jsx)(n.h2,{id:"how-do-i-determine-how-many-vpcs-i-need",children:"How Do I Determine How Many VPCs I Need?"}),"\n",(0,s.jsx)(n.p,{children:"VPCs are region-specific. By default, networks in VPCs in different\nregions or even in the same region are not connected."}),"\n",(0,s.jsx)(n.h3,{id:"one-vpc",children:"One VPC"}),"\n",(0,s.jsx)(n.p,{children:"If your services do not require network isolation, a single VPC\nshould be enough."}),"\n",(0,s.jsx)(n.h3,{id:"multiple-vpcs",children:"Multiple VPCs"}),"\n",(0,s.jsx)(n.p,{children:"If you have multiple service systems in a region and each service system\nrequires an isolated network, you can create a separate VPC for each\nservice system."}),"\n",(0,s.jsx)(n.p,{children:"If you require network connectivity between separate VPCs in the same\naccount or in different accounts, you can use VPC peering connections or\nCloud Connect."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["If two VPCs are in the same region, use a ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/vpc_peering_connection/vpc_peering_connection_overview.html",children:"VPC peering\nconnection"}),"."]})}),"\n",(0,s.jsx)(n.admonition,{type:"important",children:(0,s.jsxs)(n.p,{children:["By default, you can create a ",(0,s.jsx)(n.strong,{children:"maximum of five VPCs in each region"}),". If\nthis cannot meet your service requirements, request a quota increase.\nFor details, see ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/faq/general_questions/what_is_a_quota.html",children:"How Do I Apply for a Higher\nQuota?"})]})}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the private CIDR blocks that you can specify\nwhen creating a VPC. Consider the following when selecting a VPC CIDR\nblock:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Number of IP addresses: Reserve sufficient IP addresses in case of\nbusiness growth."}),"\n",(0,s.jsx)(n.li,{children:"IP address range: Avoid IP address conflicts if you need to connect\na VPC to an on-premises data center or connect two VPCs."}),"\n"]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"VPC CIDR Block Addresses"}),(0,s.jsx)(n.th,{children:"IP Address Range"}),(0,s.jsx)(n.th,{children:"Maximum Number IP"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"10.0.0.0/8-24"}),(0,s.jsx)(n.td,{children:"10.0.0.0-10.255.255.255"}),(0,s.jsx)(n.td,{children:"2^24-2=16777214"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"172.16.0.0/12-24"}),(0,s.jsx)(n.td,{children:"172.16.0.0-172.31.255.255"}),(0,s.jsx)(n.td,{children:"2^20-2=1048574"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"192.168.0.0/16-24"}),(0,s.jsx)(n.td,{children:"192.168.0.0-192.168.255.255"}),(0,s.jsx)(n.td,{children:"2^16-2=65534"})]})]})]}),"\n",(0,s.jsxs)(n.p,{children:[": ",(0,s.jsx)(n.strong,{children:"Table 1"})," VPC CIDR blocks"]}),"\n",(0,s.jsx)(n.h2,{id:"how-do-i-plan-subnets",children:"How Do I Plan Subnets?"}),"\n",(0,s.jsx)(n.p,{children:"A subnet is a unique CIDR block with a range of IP addresses in a VPC.\nAll resources in a VPC must be deployed on subnets."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"By default, all instances in different subnets of the same VPC can\ncommunicate with each other and the subnets can be located in\ndifferent AZs. For example, VPC-A has subnet A01 in AZ A and subnet\nA02 in AZ B. Subnet A01 and subnet B01 can communicate with each\nother by default."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"After a subnet is created, its CIDR block cannot be modified.\nSubnets in the same VPC cannot overlap."}),"\n",(0,s.jsxs)(n.p,{children:["When you create a VPC, a default subnet will be created together. If\nyou need more subnets, see ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/vpc_and_subnet/subnet/creating_a_subnet_for_the_vpc.html",children:"Creating a Subnet for the\nVPC"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"A subnet mask can be between the netmask of its VPC CIDR block and\n/28 netmask. If a VPC CIDR block is 10.0.0.0/16, its subnet mask can\nbetween 16 to 28."}),"\n",(0,s.jsx)(n.p,{children:"For example, if the CIDR block of VPC-A is 10.0.0.0/16, you can\nspecify 10.0.0.0/24 for subnet A01, 10.0.1.0/24 for subnet A02, and\n10.0.3.0/24 for subnet A03."}),"\n",(0,s.jsx)(n.admonition,{type:"important",children:(0,s.jsxs)(n.p,{children:["By default, you can create a ",(0,s.jsx)(n.strong,{children:"maximum of 100 subnets in each region"}),".\nIf this cannot meet your service requirements, request a quota\nincrease by referring to ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/faq/general_questions/what_is_a_quota.html",children:"How Do I Apply for a Higher\nQuota?"})]})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"When planning subnets, consider the following:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"You create different subnets for different modules in a VPC. For\nexample, in VPC-A, you can create subnet A01 for web services,\nsubnet A02 for management services, and subnet A03 for data\nservices. You can leverage network ACLs to control access to each\nsubnet."}),"\n",(0,s.jsx)(n.li,{children:"If your VPC needs to communicate with an on-premises data center\nthrough VPN or Direct Connect, ensure that the VPC subnet and the\nCIDR block used for communication in the data center do not overlap."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"how-do-i-plan-routing-policies",children:"How Do I Plan Routing Policies?"}),"\n",(0,s.jsx)(n.p,{children:"When you create a VPC, the system automatically generates a default\nroute table for the VPC. If you create a subnet in the VPC, the subnet\nautomatically associates with the default route table. A route table\ncontains a set of routes that are used to determine where network\ntraffic from your subnets in a VPC is directed. The default route table\nensures that subnets in a VPC can communicate with each other."}),"\n",(0,s.jsx)(n.p,{children:"If you do not want to use the default route table, you can now create a\ncustom route table and associate it with the subnets. The custom route\ntable associated with a subnet affects only the outbound traffic. The\ndefault route table controls the inbound traffic."}),"\n",(0,s.jsx)(n.p,{children:"You can add routes to default and custom route tables and configure the\ndestination, next hop type, and next hop in the routes to determine\nwhere network traffic is directed. Routes are classified into system\nroutes and custom routes."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System routes"}),": Routes that are automatically added by the system and\ncannot be modified or deleted. System routes allow instances in a\nVPC to communicate with each other."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Custom routes"}),": Routes that can be modified and deleted. The\ndestination of a custom route cannot overlap with that of a system\nroute."]}),"\n",(0,s.jsx)(n.admonition,{type:"caution",children:(0,s.jsx)(n.p,{children:"You cannot add two routes with the same destination to a VPC route\ntable even if their next hop types are different, because the\ndestination determines the route priority. According to the longest\nmatch routing rule, the destination with a higher matching degree is\npreferentially selected for packet forwarding."})}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"how-do-i-connect-to-an-on-premises-data-center",children:"How Do I Connect to an On-Premises Data Center?"}),"\n",(0,s.jsx)(n.p,{children:"If you require interconnection between a VPC and an on-premises data\ncenter, ensure that the VPC does not have an overlapping IP address\nrange with the on-premises data center to be connected."}),"\n",(0,s.jsx)(n.p,{children:"As shown in below, you have VPC 1 in region A and VPC 2 and VPC 3 in region B.\nTo connect to an on-premises data center, they can use a VPN, as VPC 1\ndoes in Region A; or a Direct Connect connection, as VPC 2 does in\nRegion B. VPC 2 connects to the data center through a Direct Connect\nconnection, but to connect to another VPC in that region, like VPC 3, a\nVPC peering connection must be established."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Figure 1 Connections to on-premises data\ncenters",src:t(32297).A+"",width:"1126",height:"599"})}),"\n",(0,s.jsx)(n.p,{children:"When planning CIDR blocks for VPC 1, VPC 2, and VPC 3:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The CIDR block of VPC 1 cannot overlap with the CIDR block of the\non-premises data center in Region A."}),"\n",(0,s.jsx)(n.li,{children:"The CIDR block of VPC 2 cannot overlap with the CIDR block of the\non-premises data center in Region B."}),"\n",(0,s.jsx)(n.li,{children:"The CIDR blocks of VPC 2 and VPC 3 cannot overlap."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"how-do-i-access-the-internet",children:"How Do I Access the Internet?"}),"\n",(0,s.jsx)(n.h3,{id:"use-eips-to-enable-a-small-number-of-ecss-to-access-the-internet",children:"Use EIPs to enable a small number of ECSs to access the Internet"}),"\n",(0,s.jsx)(n.p,{children:"When only a few ECSs need to access the Internet, you can bind the EIPs\nto the ECSs. This will provide them with Internet access. You can also\ndynamically unbind the EIPs from the ECSs and bind them to NAT gateways\nand load balancers instead, which will also provide Internet access. The\nprocess is not complicated."}),"\n",(0,s.jsxs)(n.p,{children:["For more information about EIP, see ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-ip/umn/service_overview/index.html",children:"EIP\nOverview"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"use-a-nat-gateway-to-enable-a-large-number-of-ecss-to-access-the-internet",children:"Use a NAT gateway to enable a large number of ECSs to access the Internet"}),"\n",(0,s.jsx)(n.p,{children:"When a large number of ECSs need to access the Internet, the public\ncloud provides NAT gateways for your ECSs. With NAT gateways, you do not\nneed to assign an EIP to each ECS. NAT gateways reduce costs as you do\nnot need so many EIPs. NAT gateways offer both source network address\ntranslation (SNAT) and destination network address translation (DNAT).\nSNAT allows multiple ECSs in the same VPC to share one or more EIPs to\naccess the Internet. SNAT prevents the EIPs of ECSs from being exposed\nto the Internet. DNAT can implement port-level data forwarding. It maps\nEIP ports to ECS ports so that the ECSs in a VPC can share the same EIP\nand bandwidth to provide Internet-accessible services."}),"\n",(0,s.jsxs)(n.p,{children:["For more information, see ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/nat-gateway/umn/",children:"NAT Gateway User\nGuide"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"use-elb-to-access-the-internet-if-there-are-a-large-number-of-concurrent-requests",children:"Use ELB to access the Internet If there are a large number of concurrent requests"}),"\n",(0,s.jsx)(n.p,{children:"In high-concurrency scenarios, such as e-commerce, you can use load\nbalancers provided by the ELB service to evenly distribute incoming\ntraffic across multiple ECSs, allowing a large number of users to\nconcurrently access your business system or application. ELB is deployed\nin the cluster mode. It provides fault tolerance for your applications\nby automatically balancing traffic across multiple AZs. You can also\ntake advantage of deep integration with Auto Scaling (AS), which enables\nautomatic scaling based on service traffic and ensures service stability\nand reliability."}),"\n",(0,s.jsxs)(n.p,{children:["For more information, see ",(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-load-balancing/umn/",children:"Elastic Load Balance User\nGuide"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"additional-resources",children:"Additional Resources"}),"\n",(0,s.jsx)(n.admonition,{title:"See Also",type:"info",children:(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/service_overview/application_scenarios.html",children:"Application Scenarios"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://support.huaweicloud.com/intl/en-us/bestpractice-vpc/bestpractice_0007.html",children:"Private Network Access"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://support.huaweicloud.com/intl/en-us/bestpractice-vpc/bestpractice_0004.html",children:"Public Network Access"})}),"\n"]})})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},32297:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/en-us_image_0287297889-c6e3dcfe9ab4c72107fdc2b1b04af081.png"},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>r});var s=t(96540);const o={},i=s.createContext(o);function a(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2247.571b6769.js b/pr-preview/pr-186/assets/js/2247.571b6769.js new file mode 100644 index 000000000..89503fc57 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2247.571b6769.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2247; +exports.ids = [2247]; +exports.modules = { + +/***/ 62247: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_happy_person: () => (/* binding */ CommunicationHappyPerson) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationHappyPerson = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.75 4.75a2.126 2.126 0 100-4.252 2.126 2.126 0 00.002 4.252m7.44-1.426a.925.925 0 00-1.301.138c-.68.838-1.576 1.854-1.828 2.028-1.951 1.341-7.306.664-8.816-.75-.238-.263-1.007-1.756-1.576-2.985a.926.926 0 00-1.679.779c.517 1.116 1.46 3.06 1.977 3.543.609.571 1.55 1.045 2.65 1.39-.086 1.056-.274 3.4-.377 5.04-.111 1.778-.19 4.755-.218 5.953-.012.5.192.983.558 1.324l3.652 3.392a.95.95 0 001.368-1.313l-3.024-3.541.287-3.477 3.36 1.339-.657 4.149a.95.95 0 001.86.379l1.337-5.346a.951.951 0 00-.495-1.079l-3.523-1.774.51-4.441c1.492-.063 2.885-.392 3.854-1.057.597-.411 1.849-1.933 2.218-2.389a.926.926 0 00-.137-1.302", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.75 4.75a2.126 2.126 0 100-4.252 2.126 2.126 0 00.002 4.252m7.44-1.426a.925.925 0 00-1.301.138c-.68.838-1.576 1.854-1.828 2.028-1.951 1.341-7.306.664-8.816-.75-.238-.263-1.007-1.756-1.576-2.985a.926.926 0 00-1.679.779c.517 1.116 1.46 3.06 1.977 3.543.609.571 1.55 1.045 2.65 1.39-.086 1.056-.274 3.4-.377 5.04-.111 1.778-.19 4.755-.218 5.953-.012.5.192.983.558 1.324l3.652 3.392a.95.95 0 001.368-1.313l-3.024-3.541.287-3.477 3.36 1.339-.657 4.149a.95.95 0 001.86.379l1.337-5.346a.951.951 0 00-.495-1.079l-3.523-1.774.51-4.441c1.492-.063 2.885-.392 3.854-1.057.597-.411 1.849-1.933 2.218-2.389a.926.926 0 00-.137-1.302", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationHappyPerson.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2271.2a7c218e.js b/pr-preview/pr-186/assets/js/2271.2a7c218e.js new file mode 100644 index 000000000..5c2545cdd --- /dev/null +++ b/pr-preview/pr-186/assets/js/2271.2a7c218e.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2271; +exports.ids = [2271]; +exports.modules = { + +/***/ 62271: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_sort_indicator_mini_down: () => (/* binding */ ContentSortIndicatorMiniDown) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentSortIndicatorMiniDown = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.667 10L12 14l4.334-4z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.667 10L12 14l4.334-4z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentSortIndicatorMiniDown.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/22858.b9fb3ee8.js b/pr-preview/pr-186/assets/js/22858.b9fb3ee8.js new file mode 100644 index 000000000..4ab9eccb1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/22858.b9fb3ee8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[22858],{22858:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_bank:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M13.25 4.75a1.25 1.25 0 10-2.5 0 1.25 1.25 0 002.5 0zM23.5 4.5v4H.5v-4L12 .5l11.5 4zm0 15.5v2H.5v-2a3 3 0 012-2.826V10h3v7h2v-7H11v7h2v-7h3.5v7h2v-7h3v7.174c1.165.412 2 1.52 2 2.826z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 3.5a1.25 1.25 0 100 2.498A1.25 1.25 0 0012 3.5zM2 7V5.566l10-3.478 10 3.478V7H2zm15 10h3V8.5h-3V17zm-6.5 0h3V8.5h-3V17zM4 17h3V8.5H4V17zm18 3v.5H2V20c0-.827.674-1.5 1.5-1.5h17c.828 0 1.5.673 1.5 1.5zm1.5-11.5v-4L12 .5.5 4.5v4h2v8.674A3 3 0 00.5 20v2h23v-2a3 3 0 00-2-2.826V8.5h2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2294.991deb1c.js b/pr-preview/pr-186/assets/js/2294.991deb1c.js new file mode 100644 index 000000000..613c293ac --- /dev/null +++ b/pr-preview/pr-186/assets/js/2294.991deb1c.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2294; +exports.ids = [2294]; +exports.modules = { + +/***/ 32294: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_move: () => (/* binding */ ActionMove) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionMove = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.5 12L18 8.4v2.35h-4.75V6h2.35L12 .5 8.4 6h2.35v4.75H6V8.4L.5 12 6 15.6v-2.35h4.75V18H8.4l3.6 5.5 3.6-5.5h-2.35v-4.75H18v2.35z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.5 12L18 8.4v2.85h-5.25V6h2.85L12 .5 8.4 6h2.85v5.25H6V8.4L.5 12 6 15.6v-2.85h5.25V18H8.4l3.6 5.5 3.6-5.5h-2.85v-5.25H18v2.85z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionMove.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/230.4cf9dae1.js b/pr-preview/pr-186/assets/js/230.4cf9dae1.js new file mode 100644 index 000000000..baf66caf7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/230.4cf9dae1.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 230; +exports.ids = [230]; +exports.modules = { + +/***/ 10230: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_play_nb: () => (/* binding */ ActionPlayNb) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPlayNb = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6 20l14-8L6 4z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6 20l14-8L6 4z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPlayNb.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/231.07985d80.js b/pr-preview/pr-186/assets/js/231.07985d80.js new file mode 100644 index 000000000..63acc5022 --- /dev/null +++ b/pr-preview/pr-186/assets/js/231.07985d80.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 231; +exports.ids = [231]; +exports.modules = { + +/***/ 60231: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_unknown: () => (/* binding */ AlertUnknown) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertUnknown = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2 2v17a3 3 0 003 3h14a3 3 0 003-3V2H2zm10 15.5a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zm1.75-5.5c-.5.43-.935.835-.935 1.46v.33H11.07v-.6c0-1.03.61-1.525 1.205-2 .5-.395.945-.77.945-1.395A1.045 1.045 0 0012.1 8.66a1.145 1.145 0 00-1.165 1.16H9.12a2.84 2.84 0 013-2.8c1.695 0 2.925 1.125 2.925 2.67-.02 1.17-.695 1.775-1.295 2.31z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22 2v17a3 3 0 01-2.824 2.995L19 22H5a3 3 0 01-2.995-2.824L2 19V2h20zm-1.5 1.5h-17V19c0 .778.596 1.42 1.356 1.493L5 20.5h14c.778 0 1.42-.596 1.493-1.356L20.5 19V3.5zM12 15a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm.1-7.98c1.696 0 2.927 1.123 2.927 2.67 0 1.023-.519 1.616-1.049 2.108l-.462.42c-.346.323-.636.654-.69 1.095l-.01.151v.332H11.07v-.602c0-.823.392-1.305.852-1.711l.234-.198.357-.294c.388-.33.707-.675.707-1.196 0-.699-.428-1.134-1.118-1.134-.612 0-1.02.367-1.146 1.015l-.023.143H9.12c.084-1.412 1.026-2.799 2.98-2.799z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertUnknown.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2320.99375487.js b/pr-preview/pr-186/assets/js/2320.99375487.js new file mode 100644 index 000000000..98334563d --- /dev/null +++ b/pr-preview/pr-186/assets/js/2320.99375487.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2320; +exports.ids = [2320]; +exports.modules = { + +/***/ 12320: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_billing: () => (/* binding */ UserFileBilling) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileBilling = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19 4.03v1.5l1.145.105-1.4 15.435a1.5 1.5 0 01-1.5 1.365h-.14L7.15 21.53 7 21.5H4.67A3 3 0 007.015 23l9.985.925c.092.005.183.005.275 0a3 3 0 003-2.73L21.77 4.28 19 4.03zM7 4V0L1.5 5.5h4A1.5 1.5 0 007 4zm10.5 13V0H8v4a2.5 2.5 0 01-2.5 2.5h-4V17a3 3 0 003 3h10a3 3 0 003-3zm-5.535-2.135c-.162.064-.33.114-.5.15-.17.035-.34.06-.5.08-.16.02-.345 0-.5 0A3.235 3.235 0 018.43 14.5a3.3 3.3 0 01-1.115-2.045h-1l.355-1h.535v-.64h-.9l.355-1h.68c.096-.43.265-.842.5-1.215a2.92 2.92 0 01.73-.805 2.71 2.71 0 01.915-.455 3.775 3.775 0 011.015-.205 5.14 5.14 0 011.74.29l-.385 1.115a2.625 2.625 0 00-.555-.15 5.44 5.44 0 00-.75-.045c-.4-.011-.794.104-1.125.33a2.05 2.05 0 00-.715 1.08h2.84l-.285 1h-2.72a1.03 1.03 0 000 .17v.47h2.5l-.285 1H8.71c.109.433.352.82.695 1.105a2 2 0 001.265.375c.268.005.536-.03.795-.1.21-.06.41-.143.6-.25l.295 1.09c-.12.1-.253.185-.395.25z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19 4.05l2.8.25-1.55 16.95a2.978 2.978 0 01-3.074 2.71L17 23.95 7 23a2.777 2.777 0 01-2.261-1.344L4.65 21.5H7a.161.161 0 00.112.05h.038l9.95.9a1.49 1.49 0 001.635-1.218l.015-.132 1.4-15.45-1.15-.1v-1.5zM17.5 0v17a3.01 3.01 0 01-2.824 2.995L14.5 20h-10a3.01 3.01 0 01-2.995-2.824L1.5 17V5l5-5h11zM16 1.5H7.5v3c0 .8-.576 1.423-1.352 1.493L6 6H3v11c0 .8.576 1.423 1.352 1.493l.148.007h10c.8 0 1.423-.576 1.493-1.352L16 17V1.5zM8.6 7.9c.941-.706 2.414-.747 3.5-.375l.2.075-.4 1.1c-.6-.25-1.75-.35-2.45.15a2.152 2.152 0 00-.64.92l-.06.18h2.85l-.3 1H8.55v.65h2.5l-.3 1H8.7c.15.5.4.85.7 1.1.562.422 1.608.536 2.52.096l.18-.096.3 1.1c-.85.6-2.8.65-3.95-.2-.5-.41-.835-.983-1.042-1.798l-.058-.252h-1l.35-1h.55v-.65h-.9l.35-1h.7c.2-.8.55-1.5 1.2-2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileBilling.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2324.8d202836.js b/pr-preview/pr-186/assets/js/2324.8d202836.js new file mode 100644 index 000000000..cb3dd2fca --- /dev/null +++ b/pr-preview/pr-186/assets/js/2324.8d202836.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2324; +exports.ids = [2324]; +exports.modules = { + +/***/ 72324: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_pdf_file: () => (/* binding */ UserFilePdfFile) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFilePdfFile = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 17.5L15.5 23v-4a1.5 1.5 0 011.356-1.493L17 17.5h4zM21 1v15.5h-4a2.5 2.5 0 00-2.495 2.336L14.5 19v4H6a3 3 0 01-2.995-2.824L3 20V1h18zM8.545 6.877L8.4 6.88H6.605v4.845h.975v-1.63h.82A1.5 1.5 0 0010 8.5a1.5 1.5 0 00-1.455-1.623zm3.83.003H10.69v4.845h1.685c1.26 0 2.05-.845 2.05-2.42 0-1.51-.726-2.353-1.895-2.42l-.155-.005zm5.625 0h-2.805v4.845h1V9.79h1.73v-.91h-1.73V7.79H18v-.91zm-5.7.91c.7 0 1.11.48 1.11 1.53 0 .988-.385 1.445-.993 1.495l-.117.005h-.63V7.79h.63zm-3.965 0A.635.635 0 019 8.5a.635.635 0 01-.556.681l-.109.004H7.58V7.79h.755z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 1v17l-5 5H6a3.003 3.003 0 01-2.995-2.824L3 20V1h18zm-1.5 1.5h-15V20c0 .776.598 1.42 1.356 1.493L6 21.5h9v-3c0-.781.593-1.42 1.355-1.493L16.5 17h3V2.5zM8.315 7.05c.94 0 1.6.58 1.6 1.61 0 .973-.589 1.535-1.446 1.595l-.154.005H7.5v1.63h-.98V7.05h1.795zm3.885 0c1.26 0 2.05.845 2.05 2.42 0 1.505-.726 2.348-1.895 2.416l-.155.004h-1.68V7.05h1.68zm5.59-.005v.91h-1.795v1.09h1.73v.91h-1.73v1.935h-.98V7.045h2.775zm-5.665.91h-.63v3.03h.63c.675 0 1.11-.45 1.11-1.515 0-1.002-.385-1.46-.993-1.51l-.117-.005zm-3.875 0h-.755v1.4h.755c.365 0 .65-.245.65-.695 0-.418-.231-.659-.551-.699l-.099-.006z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFilePdfFile.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/23265.87c633be.js b/pr-preview/pr-186/assets/js/23265.87c633be.js new file mode 100644 index 000000000..238436c0c --- /dev/null +++ b/pr-preview/pr-186/assets/js/23265.87c633be.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[23265],{23265:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_weather_moon_thunder_snow:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M8.41 15.2l-2.562 3.6h2.487L3.29 22.878c-.128.103-.296-.029-.254-.166l.023-.046L4.863 20H2.951l2.662-4.8H8.41zm3.471-.178l1.04.6-.681 1.178h1.36V18h-1.36l.68 1.179-1.039.6-.68-1.179-.68 1.179-1.04-.6.68-1.179h-1.36v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zM10.107 5.98a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.26 3.753 4.239 4.239 0 01-2.606 3.913l-.193.075V15.9a.998.998 0 00-.401-.801l-.099-.065-2.6-1.504a1 1 0 00-.882-.059l-.12.06-.779.45L4.906 14l-1.902 3.431A3.864 3.864 0 01.4 13.777c0-1.4.755-2.683 1.952-3.365.102-1.822 1.607-3.273 3.443-3.273.27 0 .54.033.805.098a5.53 5.53 0 013.506-1.256zm8.07-5.476a5.377 5.377 0 012.621-.03 4.548 4.548 0 003.057 8.515 5.377 5.377 0 01-2.933 1.969 5.37 5.37 0 01-2.685.015A5.421 5.421 0 0016.3 8.79a6.749 6.749 0 00-2.137-2.676A5.404 5.404 0 0118.177.505z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M8.41 15.2l-2.562 3.6h2.487l-5.047 4.078c-.127.103-.295-.029-.253-.166l.022-.046L4.863 20H2.95l2.661-4.8H8.41zm3.47-.178l1.04.6-.68 1.178h1.36V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6.68-1.178H8.8v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.78-9.04a5.577 5.577 0 015.242 3.638 4.245 4.245 0 012.258 3.744 4.238 4.238 0 01-2.607 3.905l-.193.075v-1.306a3.039 3.039 0 001.6-2.674 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44c0 1.19.781 2.197 1.857 2.542l.164.047-.595 1.074A3.876 3.876 0 01.4 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.176.504a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2330.be820055.js b/pr-preview/pr-186/assets/js/2330.be820055.js new file mode 100644 index 000000000..11abeeb6f --- /dev/null +++ b/pr-preview/pr-186/assets/js/2330.be820055.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2330; +exports.ids = [2330]; +exports.modules = { + +/***/ 52330: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_gender_female: () => (/* binding */ ContentGenderFemale) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentGenderFemale = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6 8.5c0-3.309 2.691-6 6-6s6 2.691 6 6-2.691 6-6 6-6-2.691-6-6m14.5 0C20.5 3.813 16.687 0 12 0 7.313 0 3.5 3.813 3.5 8.5c0 4.261 3.155 7.79 7.25 8.398v1.665H8.693a1.25 1.25 0 100 2.5h2.057v1.664a1.25 1.25 0 002.5 0v-1.664h2.057a1.25 1.25 0 100-2.5H13.25v-1.665c4.095-.608 7.25-4.137 7.25-8.398", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.5 8.5C5.5 4.916 8.418 2 12 2c3.584 0 6.5 2.916 6.5 6.5S15.584 15 12 15a6.508 6.508 0 01-6.5-6.5m14.5 0a8 8 0 00-8-8 8 8 0 00-.75 15.962V19h-2.5a.75.75 0 000 1.5h2.5V23a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.538C16.816 16.083 20 12.665 20 8.5", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentGenderFemale.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2357.3c6fd2e5.js b/pr-preview/pr-186/assets/js/2357.3c6fd2e5.js new file mode 100644 index 000000000..d96e19664 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2357.3c6fd2e5.js @@ -0,0 +1,3167 @@ +"use strict"; +exports.id = 2357; +exports.ids = [2357]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 62357: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_date_picker: () => (/* binding */ DatePicker) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94200); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); + + + + + +let scopeId; +let contentRef; +let hostTagName; +let useNativeShadowDom = false; +let checkSlotFallbackVisibility = false; +let checkSlotRelocate = false; +let isSvgMode = false; +let queuePending = false; +const win = typeof window !== 'undefined' ? window : {}; +const doc = win.document || { head: {} }; +const plt = { + $flags$: 0, + $resourcesUrl$: '', + jmp: (h) => h(), + raf: (h) => requestAnimationFrame(h), + ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts), + rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts), + ce: (eventName, opts) => new CustomEvent(eventName, opts), +}; +const supportsShadow = true; +const promiseResolve = (v) => Promise.resolve(v); +const supportsConstructibleStylesheets = /*@__PURE__*/ (() => { + try { + new CSSStyleSheet(); + return typeof new CSSStyleSheet().replace === 'function'; + } + catch (e) { } + return false; + })() + ; +const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => { + if (listeners) { + listeners.map(([flags, name, method]) => { + const target = getHostListenerTarget(elm, flags) ; + const handler = hostListenerProxy(hostRef, method); + const opts = hostListenerOpts(flags); + plt.ael(target, name, handler, opts); + (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts)); + }); + } +}; +const hostListenerProxy = (hostRef, methodName) => (ev) => { + try { + { + if (hostRef.$flags$ & 256 /* isListenReady */) { + // instance is ready, let's call it's member method for this event + hostRef.$lazyInstance$[methodName](ev); + } + else { + (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]); + } + } + } + catch (e) { + consoleError(e); + } +}; +const getHostListenerTarget = (elm, flags) => { + if (flags & 4 /* TargetDocument */) + return doc; + if (flags & 8 /* TargetWindow */) + return win; + return elm; +}; +// prettier-ignore +const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0; +const CONTENT_REF_ID = 'r'; +const ORG_LOCATION_ID = 'o'; +const SLOT_NODE_ID = 's'; +const TEXT_NODE_ID = 't'; +const HYDRATE_ID = 's-id'; +const HYDRATED_STYLE_ID = 'sty-id'; +const HYDRATE_CHILD_ID = 'c-id'; +const XLINK_NS = 'http://www.w3.org/1999/xlink'; +const createTime = (fnName, tagName = '') => { + { + return () => { + return; + }; + } +}; +const uniqueTime = (key, measureText) => { + { + return () => { + return; + }; + } +}; +const rootAppliedStyles = new WeakMap(); +const registerStyle = (scopeId, cssText, allowCS) => { + let style = styles.get(scopeId); + if (supportsConstructibleStylesheets && allowCS) { + style = (style || new CSSStyleSheet()); + style.replace(cssText); + } + else { + style = cssText; + } + styles.set(scopeId, style); +}; +const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => { + let scopeId = getScopeId(cmpMeta); + const style = styles.get(scopeId); + // if an element is NOT connected then getRootNode() will return the wrong root node + // so the fallback is to always use the document for the root node in those cases + styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc; + if (style) { + if (typeof style === 'string') { + styleContainerNode = styleContainerNode.head || styleContainerNode; + let appliedStyles = rootAppliedStyles.get(styleContainerNode); + let styleElm; + if (!appliedStyles) { + rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set())); + } + if (!appliedStyles.has(scopeId)) { + if (styleContainerNode.host && + (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId}"]`))) { + // This is only happening on native shadow-dom, do not needs CSS var shim + styleElm.innerHTML = style; + } + else { + { + styleElm = doc.createElement('style'); + styleElm.innerHTML = style; + } + styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link')); + } + if (appliedStyles) { + appliedStyles.add(scopeId); + } + } + } + else if (!styleContainerNode.adoptedStyleSheets.includes(style)) { + styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style]; + } + } + return scopeId; +}; +const attachStyles = (hostRef) => { + const cmpMeta = hostRef.$cmpMeta$; + const elm = hostRef.$hostElement$; + const flags = cmpMeta.$flags$; + const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$); + const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta); + if (flags & 10 /* needsScopedEncapsulation */) { + // only required when we're NOT using native shadow dom (slot) + // or this browser doesn't support native shadow dom + // and this host element was NOT created with SSR + // let's pick out the inner content for slot projection + // create a node to represent where the original + // content was first placed, which is useful later on + // DOM WRITE!! + elm['s-sc'] = scopeId; + elm.classList.add(scopeId + '-h'); + } + endAttachStyles(); +}; +const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$); +/** + * Default style mode id + */ +/** + * Reusable empty obj/array + * Don't add values to these!! + */ +const EMPTY_OBJ = {}; +/** + * Namespaces + */ +const SVG_NS = 'http://www.w3.org/2000/svg'; +const HTML_NS = 'http://www.w3.org/1999/xhtml'; +const isDef = (v) => v != null; +const isComplexType = (o) => { + // https://jsperf.com/typeof-fn-object/5 + o = typeof o; + return o === 'object' || o === 'function'; +}; +/** + * Production h() function based on Preact by + * Jason Miller (@developit) + * Licensed under the MIT License + * https://github.com/developit/preact/blob/master/LICENSE + * + * Modified for Stencil's compiler and vdom + */ +// const stack: any[] = []; +// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode; +// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode; +const h = (nodeName, vnodeData, ...children) => { + let child = null; + let key = null; + let slotName = null; + let simple = false; + let lastSimple = false; + const vNodeChildren = []; + const walk = (c) => { + for (let i = 0; i < c.length; i++) { + child = c[i]; + if (Array.isArray(child)) { + walk(child); + } + else if (child != null && typeof child !== 'boolean') { + if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) { + child = String(child); + } + if (simple && lastSimple) { + // If the previous child was simple (string), we merge both + vNodeChildren[vNodeChildren.length - 1].$text$ += child; + } + else { + // Append a new vNode, if it's text, we create a text vNode + vNodeChildren.push(simple ? newVNode(null, child) : child); + } + lastSimple = simple; + } + } + }; + walk(children); + if (vnodeData) { + // normalize class / classname attributes + if (vnodeData.key) { + key = vnodeData.key; + } + if (vnodeData.name) { + slotName = vnodeData.name; + } + { + const classData = vnodeData.className || vnodeData.class; + if (classData) { + vnodeData.class = + typeof classData !== 'object' + ? classData + : Object.keys(classData) + .filter((k) => classData[k]) + .join(' '); + } + } + } + if (typeof nodeName === 'function') { + // nodeName is a functional component + return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils); + } + const vnode = newVNode(nodeName, null); + vnode.$attrs$ = vnodeData; + if (vNodeChildren.length > 0) { + vnode.$children$ = vNodeChildren; + } + { + vnode.$key$ = key; + } + { + vnode.$name$ = slotName; + } + return vnode; +}; +const newVNode = (tag, text) => { + const vnode = { + $flags$: 0, + $tag$: tag, + $text$: text, + $elm$: null, + $children$: null, + }; + { + vnode.$attrs$ = null; + } + { + vnode.$key$ = null; + } + { + vnode.$name$ = null; + } + return vnode; +}; +const Host = {}; +const isHost = (node) => node && node.$tag$ === Host; +const vdomFnUtils = { + forEach: (children, cb) => children.map(convertToPublic).forEach(cb), + map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate), +}; +const convertToPublic = (node) => ({ + vattrs: node.$attrs$, + vchildren: node.$children$, + vkey: node.$key$, + vname: node.$name$, + vtag: node.$tag$, + vtext: node.$text$, +}); +const convertToPrivate = (node) => { + if (typeof node.vtag === 'function') { + const vnodeData = Object.assign({}, node.vattrs); + if (node.vkey) { + vnodeData.key = node.vkey; + } + if (node.vname) { + vnodeData.name = node.vname; + } + return h(node.vtag, vnodeData, ...(node.vchildren || [])); + } + const vnode = newVNode(node.vtag, node.vtext); + vnode.$attrs$ = node.vattrs; + vnode.$children$ = node.vchildren; + vnode.$key$ = node.vkey; + vnode.$name$ = node.vname; + return vnode; +}; +/** + * Production setAccessor() function based on Preact by + * Jason Miller (@developit) + * Licensed under the MIT License + * https://github.com/developit/preact/blob/master/LICENSE + * + * Modified for Stencil's compiler and vdom + */ +const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => { + if (oldValue !== newValue) { + let isProp = isMemberInElement(elm, memberName); + let ln = memberName.toLowerCase(); + if (memberName === 'class') { + const classList = elm.classList; + const oldClasses = parseClassList(oldValue); + const newClasses = parseClassList(newValue); + classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c))); + classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c))); + } + else if (memberName === 'style') { + // update style attribute, css properties and values + { + for (const prop in oldValue) { + if (!newValue || newValue[prop] == null) { + if (prop.includes('-')) { + elm.style.removeProperty(prop); + } + else { + elm.style[prop] = ''; + } + } + } + } + for (const prop in newValue) { + if (!oldValue || newValue[prop] !== oldValue[prop]) { + if (prop.includes('-')) { + elm.style.setProperty(prop, newValue[prop]); + } + else { + elm.style[prop] = newValue[prop]; + } + } + } + } + else if (memberName === 'key') + ; + else if (memberName === 'ref') { + // minifier will clean this up + if (newValue) { + newValue(elm); + } + } + else if ((!isProp ) && + memberName[0] === 'o' && + memberName[1] === 'n') { + // Event Handlers + // so if the member name starts with "on" and the 3rd characters is + // a capital letter, and it's not already a member on the element, + // then we're assuming it's an event listener + if (memberName[2] === '-') { + // on- prefixed events + // allows to be explicit about the dom event to listen without any magic + // under the hood: + // // listens for "click" + // // listens for "Click" + // // listens for "ionChange" + // // listens for "EVENTS" + memberName = memberName.slice(3); + } + else if (isMemberInElement(win, ln)) { + // standard event + // the JSX attribute could have been "onMouseOver" and the + // member name "onmouseover" is on the window's prototype + // so let's add the listener "mouseover", which is all lowercased + memberName = ln.slice(2); + } + else { + // custom event + // the JSX attribute could have been "onMyCustomEvent" + // so let's trim off the "on" prefix and lowercase the first character + // and add the listener "myCustomEvent" + // except for the first character, we keep the event name case + memberName = ln[2] + memberName.slice(3); + } + if (oldValue) { + plt.rel(elm, memberName, oldValue, false); + } + if (newValue) { + plt.ael(elm, memberName, newValue, false); + } + } + else { + // Set property if it exists and it's not a SVG + const isComplex = isComplexType(newValue); + if ((isProp || (isComplex && newValue !== null)) && !isSvg) { + try { + if (!elm.tagName.includes('-')) { + const n = newValue == null ? '' : newValue; + // Workaround for Safari, moving the caret when re-assigning the same valued + if (memberName === 'list') { + isProp = false; + } + else if (oldValue == null || elm[memberName] != n) { + elm[memberName] = n; + } + } + else { + elm[memberName] = newValue; + } + } + catch (e) { } + } + /** + * Need to manually update attribute if: + * - memberName is not an attribute + * - if we are rendering the host element in order to reflect attribute + * - if it's a SVG, since properties might not work in + * - if the newValue is null/undefined or 'false'. + */ + let xlink = false; + { + if (ln !== (ln = ln.replace(/^xlink\:?/, ''))) { + memberName = ln; + xlink = true; + } + } + if (newValue == null || newValue === false) { + if (newValue !== false || elm.getAttribute(memberName) === '') { + if (xlink) { + elm.removeAttributeNS(XLINK_NS, memberName); + } + else { + elm.removeAttribute(memberName); + } + } + } + else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) { + newValue = newValue === true ? '' : newValue; + if (xlink) { + elm.setAttributeNS(XLINK_NS, memberName, newValue); + } + else { + elm.setAttribute(memberName, newValue); + } + } + } + } +}; +const parseClassListRegex = /\s/; +const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex)); +const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => { + // if the element passed in is a shadow root, which is a document fragment + // then we want to be adding attrs/props to the shadow root's "host" element + // if it's not a shadow root, then we add attrs/props to the same element + const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host + ? newVnode.$elm$.host + : newVnode.$elm$; + const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ; + const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ; + { + // remove attributes no longer present on the vnode by setting them to undefined + for (memberName in oldVnodeAttrs) { + if (!(memberName in newVnodeAttrs)) { + setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$); + } + } + } + // add new & update changed attributes + for (memberName in newVnodeAttrs) { + setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$); + } +}; +const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => { + // tslint:disable-next-line: prefer-const + const newVNode = newParentVNode.$children$[childIndex]; + let i = 0; + let elm; + let childNode; + let oldVNode; + if (!useNativeShadowDom) { + // remember for later we need to check to relocate nodes + checkSlotRelocate = true; + if (newVNode.$tag$ === 'slot') { + if (scopeId) { + // scoped css needs to add its scoped id to the parent element + parentElm.classList.add(scopeId + '-s'); + } + newVNode.$flags$ |= newVNode.$children$ + ? // slot element has fallback content + 2 /* isSlotFallback */ + : // slot element does not have fallback content + 1 /* isSlotReference */; + } + } + if (newVNode.$text$ !== null) { + // create text node + elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$); + } + else if (newVNode.$flags$ & 1 /* isSlotReference */) { + // create a slot reference node + elm = newVNode.$elm$ = + doc.createTextNode(''); + } + else { + if (!isSvgMode) { + isSvgMode = newVNode.$tag$ === 'svg'; + } + // create element + elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ + ? 'slot-fb' + : newVNode.$tag$) + ); + if (isSvgMode && newVNode.$tag$ === 'foreignObject') { + isSvgMode = false; + } + // add css classes, attrs, props, listeners, etc. + { + updateElement(null, newVNode, isSvgMode); + } + if (isDef(scopeId) && elm['s-si'] !== scopeId) { + // if there is a scopeId and this is the initial render + // then let's add the scopeId as a css class + elm.classList.add((elm['s-si'] = scopeId)); + } + if (newVNode.$children$) { + for (i = 0; i < newVNode.$children$.length; ++i) { + // create the node + childNode = createElm(oldParentVNode, newVNode, i, elm); + // return node could have been null + if (childNode) { + // append our new node + elm.appendChild(childNode); + } + } + } + { + if (newVNode.$tag$ === 'svg') { + // Only reset the SVG context when we're exiting element + isSvgMode = false; + } + else if (elm.tagName === 'foreignObject') { + // Reenter SVG context when we're exiting element + isSvgMode = true; + } + } + } + { + elm['s-hn'] = hostTagName; + if (newVNode.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) { + // remember the content reference comment + elm['s-sr'] = true; + // remember the content reference comment + elm['s-cr'] = contentRef; + // remember the slot name, or empty string for default slot + elm['s-sn'] = newVNode.$name$ || ''; + // check if we've got an old vnode for this slot + oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex]; + if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) { + // we've got an old slot vnode and the wrapper is being replaced + // so let's move the old slot content back to it's original location + putBackInOriginalLocation(oldParentVNode.$elm$, false); + } + } + } + return elm; +}; +const putBackInOriginalLocation = (parentElm, recursive) => { + plt.$flags$ |= 1 /* isTmpDisconnected */; + const oldSlotChildNodes = parentElm.childNodes; + for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) { + const childNode = oldSlotChildNodes[i]; + if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) { + // // this child node in the old element is from another component + // // remove this node from the old slot's parent + // childNode.remove(); + // and relocate it back to it's original location + parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode)); + // remove the old original location comment entirely + // later on the patch function will know what to do + // and move this to the correct spot in need be + childNode['s-ol'].remove(); + childNode['s-ol'] = undefined; + checkSlotRelocate = true; + } + if (recursive) { + putBackInOriginalLocation(childNode, recursive); + } + } + plt.$flags$ &= ~1 /* isTmpDisconnected */; +}; +const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => { + let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm); + let childNode; + if (containerElm.shadowRoot && containerElm.tagName === hostTagName) { + containerElm = containerElm.shadowRoot; + } + for (; startIdx <= endIdx; ++startIdx) { + if (vnodes[startIdx]) { + childNode = createElm(null, parentVNode, startIdx, parentElm); + if (childNode) { + vnodes[startIdx].$elm$ = childNode; + containerElm.insertBefore(childNode, referenceNode(before) ); + } + } + } +}; +const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => { + for (; startIdx <= endIdx; ++startIdx) { + if ((vnode = vnodes[startIdx])) { + elm = vnode.$elm$; + callNodeRefs(vnode); + { + // we're removing this element + // so it's possible we need to show slot fallback content now + checkSlotFallbackVisibility = true; + if (elm['s-ol']) { + // remove the original location comment + elm['s-ol'].remove(); + } + else { + // it's possible that child nodes of the node + // that's being removed are slot nodes + putBackInOriginalLocation(elm, true); + } + } + // remove the vnode's element from the dom + elm.remove(); + } + } +}; +const updateChildren = (parentElm, oldCh, newVNode, newCh) => { + let oldStartIdx = 0; + let newStartIdx = 0; + let idxInOld = 0; + let i = 0; + let oldEndIdx = oldCh.length - 1; + let oldStartVnode = oldCh[0]; + let oldEndVnode = oldCh[oldEndIdx]; + let newEndIdx = newCh.length - 1; + let newStartVnode = newCh[0]; + let newEndVnode = newCh[newEndIdx]; + let node; + let elmToMove; + while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { + if (oldStartVnode == null) { + // Vnode might have been moved left + oldStartVnode = oldCh[++oldStartIdx]; + } + else if (oldEndVnode == null) { + oldEndVnode = oldCh[--oldEndIdx]; + } + else if (newStartVnode == null) { + newStartVnode = newCh[++newStartIdx]; + } + else if (newEndVnode == null) { + newEndVnode = newCh[--newEndIdx]; + } + else if (isSameVnode(oldStartVnode, newStartVnode)) { + patch(oldStartVnode, newStartVnode); + oldStartVnode = oldCh[++oldStartIdx]; + newStartVnode = newCh[++newStartIdx]; + } + else if (isSameVnode(oldEndVnode, newEndVnode)) { + patch(oldEndVnode, newEndVnode); + oldEndVnode = oldCh[--oldEndIdx]; + newEndVnode = newCh[--newEndIdx]; + } + else if (isSameVnode(oldStartVnode, newEndVnode)) { + // Vnode moved right + if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) { + putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false); + } + patch(oldStartVnode, newEndVnode); + parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling); + oldStartVnode = oldCh[++oldStartIdx]; + newEndVnode = newCh[--newEndIdx]; + } + else if (isSameVnode(oldEndVnode, newStartVnode)) { + // Vnode moved left + if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) { + putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false); + } + patch(oldEndVnode, newStartVnode); + parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$); + oldEndVnode = oldCh[--oldEndIdx]; + newStartVnode = newCh[++newStartIdx]; + } + else { + // createKeyToOldIdx + idxInOld = -1; + { + for (i = oldStartIdx; i <= oldEndIdx; ++i) { + if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) { + idxInOld = i; + break; + } + } + } + if (idxInOld >= 0) { + elmToMove = oldCh[idxInOld]; + if (elmToMove.$tag$ !== newStartVnode.$tag$) { + node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm); + } + else { + patch(elmToMove, newStartVnode); + oldCh[idxInOld] = undefined; + node = elmToMove.$elm$; + } + newStartVnode = newCh[++newStartIdx]; + } + else { + // new element + node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm); + newStartVnode = newCh[++newStartIdx]; + } + if (node) { + { + parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$)); + } + } + } + } + if (oldStartIdx > oldEndIdx) { + addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx); + } + else if (newStartIdx > newEndIdx) { + removeVnodes(oldCh, oldStartIdx, oldEndIdx); + } +}; +const isSameVnode = (vnode1, vnode2) => { + // compare if two vnode to see if they're "technically" the same + // need to have the same element tag, and same key to be the same + if (vnode1.$tag$ === vnode2.$tag$) { + if (vnode1.$tag$ === 'slot') { + return vnode1.$name$ === vnode2.$name$; + } + { + return vnode1.$key$ === vnode2.$key$; + } + } + return false; +}; +const referenceNode = (node) => { + // this node was relocated to a new location in the dom + // because of some other component's slot + // but we still have an html comment in place of where + // it's original location was according to it's original vdom + return (node && node['s-ol']) || node; +}; +const parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode; +const patch = (oldVNode, newVNode) => { + const elm = (newVNode.$elm$ = oldVNode.$elm$); + const oldChildren = oldVNode.$children$; + const newChildren = newVNode.$children$; + const tag = newVNode.$tag$; + const text = newVNode.$text$; + let defaultHolder; + if (text === null) { + { + // test if we're rendering an svg element, or still rendering nodes inside of one + // only add this to the when the compiler sees we're using an svg somewhere + isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode; + } + // element node + { + if (tag === 'slot') + ; + else { + // either this is the first render of an element OR it's an update + // AND we already know it's possible it could have changed + // this updates the element's css classes, attrs, props, listeners, etc. + updateElement(oldVNode, newVNode, isSvgMode); + } + } + if (oldChildren !== null && newChildren !== null) { + // looks like there's child vnodes for both the old and new vnodes + updateChildren(elm, oldChildren, newVNode, newChildren); + } + else if (newChildren !== null) { + // no old child vnodes, but there are new child vnodes to add + if (oldVNode.$text$ !== null) { + // the old vnode was text, so be sure to clear it out + elm.textContent = ''; + } + // add the new vnode children + addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1); + } + else if (oldChildren !== null) { + // no new child vnodes, but there are old child vnodes to remove + removeVnodes(oldChildren, 0, oldChildren.length - 1); + } + if (isSvgMode && tag === 'svg') { + isSvgMode = false; + } + } + else if ((defaultHolder = elm['s-cr'])) { + // this element has slotted content + defaultHolder.parentNode.textContent = text; + } + else if (oldVNode.$text$ !== text) { + // update the text content for the text only vnode + // and also only if the text is different than before + elm.data = text; + } +}; +const updateFallbackSlotVisibility = (elm) => { + // tslint:disable-next-line: prefer-const + const childNodes = elm.childNodes; + let childNode; + let i; + let ilen; + let j; + let slotNameAttr; + let nodeType; + for (i = 0, ilen = childNodes.length; i < ilen; i++) { + childNode = childNodes[i]; + if (childNode.nodeType === 1 /* ElementNode */) { + if (childNode['s-sr']) { + // this is a slot fallback node + // get the slot name for this slot reference node + slotNameAttr = childNode['s-sn']; + // by default always show a fallback slot node + // then hide it if there are other slots in the light dom + childNode.hidden = false; + for (j = 0; j < ilen; j++) { + nodeType = childNodes[j].nodeType; + if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') { + // this sibling node is from a different component OR is a named fallback slot node + if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) { + childNode.hidden = true; + break; + } + } + else { + // this is a default fallback slot node + // any element or text node (with content) + // should hide the default fallback slot node + if (nodeType === 1 /* ElementNode */ || + (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) { + childNode.hidden = true; + break; + } + } + } + } + // keep drilling down + updateFallbackSlotVisibility(childNode); + } + } +}; +const relocateNodes = []; +const relocateSlotContent = (elm) => { + // tslint:disable-next-line: prefer-const + let childNode; + let node; + let hostContentNodes; + let slotNameAttr; + let relocateNodeData; + let j; + let i = 0; + const childNodes = elm.childNodes; + const ilen = childNodes.length; + for (; i < ilen; i++) { + childNode = childNodes[i]; + if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) { + // first got the content reference comment node + // then we got it's parent, which is where all the host content is in now + hostContentNodes = node.parentNode.childNodes; + slotNameAttr = childNode['s-sn']; + for (j = hostContentNodes.length - 1; j >= 0; j--) { + node = hostContentNodes[j]; + if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) { + // let's do some relocating to its new home + // but never relocate a content reference node + // that is suppose to always represent the original content location + if (isNodeLocatedInSlot(node, slotNameAttr)) { + // it's possible we've already decided to relocate this node + relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node); + // made some changes to slots + // let's make sure we also double check + // fallbacks are correctly hidden or shown + checkSlotFallbackVisibility = true; + node['s-sn'] = node['s-sn'] || slotNameAttr; + if (relocateNodeData) { + // previously we never found a slot home for this node + // but turns out we did, so let's remember it now + relocateNodeData.$slotRefNode$ = childNode; + } + else { + // add to our list of nodes to relocate + relocateNodes.push({ + $slotRefNode$: childNode, + $nodeToRelocate$: node, + }); + } + if (node['s-sr']) { + relocateNodes.map((relocateNode) => { + if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) { + relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node); + if (relocateNodeData && !relocateNode.$slotRefNode$) { + relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$; + } + } + }); + } + } + else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) { + // so far this element does not have a slot home, not setting slotRefNode on purpose + // if we never find a home for this element then we'll need to hide it + relocateNodes.push({ + $nodeToRelocate$: node, + }); + } + } + } + } + if (childNode.nodeType === 1 /* ElementNode */) { + relocateSlotContent(childNode); + } + } +}; +const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => { + if (nodeToRelocate.nodeType === 1 /* ElementNode */) { + if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') { + return true; + } + if (nodeToRelocate.getAttribute('slot') === slotNameAttr) { + return true; + } + return false; + } + if (nodeToRelocate['s-sn'] === slotNameAttr) { + return true; + } + return slotNameAttr === ''; +}; +const callNodeRefs = (vNode) => { + { + vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null); + vNode.$children$ && vNode.$children$.map(callNodeRefs); + } +}; +const renderVdom = (hostRef, renderFnResults) => { + const hostElm = hostRef.$hostElement$; + const cmpMeta = hostRef.$cmpMeta$; + const oldVNode = hostRef.$vnode$ || newVNode(null, null); + const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults); + hostTagName = hostElm.tagName; + if (cmpMeta.$attrsToReflect$) { + rootVnode.$attrs$ = rootVnode.$attrs$ || {}; + cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName])); + } + rootVnode.$tag$ = null; + rootVnode.$flags$ |= 4 /* isHost */; + hostRef.$vnode$ = rootVnode; + rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm ); + { + scopeId = hostElm['s-sc']; + } + { + contentRef = hostElm['s-cr']; + useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0; + // always reset + checkSlotFallbackVisibility = false; + } + // synchronous patch + patch(oldVNode, rootVnode); + { + // while we're moving nodes around existing nodes, temporarily disable + // the disconnectCallback from working + plt.$flags$ |= 1 /* isTmpDisconnected */; + if (checkSlotRelocate) { + relocateSlotContent(rootVnode.$elm$); + let relocateData; + let nodeToRelocate; + let orgLocationNode; + let parentNodeRef; + let insertBeforeNode; + let refNode; + let i = 0; + for (; i < relocateNodes.length; i++) { + relocateData = relocateNodes[i]; + nodeToRelocate = relocateData.$nodeToRelocate$; + if (!nodeToRelocate['s-ol']) { + // add a reference node marking this node's original location + // keep a reference to this node for later lookups + orgLocationNode = + doc.createTextNode(''); + orgLocationNode['s-nr'] = nodeToRelocate; + nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate); + } + } + for (i = 0; i < relocateNodes.length; i++) { + relocateData = relocateNodes[i]; + nodeToRelocate = relocateData.$nodeToRelocate$; + if (relocateData.$slotRefNode$) { + // by default we're just going to insert it directly + // after the slot reference node + parentNodeRef = relocateData.$slotRefNode$.parentNode; + insertBeforeNode = relocateData.$slotRefNode$.nextSibling; + orgLocationNode = nodeToRelocate['s-ol']; + while ((orgLocationNode = orgLocationNode.previousSibling)) { + refNode = orgLocationNode['s-nr']; + if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) { + refNode = refNode.nextSibling; + if (!refNode || !refNode['s-nr']) { + insertBeforeNode = refNode; + break; + } + } + } + if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || + nodeToRelocate.nextSibling !== insertBeforeNode) { + // we've checked that it's worth while to relocate + // since that the node to relocate + // has a different next sibling or parent relocated + if (nodeToRelocate !== insertBeforeNode) { + if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) { + // probably a component in the index.html that doesn't have it's hostname set + nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName; + } + // add it back to the dom but in its new home + parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode); + } + } + } + else { + // this node doesn't have a slot home to go to, so let's hide it + if (nodeToRelocate.nodeType === 1 /* ElementNode */) { + nodeToRelocate.hidden = true; + } + } + } + } + if (checkSlotFallbackVisibility) { + updateFallbackSlotVisibility(rootVnode.$elm$); + } + // done moving nodes around + // allow the disconnect callback to work again + plt.$flags$ &= ~1 /* isTmpDisconnected */; + // always reset + relocateNodes.length = 0; + } +}; +const getElement = (ref) => (getHostRef(ref).$hostElement$ ); +const createEvent = (ref, name, flags) => { + const elm = getElement(ref); + return { + emit: (detail) => { + return emitEvent(elm, name, { + bubbles: !!(flags & 4 /* Bubbles */), + composed: !!(flags & 2 /* Composed */), + cancelable: !!(flags & 1 /* Cancellable */), + detail, + }); + }, + }; +}; +/** + * Helper function to create & dispatch a custom Event on a provided target + * @param elm the target of the Event + * @param name the name to give the custom Event + * @param opts options for configuring a custom Event + * @returns the custom Event + */ +const emitEvent = (elm, name, opts) => { + const ev = plt.ce(name, opts); + elm.dispatchEvent(ev); + return ev; +}; +const attachToAncestor = (hostRef, ancestorComponent) => { + if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) { + ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r))); + } +}; +const scheduleUpdate = (hostRef, isInitialLoad) => { + { + hostRef.$flags$ |= 16 /* isQueuedForUpdate */; + } + if (hostRef.$flags$ & 4 /* isWaitingForChildren */) { + hostRef.$flags$ |= 512 /* needsRerender */; + return; + } + attachToAncestor(hostRef, hostRef.$ancestorComponent$); + // there is no ancestor component or the ancestor component + // has already fired off its lifecycle update then + // fire off the initial update + const dispatch = () => dispatchHooks(hostRef, isInitialLoad); + return writeTask(dispatch) ; +}; +const dispatchHooks = (hostRef, isInitialLoad) => { + const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$); + const instance = hostRef.$lazyInstance$ ; + let promise; + if (isInitialLoad) { + { + hostRef.$flags$ |= 256 /* isListenReady */; + if (hostRef.$queuedListeners$) { + hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event)); + hostRef.$queuedListeners$ = null; + } + } + { + promise = safeCall(instance, 'componentWillLoad'); + } + } + else { + { + promise = safeCall(instance, 'componentWillUpdate'); + } + } + { + promise = then(promise, () => safeCall(instance, 'componentWillRender')); + } + endSchedule(); + return then(promise, () => updateComponent(hostRef, instance, isInitialLoad)); +}; +const updateComponent = async (hostRef, instance, isInitialLoad) => { + // updateComponent + const elm = hostRef.$hostElement$; + const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$); + const rc = elm['s-rc']; + if (isInitialLoad) { + // DOM WRITE! + attachStyles(hostRef); + } + const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$); + { + callRender(hostRef, instance); + } + if (rc) { + // ok, so turns out there are some child host elements + // waiting on this parent element to load + // let's fire off all update callbacks waiting + rc.map((cb) => cb()); + elm['s-rc'] = undefined; + } + endRender(); + endUpdate(); + { + const childrenPromises = elm['s-p']; + const postUpdate = () => postUpdateComponent(hostRef); + if (childrenPromises.length === 0) { + postUpdate(); + } + else { + Promise.all(childrenPromises).then(postUpdate); + hostRef.$flags$ |= 4 /* isWaitingForChildren */; + childrenPromises.length = 0; + } + } +}; +const callRender = (hostRef, instance, elm) => { + try { + instance = instance.render() ; + { + hostRef.$flags$ &= ~16 /* isQueuedForUpdate */; + } + { + hostRef.$flags$ |= 2 /* hasRendered */; + } + { + { + // looks like we've got child nodes to render into this host element + // or we need to update the css class/attrs on the host element + // DOM WRITE! + { + renderVdom(hostRef, instance); + } + } + } + } + catch (e) { + consoleError(e, hostRef.$hostElement$); + } + return null; +}; +const postUpdateComponent = (hostRef) => { + const tagName = hostRef.$cmpMeta$.$tagName$; + const elm = hostRef.$hostElement$; + const endPostUpdate = createTime('postUpdate', tagName); + const instance = hostRef.$lazyInstance$ ; + const ancestorComponent = hostRef.$ancestorComponent$; + { + safeCall(instance, 'componentDidRender'); + } + if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) { + hostRef.$flags$ |= 64 /* hasLoadedComponent */; + { + // DOM WRITE! + addHydratedFlag(elm); + } + { + safeCall(instance, 'componentDidLoad'); + } + endPostUpdate(); + { + hostRef.$onReadyResolve$(elm); + if (!ancestorComponent) { + appDidLoad(); + } + } + } + else { + { + safeCall(instance, 'componentDidUpdate'); + } + endPostUpdate(); + } + { + hostRef.$onInstanceResolve$(elm); + } + // load events fire from bottom to top + // the deepest elements load first then bubbles up + { + if (hostRef.$onRenderResolve$) { + hostRef.$onRenderResolve$(); + hostRef.$onRenderResolve$ = undefined; + } + if (hostRef.$flags$ & 512 /* needsRerender */) { + nextTick(() => scheduleUpdate(hostRef, false)); + } + hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */); + } + // ( •_•) + // ( •_•)>⌐■-■ + // (⌐■_■) +}; +const appDidLoad = (who) => { + // on appload + // we have finish the first big initial render + { + addHydratedFlag(doc.documentElement); + } + nextTick(() => emitEvent(win, 'appload', { detail: { namespace: _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.N } })); +}; +const safeCall = (instance, method, arg) => { + if (instance && instance[method]) { + try { + return instance[method](arg); + } + catch (e) { + consoleError(e); + } + } + return undefined; +}; +const then = (promise, thenFn) => { + return promise && promise.then ? promise.then(thenFn) : thenFn(); +}; +const addHydratedFlag = (elm) => elm.classList.add('hydrated') + ; +const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => { + const endHydrate = createTime('hydrateClient', tagName); + const shadowRoot = hostElm.shadowRoot; + const childRenderNodes = []; + const slotNodes = []; + const shadowRootNodes = shadowRoot ? [] : null; + const vnode = (hostRef.$vnode$ = newVNode(tagName, null)); + if (!plt.$orgLocNodes$) { + initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map())); + } + hostElm[HYDRATE_ID] = hostId; + hostElm.removeAttribute(HYDRATE_ID); + clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId); + childRenderNodes.map((c) => { + const orgLocationId = c.$hostId$ + '.' + c.$nodeId$; + const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId); + const node = c.$elm$; + if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') { + orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling); + } + if (!shadowRoot) { + node['s-hn'] = tagName; + if (orgLocationNode) { + node['s-ol'] = orgLocationNode; + node['s-ol']['s-nr'] = node; + } + } + plt.$orgLocNodes$.delete(orgLocationId); + }); + if (shadowRoot) { + shadowRootNodes.map((shadowRootNode) => { + if (shadowRootNode) { + shadowRoot.appendChild(shadowRootNode); + } + }); + } + endHydrate(); +}; +const clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => { + let childNodeType; + let childIdSplt; + let childVNode; + let i; + if (node.nodeType === 1 /* ElementNode */) { + childNodeType = node.getAttribute(HYDRATE_CHILD_ID); + if (childNodeType) { + // got the node data from the element's attribute + // `${hostId}.${nodeId}.${depth}.${index}` + childIdSplt = childNodeType.split('.'); + if (childIdSplt[0] === hostId || childIdSplt[0] === '0') { + childVNode = { + $flags$: 0, + $hostId$: childIdSplt[0], + $nodeId$: childIdSplt[1], + $depth$: childIdSplt[2], + $index$: childIdSplt[3], + $tag$: node.tagName.toLowerCase(), + $elm$: node, + $attrs$: null, + $children$: null, + $key$: null, + $name$: null, + $text$: null, + }; + childRenderNodes.push(childVNode); + node.removeAttribute(HYDRATE_CHILD_ID); + // this is a new child vnode + // so ensure its parent vnode has the vchildren array + if (!parentVNode.$children$) { + parentVNode.$children$ = []; + } + // add our child vnode to a specific index of the vnode's children + parentVNode.$children$[childVNode.$index$] = childVNode; + // this is now the new parent vnode for all the next child checks + parentVNode = childVNode; + if (shadowRootNodes && childVNode.$depth$ === '0') { + shadowRootNodes[childVNode.$index$] = childVNode.$elm$; + } + } + } + // recursively drill down, end to start so we can remove nodes + for (i = node.childNodes.length - 1; i >= 0; i--) { + clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId); + } + if (node.shadowRoot) { + // keep drilling down through the shadow root nodes + for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) { + clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId); + } + } + } + else if (node.nodeType === 8 /* CommentNode */) { + // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}` + childIdSplt = node.nodeValue.split('.'); + if (childIdSplt[1] === hostId || childIdSplt[1] === '0') { + // comment node for either the host id or a 0 host id + childNodeType = childIdSplt[0]; + childVNode = { + $flags$: 0, + $hostId$: childIdSplt[1], + $nodeId$: childIdSplt[2], + $depth$: childIdSplt[3], + $index$: childIdSplt[4], + $elm$: node, + $attrs$: null, + $children$: null, + $key$: null, + $name$: null, + $tag$: null, + $text$: null, + }; + if (childNodeType === TEXT_NODE_ID) { + childVNode.$elm$ = node.nextSibling; + if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* TextNode */) { + childVNode.$text$ = childVNode.$elm$.textContent; + childRenderNodes.push(childVNode); + // remove the text comment since it's no longer needed + node.remove(); + if (!parentVNode.$children$) { + parentVNode.$children$ = []; + } + parentVNode.$children$[childVNode.$index$] = childVNode; + if (shadowRootNodes && childVNode.$depth$ === '0') { + shadowRootNodes[childVNode.$index$] = childVNode.$elm$; + } + } + } + else if (childVNode.$hostId$ === hostId) { + // this comment node is specifcally for this host id + if (childNodeType === SLOT_NODE_ID) { + // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`; + childVNode.$tag$ = 'slot'; + if (childIdSplt[5]) { + node['s-sn'] = childVNode.$name$ = childIdSplt[5]; + } + else { + node['s-sn'] = ''; + } + node['s-sr'] = true; + if (shadowRootNodes) { + // browser support shadowRoot and this is a shadow dom component + // create an actual slot element + childVNode.$elm$ = doc.createElement(childVNode.$tag$); + if (childVNode.$name$) { + // add the slot name attribute + childVNode.$elm$.setAttribute('name', childVNode.$name$); + } + // insert the new slot element before the slot comment + node.parentNode.insertBefore(childVNode.$elm$, node); + // remove the slot comment since it's not needed for shadow + node.remove(); + if (childVNode.$depth$ === '0') { + shadowRootNodes[childVNode.$index$] = childVNode.$elm$; + } + } + slotNodes.push(childVNode); + if (!parentVNode.$children$) { + parentVNode.$children$ = []; + } + parentVNode.$children$[childVNode.$index$] = childVNode; + } + else if (childNodeType === CONTENT_REF_ID) { + // `${CONTENT_REF_ID}.${hostId}`; + if (shadowRootNodes) { + // remove the content ref comment since it's not needed for shadow + node.remove(); + } + else { + hostElm['s-cr'] = node; + node['s-cn'] = true; + } + } + } + } + } + else if (parentVNode && parentVNode.$tag$ === 'style') { + const vnode = newVNode(null, node.textContent); + vnode.$elm$ = node; + vnode.$index$ = '0'; + parentVNode.$children$ = [vnode]; + } +}; +const initializeDocumentHydrate = (node, orgLocNodes) => { + if (node.nodeType === 1 /* ElementNode */) { + let i = 0; + for (; i < node.childNodes.length; i++) { + initializeDocumentHydrate(node.childNodes[i], orgLocNodes); + } + if (node.shadowRoot) { + for (i = 0; i < node.shadowRoot.childNodes.length; i++) { + initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes); + } + } + } + else if (node.nodeType === 8 /* CommentNode */) { + const childIdSplt = node.nodeValue.split('.'); + if (childIdSplt[0] === ORG_LOCATION_ID) { + orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node); + node.nodeValue = ''; + // useful to know if the original location is + // the root light-dom of a shadow dom component + node['s-en'] = childIdSplt[3]; + } + } +}; +/** + * Parse a new property value for a given property type. + * + * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned, + * it is not safe to assume that the string returned by evaluating `typeof propValue` matches: + * 1. `any`, the type given to `propValue` in the function signature + * 2. the type stored from `propType`. + * + * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type. + * + * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to + * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is + * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`. + * ```tsx + * + * ``` + * + * HTML prop values on the other hand, will always a string + * + * @param propValue the new value to coerce to some type + * @param propType the type of the prop, expressed as a binary number + * @returns the parsed/coerced value + */ +const parsePropertyValue = (propValue, propType) => { + // ensure this value is of the correct prop type + if (propValue != null && !isComplexType(propValue)) { + if (propType & 4 /* Boolean */) { + // per the HTML spec, any string value means it is a boolean true value + // but we'll cheat here and say that the string "false" is the boolean false + return propValue === 'false' ? false : propValue === '' || !!propValue; + } + if (propType & 2 /* Number */) { + // force it to be a number + return parseFloat(propValue); + } + if (propType & 1 /* String */) { + // could have been passed as a number or boolean + // but we still want it as a string + return String(propValue); + } + // redundant return here for better minification + return propValue; + } + // not sure exactly what type we want + // so no need to change to a different type + return propValue; +}; +const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName); +const setValue = (ref, propName, newVal, cmpMeta) => { + // check our new property value against our internal value + const hostRef = getHostRef(ref); + const elm = hostRef.$hostElement$ ; + const oldVal = hostRef.$instanceValues$.get(propName); + const flags = hostRef.$flags$; + const instance = hostRef.$lazyInstance$ ; + newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]); + // explicitly check for NaN on both sides, as `NaN === NaN` is always false + const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal); + const didValueChange = newVal !== oldVal && !areBothNaN; + if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && didValueChange) { + // gadzooks! the property's value has changed!! + // set our new value! + hostRef.$instanceValues$.set(propName, newVal); + if (instance) { + // get an array of method names of watch functions to call + if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) { + const watchMethods = cmpMeta.$watchers$[propName]; + if (watchMethods) { + // this instance is watching for when this property changed + watchMethods.map((watchMethodName) => { + try { + // fire off each of the watch methods that are watching this property + instance[watchMethodName](newVal, oldVal, propName); + } + catch (e) { + consoleError(e, elm); + } + }); + } + } + if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) { + // looks like this value actually changed, so we've got work to do! + // but only if we've already rendered, otherwise just chill out + // queue that we need to do an update, but don't worry about queuing + // up millions cuz this function ensures it only runs once + scheduleUpdate(hostRef, false); + } + } + } +}; +const proxyComponent = (Cstr, cmpMeta, flags) => { + if (cmpMeta.$members$) { + if (Cstr.watchers) { + cmpMeta.$watchers$ = Cstr.watchers; + } + // It's better to have a const than two Object.entries() + const members = Object.entries(cmpMeta.$members$); + const prototype = Cstr.prototype; + members.map(([memberName, [memberFlags]]) => { + if ((memberFlags & 31 /* Prop */ || + ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) { + // proxyComponent - prop + Object.defineProperty(prototype, memberName, { + get() { + // proxyComponent, get value + return getValue(this, memberName); + }, + set(newValue) { + // proxyComponent, set value + setValue(this, memberName, newValue, cmpMeta); + }, + configurable: true, + enumerable: true, + }); + } + else if (flags & 1 /* isElementConstructor */ && + memberFlags & 64 /* Method */) { + // proxyComponent - method + Object.defineProperty(prototype, memberName, { + value(...args) { + const ref = getHostRef(this); + return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args)); + }, + }); + } + }); + if ((flags & 1 /* isElementConstructor */)) { + const attrNameToPropName = new Map(); + prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) { + plt.jmp(() => { + const propName = attrNameToPropName.get(attrName); + // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback + // in the case where an attribute was set inline. + // ```html + // + // ``` + // + // There is an edge case where a developer sets the attribute inline on a custom element and then + // programmatically changes it before it has been upgraded as shown below: + // + // ```html + // + // + // + // ``` + // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback + // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value") + // to the value that was set inline i.e. "some-value" from above example. When + // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value" + // + // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed + // by connectedCallback as this attributeChangedCallback will not fire. + // + // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties + // + // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to + // properties here given that this goes against best practices outlined here + // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy + if (this.hasOwnProperty(propName)) { + newValue = this[propName]; + delete this[propName]; + } + else if (prototype.hasOwnProperty(propName) && + typeof this[propName] === 'number' && + this[propName] == newValue) { + // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native + // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in + // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props. + return; + } + this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue; + }); + }; + // create an array of attributes to observe + // and also create a map of html attribute name to js property name + Cstr.observedAttributes = members + .filter(([_, m]) => m[0] & 15 /* HasAttribute */) // filter to only keep props that should match attributes + .map(([propName, m]) => { + const attrName = m[1] || propName; + attrNameToPropName.set(attrName, propName); + if (m[0] & 512 /* ReflectAttr */) { + cmpMeta.$attrsToReflect$.push([propName, attrName]); + } + return attrName; + }); + } + } + return Cstr; +}; +const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => { + // initializeComponent + if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) { + { + // we haven't initialized this element yet + hostRef.$flags$ |= 32 /* hasInitializedComponent */; + // lazy loaded components + // request the component's implementation to be + // wired up with the host element + Cstr = loadModule(cmpMeta); + if (Cstr.then) { + // Await creates a micro-task avoid if possible + const endLoad = uniqueTime(); + Cstr = await Cstr; + endLoad(); + } + if (!Cstr.isProxied) { + // we've never proxied this Constructor before + // let's add the getters/setters to its prototype before + // the first time we create an instance of the implementation + { + cmpMeta.$watchers$ = Cstr.watchers; + } + proxyComponent(Cstr, cmpMeta, 2 /* proxyState */); + Cstr.isProxied = true; + } + const endNewInstance = createTime('createInstance', cmpMeta.$tagName$); + // ok, time to construct the instance + // but let's keep track of when we start and stop + // so that the getters/setters don't incorrectly step on data + { + hostRef.$flags$ |= 8 /* isConstructingInstance */; + } + // construct the lazy-loaded component implementation + // passing the hostRef is very important during + // construction in order to directly wire together the + // host element and the lazy-loaded instance + try { + new Cstr(hostRef); + } + catch (e) { + consoleError(e); + } + { + hostRef.$flags$ &= ~8 /* isConstructingInstance */; + } + { + hostRef.$flags$ |= 128 /* isWatchReady */; + } + endNewInstance(); + fireConnectedCallback(hostRef.$lazyInstance$); + } + if (Cstr.style) { + // this component has styles but we haven't registered them yet + let style = Cstr.style; + const scopeId = getScopeId(cmpMeta); + if (!styles.has(scopeId)) { + const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$); + registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)); + endRegisterStyles(); + } + } + } + // we've successfully created a lazy instance + const ancestorComponent = hostRef.$ancestorComponent$; + const schedule = () => scheduleUpdate(hostRef, true); + if (ancestorComponent && ancestorComponent['s-rc']) { + // this is the initial load and this component it has an ancestor component + // but the ancestor component has NOT fired its will update lifecycle yet + // so let's just cool our jets and wait for the ancestor to continue first + // this will get fired off when the ancestor component + // finally gets around to rendering its lazy self + // fire off the initial update + ancestorComponent['s-rc'].push(schedule); + } + else { + schedule(); + } +}; +const fireConnectedCallback = (instance) => { + { + safeCall(instance, 'connectedCallback'); + } +}; +const connectedCallback = (elm) => { + if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) { + const hostRef = getHostRef(elm); + const cmpMeta = hostRef.$cmpMeta$; + const endConnected = createTime('connectedCallback', cmpMeta.$tagName$); + if (!(hostRef.$flags$ & 1 /* hasConnected */)) { + // first time this component has connected + hostRef.$flags$ |= 1 /* hasConnected */; + let hostId; + { + hostId = elm.getAttribute(HYDRATE_ID); + if (hostId) { + if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) { + const scopeId = addStyle(elm.shadowRoot, cmpMeta); + elm.classList.remove(scopeId + '-h', scopeId + '-s'); + } + initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef); + } + } + if (!hostId) { + // initUpdate + // if the slot polyfill is required we'll need to put some nodes + // in here to act as original content anchors as we move nodes around + // host element has been connected to the DOM + if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) { + setContentReference(elm); + } + } + { + // find the first ancestor component (if there is one) and register + // this component as one of the actively loading child components for its ancestor + let ancestorComponent = elm; + while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) { + // climb up the ancestors looking for the first + // component that hasn't finished its lifecycle update yet + if ((ancestorComponent.nodeType === 1 /* ElementNode */ && + ancestorComponent.hasAttribute('s-id') && + ancestorComponent['s-p']) || + ancestorComponent['s-p']) { + // we found this components first ancestor component + // keep a reference to this component's ancestor component + attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent)); + break; + } + } + } + // Lazy properties + // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties + if (cmpMeta.$members$) { + Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => { + if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) { + const value = elm[memberName]; + delete elm[memberName]; + elm[memberName] = value; + } + }); + } + { + initializeComponent(elm, hostRef, cmpMeta); + } + } + else { + // not the first time this has connected + // reattach any event listeners to the host + // since they would have been removed when disconnected + addHostEventListeners(elm, hostRef, cmpMeta.$listeners$); + // fire off connectedCallback() on component instance + fireConnectedCallback(hostRef.$lazyInstance$); + } + endConnected(); + } +}; +const setContentReference = (elm) => { + // only required when we're NOT using native shadow dom (slot) + // or this browser doesn't support native shadow dom + // and this host element was NOT created with SSR + // let's pick out the inner content for slot projection + // create a node to represent where the original + // content was first placed, which is useful later on + const contentRefElm = (elm['s-cr'] = doc.createComment('')); + contentRefElm['s-cn'] = true; + elm.insertBefore(contentRefElm, elm.firstChild); +}; +const disconnectedCallback = (elm) => { + if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) { + const hostRef = getHostRef(elm); + const instance = hostRef.$lazyInstance$ ; + { + if (hostRef.$rmListeners$) { + hostRef.$rmListeners$.map((rmListener) => rmListener()); + hostRef.$rmListeners$ = undefined; + } + } + { + safeCall(instance, 'disconnectedCallback'); + } + } +}; +const proxyCustomElement = (Cstr, compactMeta) => { + const cmpMeta = { + $flags$: compactMeta[0], + $tagName$: compactMeta[1], + }; + { + cmpMeta.$members$ = compactMeta[2]; + } + { + cmpMeta.$listeners$ = compactMeta[3]; + } + { + cmpMeta.$watchers$ = Cstr.$watchers$; + } + { + cmpMeta.$attrsToReflect$ = []; + } + const originalConnectedCallback = Cstr.prototype.connectedCallback; + const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback; + Object.assign(Cstr.prototype, { + __registerHost() { + registerHost(this, cmpMeta); + }, + connectedCallback() { + connectedCallback(this); + if (originalConnectedCallback) { + originalConnectedCallback.call(this); + } + }, + disconnectedCallback() { + disconnectedCallback(this); + if (originalDisconnectedCallback) { + originalDisconnectedCallback.call(this); + } + }, + __attachShadow() { + { + { + this.attachShadow({ mode: 'open' }); + } + } + }, + }); + Cstr.is = cmpMeta.$tagName$; + return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */); +}; +const hostRefs = new WeakMap(); +const getHostRef = (ref) => hostRefs.get(ref); +const registerHost = (elm, cmpMeta) => { + const hostRef = { + $flags$: 0, + $hostElement$: elm, + $cmpMeta$: cmpMeta, + $instanceValues$: new Map(), + }; + { + hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r)); + } + { + hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r)); + elm['s-p'] = []; + elm['s-rc'] = []; + } + addHostEventListeners(elm, hostRef, cmpMeta.$listeners$); + return hostRefs.set(elm, hostRef); +}; +const isMemberInElement = (elm, memberName) => memberName in elm; +const consoleError = (e, el) => (0, console.error)(e, el); +const cmpModules = /*@__PURE__*/ new Map(); +const loadModule = (cmpMeta, hostRef, hmrVersionId) => { + // loadModuleImport + const exportName = cmpMeta.$tagName$.replace(/-/g, '_'); + const bundleId = cmpMeta.$lazyBundleId$; + const module = cmpModules.get(bundleId) ; + if (module) { + return module[exportName]; + } + /*!__STENCIL_STATIC_IMPORT_SWITCH__*/ + return __webpack_require__(63249)(`./${bundleId}.entry.js`).then((importedModule) => { + { + cmpModules.set(bundleId, importedModule); + } + return importedModule[exportName]; + }, consoleError); +}; +const styles = new Map(); +const queueDomReads = []; +const queueDomWrites = []; +const queueTask = (queue, write) => (cb) => { + queue.push(cb); + if (!queuePending) { + queuePending = true; + if (write && plt.$flags$ & 4 /* queueSync */) { + nextTick(flush); + } + else { + plt.raf(flush); + } + } +}; +const consume = (queue) => { + for (let i = 0; i < queue.length; i++) { + try { + queue[i](performance.now()); + } + catch (e) { + consoleError(e); + } + } + queue.length = 0; +}; +const flush = () => { + // always force a bunch of medium callbacks to run, but still have + // a throttle on how many can run in a certain time + // DOM READS!!! + consume(queueDomReads); + // DOM WRITES!!! + { + consume(queueDomWrites); + if ((queuePending = queueDomReads.length > 0)) { + // still more to do yet, but we've run out of time + // let's let this thing cool off and try again in the next tick + plt.raf(flush); + } + } +}; +const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb); +const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true); + +const ISO_DATE_FORMAT = /^(\d{4})-(\d{2})-(\d{2})$/; +var DaysOfWeek; +(function (DaysOfWeek) { + DaysOfWeek[DaysOfWeek["Sunday"] = 0] = "Sunday"; + DaysOfWeek[DaysOfWeek["Monday"] = 1] = "Monday"; + DaysOfWeek[DaysOfWeek["Tuesday"] = 2] = "Tuesday"; + DaysOfWeek[DaysOfWeek["Wednesday"] = 3] = "Wednesday"; + DaysOfWeek[DaysOfWeek["Thursday"] = 4] = "Thursday"; + DaysOfWeek[DaysOfWeek["Friday"] = 5] = "Friday"; + DaysOfWeek[DaysOfWeek["Saturday"] = 6] = "Saturday"; +})(DaysOfWeek || (DaysOfWeek = {})); +function createDate(year, month, day) { + var dayInt = parseInt(day, 10); + var monthInt = parseInt(month, 10); + var yearInt = parseInt(year, 10); + const isValid = Number.isInteger(yearInt) && // all parts should be integers + Number.isInteger(monthInt) && + Number.isInteger(dayInt) && + monthInt > 0 && // month must be 1-12 + monthInt <= 12 && + dayInt > 0 && // day must be 1-31 + dayInt <= 31 && + yearInt > 0; + if (isValid) { + return new Date(yearInt, monthInt - 1, dayInt); + } +} +/** + * @param value date string in ISO format YYYY-MM-DD + */ +function parseISODate(value) { + if (!value) { + return; + } + const matches = value.match(ISO_DATE_FORMAT); + if (matches) { + return createDate(matches[1], matches[2], matches[3]); + } +} +/** + * print date in format YYYY-MM-DD + * @param date + */ +function printISODate(date) { + if (!date) { + return ""; + } + var d = date.getDate().toString(10); + var m = (date.getMonth() + 1).toString(10); + var y = date.getFullYear().toString(10); + // days are not zero-indexed, so pad if less than 10 + if (date.getDate() < 10) { + d = `0${d}`; + } + // months *are* zero-indexed, pad if less than 9! + if (date.getMonth() < 9) { + m = `0${m}`; + } + return `${y}-${m}-${d}`; +} +/** + * Compare if two dates are equal in terms of day, month, and year + */ +function isEqual(a, b) { + if (a == null || b == null) { + return false; + } + return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate(); +} +function addDays(date, days) { + var d = new Date(date); + d.setDate(d.getDate() + days); + return d; +} +function startOfWeek(date, firstDayOfWeek = DaysOfWeek.Monday) { + var d = new Date(date); + var day = d.getDay(); + var diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek; + d.setDate(d.getDate() - diff); + return d; +} +function endOfWeek(date, firstDayOfWeek = DaysOfWeek.Monday) { + var d = new Date(date); + var day = d.getDay(); + var diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek); + d.setDate(d.getDate() + diff); + return d; +} +function startOfMonth(date) { + return new Date(date.getFullYear(), date.getMonth(), 1); +} +function endOfMonth(date) { + return new Date(date.getFullYear(), date.getMonth() + 1, 0); +} +function setMonth(date, month) { + const d = new Date(date); + d.setMonth(month); + return d; +} +function setYear(date, year) { + const d = new Date(date); + d.setFullYear(year); + return d; +} +/** + * Check if date is within a min and max + */ +function inRange(date, min, max) { + return clamp(date, min, max) === date; +} +/** + * Ensures date is within range, returns min or max if out of bounds + */ +function clamp(date, min, max) { + const time = date.getTime(); + if (min && min instanceof Date && time < min.getTime()) { + return min; + } + if (max && max instanceof Date && time > max.getTime()) { + return max; + } + return date; +} +/** + * given start and end date, return an (inclusive) array of all dates in between + * @param start + * @param end + */ +function getDaysInRange(start, end) { + const days = []; + let current = start; + while (!isEqual(current, end)) { + days.push(current); + current = addDays(current, 1); + } + days.push(current); + return days; +} +/** + * given a date, return an array of dates from a calendar perspective + * @param date + * @param firstDayOfWeek + */ +function getViewOfMonth(date, firstDayOfWeek = DaysOfWeek.Monday) { + const start = startOfWeek(startOfMonth(date), firstDayOfWeek); + const end = endOfWeek(endOfMonth(date), firstDayOfWeek); + return getDaysInRange(start, end); +} +/** + * Form random hash + */ +function chr4() { + return Math.random() + .toString(16) + .slice(-4); +} +/** + * Create random identifier with a prefix + * @param prefix + */ +function createIdentifier(prefix) { + return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`; +} + +const DatePickerInput = ({ onClick, dateFormatter, localization, name, formattedValue, valueAsDate, value, identifier, disabled, required, role, buttonRef, inputRef, onInput, onBlur, onFocus, }) => { + return (h("div", { class: "duet-date__input-wrapper" }, + h("input", { class: "duet-date__input", value: formattedValue, placeholder: localization.placeholder, id: identifier, disabled: disabled, role: role, required: required ? true : undefined, "aria-autocomplete": "none", onInput: onInput, onFocus: onFocus, onBlur: onBlur, autoComplete: "off", ref: inputRef }), + h("input", { type: "hidden", name: name, value: value }), + h("button", { class: "duet-date__toggle", onClick: onClick, disabled: disabled, ref: buttonRef, type: "button" }, + h("span", { class: "duet-date__toggle-icon" }, + h("svg", { "aria-hidden": "true", height: "24", viewBox: "0 0 21 21", width: "24", xmlns: "http://www.w3.org/2000/svg" }, + h("g", { fill: "none", "fill-rule": "evenodd", transform: "translate(2 2)" }, + h("path", { d: "m2.5.5h12c1.1045695 0 2 .8954305 2 2v12c0 1.1045695-.8954305 2-2 2h-12c-1.1045695 0-2-.8954305-2-2v-12c0-1.1045695.8954305-2 2-2z", stroke: "currentColor", "stroke-linecap": "round", "stroke-linejoin": "round" }), + h("path", { d: "m.5 4.5h16", stroke: "currentColor", "stroke-linecap": "round", "stroke-linejoin": "round" }), + h("g", { fill: "currentColor" }, + h("circle", { cx: "8.5", cy: "8.5", r: "1" }), + h("circle", { cx: "4.5", cy: "8.5", r: "1" }), + h("circle", { cx: "12.5", cy: "8.5", r: "1" }), + h("circle", { cx: "8.5", cy: "12.5", r: "1" }), + h("circle", { cx: "4.5", cy: "12.5", r: "1" }), + h("circle", { cx: "12.5", cy: "12.5", r: "1" }))))), + h("span", { class: "duet-date__vhidden" }, + localization.buttonLabel, + valueAsDate && (h("span", null, + ", ", + localization.selectedDateMessage, + " ", + dateFormatter.format(valueAsDate))))))); +}; + +const DatePickerDay = ({ focusedDay, today, day, onDaySelect, onKeyboardNavigation, focusedDayRef, inRange, isSelected, dateFormatter, }) => { + const isToday = isEqual(day, today); + const isFocused = isEqual(day, focusedDay); + const isDisabled = day.getMonth() !== focusedDay.getMonth(); + const isOutsideRange = !inRange; + function handleClick(e) { + onDaySelect(e, day); + } + return (h("button", { class: { + "duet-date__day": true, + "is-outside": isOutsideRange, + "is-disabled": isDisabled, + "is-today": isToday, + }, tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, disabled: isOutsideRange || isDisabled, type: "button", "aria-pressed": isSelected ? "true" : "false", ref: el => { + if (isFocused && el && focusedDayRef) { + focusedDayRef(el); + } + } }, + h("span", { "aria-hidden": "true" }, day.getDate()), + h("span", { class: "duet-date__vhidden" }, dateFormatter.format(day)))); +}; + +function chunk(array, chunkSize) { + const result = []; + for (let i = 0; i < array.length; i += chunkSize) { + result.push(array.slice(i, i + chunkSize)); + } + return result; +} +function mapWithOffset(array, startingOffset, mapFn) { + return array.map((_, i) => { + const adjustedIndex = (i + startingOffset) % array.length; + return mapFn(array[adjustedIndex]); + }); +} +const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, localization, firstDayOfWeek, min, max, dateFormatter, onDateSelect, onKeyboardNavigation, focusedDayRef, }) => { + const today = new Date(); + const days = getViewOfMonth(focusedDate, firstDayOfWeek); + return (h("table", { class: "duet-date__table", "aria-labelledby": labelledById }, + h("thead", null, + h("tr", null, mapWithOffset(localization.dayNames, firstDayOfWeek, dayName => (h("th", { class: "duet-date__table-header", scope: "col" }, + h("span", { "aria-hidden": "true" }, dayName.substr(0, 2)), + h("span", { class: "duet-date__vhidden" }, dayName)))))), + h("tbody", null, chunk(days, 7).map(week => (h("tr", { class: "duet-date__row" }, week.map(day => (h("td", { class: "duet-date__cell" }, + h(DatePickerDay, { day: day, today: today, focusedDay: focusedDate, isSelected: isEqual(day, selectedDate), inRange: inRange(day, min, max), onDaySelect: onDateSelect, dateFormatter: dateFormatter, onKeyboardNavigation: onKeyboardNavigation, focusedDayRef: focusedDayRef })))))))))); +}; + +const localization = { + buttonLabel: "Choose date", + placeholder: "YYYY-MM-DD", + selectedDateMessage: "Selected date is", + prevMonthLabel: "Previous month", + nextMonthLabel: "Next month", + monthSelectLabel: "Month", + yearSelectLabel: "Year", + closeLabel: "Close window", + keyboardInstruction: "You can use arrow keys to navigate dates", + calendarHeading: "Choose a date", + dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + monthNames: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ], + monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + locale: "en-GB", +}; + +const isoAdapter = { parse: parseISODate, format: printISODate }; + +const duetDatePickerCss = ".duet-date *,.duet-date *::before,.duet-date *::after{box-sizing:border-box;margin:0;width:auto}.duet-date{box-sizing:border-box;color:var(--duet-color-text);display:block;font-family:var(--duet-font);margin:0;position:relative;text-align:left;width:100%}.duet-date__input{-webkit-appearance:none;appearance:none;background:var(--duet-color-surface);border:1px solid var(--duet-color-text);border-radius:var(--duet-radius);color:var(--duet-color-text);float:none;font-family:var(--duet-font);font-size:100%;line-height:normal;padding:14px 60px 14px 14px;width:100%}.duet-date__input:focus{border-color:var(--duet-color-primary);box-shadow:0 0 0 1px var(--duet-color-primary);outline:0}.duet-date__input::-webkit-input-placeholder{color:var(--duet-color-placeholder);opacity:1}.duet-date__input:-moz-placeholder{color:var(--duet-color-placeholder);opacity:1}.duet-date__input:-ms-input-placeholder{color:var(--duet-color-placeholder)}.duet-date__input-wrapper{position:relative;width:100%}.duet-date__toggle{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:var(--duet-color-button);border:0;border-radius:0;border-bottom-right-radius:var(--duet-radius);border-top-right-radius:var(--duet-radius);box-shadow:inset 1px 0 0 rgba(0, 0, 0, 0.1);color:var(--duet-color-text);cursor:pointer;display:flex;height:calc(100% - 2px);justify-content:center;padding:0;position:absolute;right:1px;top:1px;user-select:none;width:48px;z-index:2}.duet-date__toggle:focus{box-shadow:0 0 0 2px var(--duet-color-primary);outline:0}.duet-date__toggle-icon{display:flex;flex-basis:100%;justify-content:center;align-items:center}.duet-date__dialog{display:flex;left:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;width:100%;will-change:transform, opacity, visibility;z-index:var(--duet-z-index)}@media (max-width: 35.9375em){.duet-date__dialog{background:var(--duet-color-overlay);bottom:0;position:fixed;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.duet-date__dialog.is-left{left:auto;right:0;width:auto}.duet-date__dialog.is-active{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.duet-date__dialog-content{background:var(--duet-color-surface);border:1px solid rgba(0, 0, 0, 0.1);border-radius:var(--duet-radius);box-shadow:0 4px 10px 0 rgba(0, 0, 0, 0.1);margin-left:auto;margin-top:8px;max-width:310px;min-width:290px;padding:16px 16px 20px;position:relative;transform:none;width:100%;z-index:var(--duet-z-index)}@media (max-width: 35.9375em){.duet-date__dialog-content{border:0;border-radius:0;border-top-left-radius:var(--duet-radius);border-top-right-radius:var(--duet-radius);bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active .duet-date__dialog-content{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.duet-date__table{border-collapse:collapse;border-spacing:0;color:var(--duet-color-text);font-size:1rem;font-weight:var(--duet-font-normal);line-height:1.25;text-align:center;width:100%}.duet-date__table-header{font-size:0.75rem;font-weight:var(--duet-font-bold);letter-spacing:1px;line-height:1.25;padding-bottom:8px;text-decoration:none;text-transform:uppercase}.duet-date__cell{text-align:center}.duet-date__day{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;color:var(--duet-color-text);cursor:pointer;display:inline-block;font-family:var(--duet-font);font-size:0.875rem;font-variant-numeric:tabular-nums;font-weight:var(--duet-font-normal);height:36px;line-height:1.25;padding:0 0 1px;position:relative;text-align:center;vertical-align:middle;width:36px;z-index:1}.duet-date__day.is-today{box-shadow:0 0 0 1px var(--duet-color-primary);position:relative;z-index:200}.duet-date__day:hover::before,.duet-date__day.is-today::before{background:var(--duet-color-primary);border-radius:50%;bottom:0;content:\"\";left:0;opacity:0.06;position:absolute;right:0;top:0}.duet-date__day[aria-pressed=true],.duet-date__day:focus{background:var(--duet-color-primary);box-shadow:none;color:var(--duet-color-text-active);outline:0}.duet-date__day:active{background:var(--duet-color-primary);box-shadow:0 0 5px var(--duet-color-primary);color:var(--duet-color-text-active);z-index:200}.duet-date__day:focus{box-shadow:0 0 5px var(--duet-color-primary);z-index:200}.duet-date__day.is-disabled{background:transparent;box-shadow:none;color:var(--duet-color-text);cursor:default;opacity:0.5}.duet-date__day.is-disabled::before{display:none}.duet-date__day.is-outside{background:var(--duet-color-button);box-shadow:none;color:var(--duet-color-text);cursor:default;opacity:0.6;pointer-events:none}.duet-date__day.is-outside::before{display:none}.duet-date__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.duet-date__nav{white-space:nowrap}.duet-date__prev,.duet-date__next{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:var(--duet-color-button);border:0;border-radius:50%;color:var(--duet-color-text);cursor:pointer;display:inline-flex;height:32px;justify-content:center;margin-left:8px;padding:0;transition:background-color 300ms ease;width:32px}@media (max-width: 35.9375em){.duet-date__prev,.duet-date__next{height:40px;width:40px}}.duet-date__prev:focus,.duet-date__next:focus{box-shadow:0 0 0 2px var(--duet-color-primary);outline:0}.duet-date__prev:active:focus,.duet-date__next:active:focus{box-shadow:none}.duet-date__prev:disabled,.duet-date__next:disabled{cursor:default;opacity:0.5}.duet-date__prev svg,.duet-date__next svg{margin:0 auto}.duet-date__select{display:inline-flex;margin-top:4px;position:relative}.duet-date__select span{margin-right:4px}.duet-date__select select{cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:2}.duet-date__select select:focus+.duet-date__select-label{box-shadow:0 0 0 2px var(--duet-color-primary)}.duet-date__select-label{align-items:center;border-radius:var(--duet-radius);color:var(--duet-color-text);display:flex;font-size:1.25rem;font-weight:var(--duet-font-bold);line-height:1.25;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:1}.duet-date__select-label svg{width:16px;height:16px}.duet-date__mobile{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.duet-date__mobile{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-8px;top:-8px;width:auto}}.duet-date__mobile-heading{display:inline-block;font-weight:var(--duet-font-bold);max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.duet-date__mobile-heading{display:none}}.duet-date__close{-webkit-appearance:none;align-items:center;appearance:none;background:var(--duet-color-button);border:0;border-radius:50%;color:var(--duet-color-text);cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;width:24px}@media (min-width: 36em){.duet-date__close{opacity:0}}.duet-date__close:focus{box-shadow:0 0 0 2px var(--duet-color-primary);outline:none}@media (min-width: 36em){.duet-date__close:focus{opacity:1}}.duet-date__close svg{margin:0 auto}.duet-date__vhidden{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}"; + +function range(from, to) { + var result = []; + for (var i = from; i <= to; i++) { + result.push(i); + } + return result; +} +const keyCode = { + TAB: 9, + ESC: 27, + SPACE: 32, + PAGE_UP: 33, + PAGE_DOWN: 34, + END: 35, + HOME: 36, + LEFT: 37, + UP: 38, + RIGHT: 39, + DOWN: 40, +}; +const DISALLOWED_CHARACTERS = /[^0-9\.\/\-]+/g; +const TRANSITION_MS = 300; +const DuetDatePicker = class extends HTMLElement { + constructor() { + super(); + this.__registerHost(); + this.duetChange = createEvent(this, "duetChange", 7); + this.duetBlur = createEvent(this, "duetBlur", 7); + this.duetFocus = createEvent(this, "duetFocus", 7); + /** + * Own Properties + */ + this.monthSelectId = createIdentifier("DuetDateMonth"); + this.yearSelectId = createIdentifier("DuetDateYear"); + this.dialogLabelId = createIdentifier("DuetDateLabel"); + this.initialTouchX = null; + this.initialTouchY = null; + /** + * State() variables + */ + this.activeFocus = false; + this.focusedDay = new Date(); + this.open = false; + /** + * Public Property API + */ + /** + * Name of the date picker input. + */ + this.name = "date"; + /** + * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute. + */ + this.identifier = ""; + /** + * Makes the date picker input component disabled. This prevents users from being able to + * interact with the input, and conveys its inactive state to assistive technologies. + */ + this.disabled = false; + /** + * Forces the opening direction of the calendar modal to be always left or right. + * This setting can be useful when the input is smaller than the opening date picker + * would be as by default the picker always opens towards right. + */ + this.direction = "right"; + /** + * Should the input be marked as required? + */ + this.required = false; + /** + * Date value. Must be in IS0-8601 format: YYYY-MM-DD. + */ + this.value = ""; + /** + * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD. + * This setting can be used alone or together with the max property. + */ + this.min = ""; + /** + * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD. + * This setting can be used alone or together with the min property. + */ + this.max = ""; + /** + * Which day is considered first day of the week? `0` for Sunday, `1` for Monday, etc. + * Default is Monday. + */ + this.firstDayOfWeek = DaysOfWeek.Monday; + /** + * Button labels, day names, month names, etc, used for localization. + * Default is English. + */ + this.localization = localization; + /** + * Date adapter, for custom parsing/formatting. + * Must be object with a `parse` function which accepts a `string` and returns a `Date`, + * and a `format` function which accepts a `Date` and returns a `string`. + * Default is IS0-8601 parsing and formatting. + */ + this.dateAdapter = isoAdapter; + /** + * Local methods. + */ + this.enableActiveFocus = () => { + this.activeFocus = true; + }; + this.disableActiveFocus = () => { + this.activeFocus = false; + }; + this.toggleOpen = (e) => { + e.preventDefault(); + this.open ? this.hide(false) : this.show(); + }; + this.handleEscKey = (event) => { + if (event.keyCode === keyCode.ESC) { + this.hide(); + } + }; + this.handleBlur = (event) => { + event.stopPropagation(); + this.duetBlur.emit({ + component: "duet-date-picker", + }); + }; + this.handleFocus = (event) => { + event.stopPropagation(); + this.duetFocus.emit({ + component: "duet-date-picker", + }); + }; + this.handleTouchStart = (event) => { + const touch = event.changedTouches[0]; + this.initialTouchX = touch.pageX; + this.initialTouchY = touch.pageY; + }; + this.handleTouchMove = (event) => { + event.preventDefault(); + }; + this.handleTouchEnd = (event) => { + const touch = event.changedTouches[0]; + const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled + const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled + const threshold = 70; + const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold; + const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0; + if (isHorizontalSwipe) { + this.addMonths(distX < 0 ? 1 : -1); + } + else if (isDownwardsSwipe) { + this.hide(false); + event.preventDefault(); + } + this.initialTouchY = null; + this.initialTouchX = null; + }; + this.handleNextMonthClick = (event) => { + event.preventDefault(); + this.addMonths(1); + }; + this.handlePreviousMonthClick = (event) => { + event.preventDefault(); + this.addMonths(-1); + }; + this.handleFirstFocusableKeydown = (event) => { + // this ensures focus is trapped inside the dialog + if (event.keyCode === keyCode.TAB && event.shiftKey) { + this.focusedDayNode.focus(); + event.preventDefault(); + } + }; + this.handleKeyboardNavigation = (event) => { + // handle tab separately, since it needs to be treated + // differently to other keyboard interactions + if (event.keyCode === keyCode.TAB && !event.shiftKey) { + event.preventDefault(); + this.firstFocusableElement.focus(); + return; + } + var handled = true; + switch (event.keyCode) { + case keyCode.RIGHT: + this.addDays(1); + break; + case keyCode.LEFT: + this.addDays(-1); + break; + case keyCode.DOWN: + this.addDays(7); + break; + case keyCode.UP: + this.addDays(-7); + break; + case keyCode.PAGE_UP: + if (event.shiftKey) { + this.addYears(-1); + } + else { + this.addMonths(-1); + } + break; + case keyCode.PAGE_DOWN: + if (event.shiftKey) { + this.addYears(1); + } + else { + this.addMonths(1); + } + break; + case keyCode.HOME: + this.startOfWeek(); + break; + case keyCode.END: + this.endOfWeek(); + break; + default: + handled = false; + } + if (handled) { + event.preventDefault(); + this.enableActiveFocus(); + } + }; + this.handleDaySelect = (_event, day) => { + if (!inRange(day, parseISODate(this.min), parseISODate(this.max))) { + return; + } + if (day.getMonth() === this.focusedDay.getMonth()) { + this.setValue(day); + this.hide(); + } + else { + this.setFocusedDay(day); + } + }; + this.handleMonthSelect = e => { + this.setMonth(parseInt(e.target.value, 10)); + }; + this.handleYearSelect = e => { + this.setYear(parseInt(e.target.value, 10)); + }; + this.handleInputChange = (e) => { + const target = e.target; + // clean up any invalid characters + target.value = target.value.replace(DISALLOWED_CHARACTERS, ""); + const parsed = this.dateAdapter.parse(target.value, createDate); + if (parsed || target.value === "") { + this.setValue(parsed); + } + }; + this.processFocusedDayNode = (element) => { + this.focusedDayNode = element; + if (this.activeFocus && this.open) { + setTimeout(() => element.focus(), 0); + } + }; + } + connectedCallback() { + this.createDateFormatters(); + } + createDateFormatters() { + this.dateFormatShort = new Intl.DateTimeFormat(this.localization.locale, { day: "numeric", month: "long" }); + this.dateFormatLong = new Intl.DateTimeFormat(this.localization.locale, { + day: "numeric", + month: "long", + year: "numeric", + }); + } + /** + * Component event handling. + */ + handleDocumentClick(e) { + if (!this.open) { + return; + } + const target = e.target; + // TODO: stopPropagation only on open?? + // the dialog and the button aren't considered clicks outside. + // dialog for obvious reasons, but the button needs to be skipped + // so that two things are possible: + // + // a) clicking again on the button when dialog is open should close the modal. + // without skipping the button here, we would see a click outside + // _and_ a click on the button, so the `open` state goes + // open -> close (click outside) -> open (click button) + // + // b) clicking another date picker's button should close the current calendar + // and open the new one. this means we can't stopPropagation() on the button itself + // + // this was the only satisfactory combination of things to get the above to work + if (this.dialogWrapperNode.contains(target) || this.datePickerButton.contains(target)) { + return; + } + this.hide(false); + } + /** + * Public methods API + */ + /** + * Sets focus on the date picker's input. Use this method instead of the global `focus()`. + */ + async setFocus() { + return this.datePickerInput.focus(); + } + /** + * Show the calendar modal, moving focus to the calendar inside. + */ + async show() { + this.open = true; + this.setFocusedDay(parseISODate(this.value) || new Date()); + clearTimeout(this.focusTimeoutId); + this.focusTimeoutId = setTimeout(() => this.monthSelectNode.focus(), TRANSITION_MS); + } + /** + * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus + * returning to the date picker's button. Default is true. + */ + async hide(moveFocusToButton = true) { + this.open = false; + // in cases where calendar is quickly shown and hidden + // we should avoid moving focus to the button + clearTimeout(this.focusTimeoutId); + if (moveFocusToButton) { + // iOS VoiceOver needs to wait for all transitions to finish. + setTimeout(() => this.datePickerButton.focus(), TRANSITION_MS + 200); + } + } + addDays(days) { + this.setFocusedDay(addDays(this.focusedDay, days)); + } + addMonths(months) { + this.setMonth(this.focusedDay.getMonth() + months); + } + addYears(years) { + this.setYear(this.focusedDay.getFullYear() + years); + } + startOfWeek() { + this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek)); + } + endOfWeek() { + this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek)); + } + setMonth(month) { + const min = setMonth(startOfMonth(this.focusedDay), month); + const max = endOfMonth(min); + const date = setMonth(this.focusedDay, month); + this.setFocusedDay(clamp(date, min, max)); + } + setYear(year) { + const min = setYear(startOfMonth(this.focusedDay), year); + const max = endOfMonth(min); + const date = setYear(this.focusedDay, year); + this.setFocusedDay(clamp(date, min, max)); + } + setFocusedDay(day) { + this.focusedDay = clamp(day, parseISODate(this.min), parseISODate(this.max)); + } + setValue(date) { + this.value = printISODate(date); + this.duetChange.emit({ + component: "duet-date-picker", + value: this.value, + valueAsDate: date, + }); + } + /** + * render() function + * Always the last one in the class. + */ + render() { + const valueAsDate = parseISODate(this.value); + const formattedDate = valueAsDate && this.dateAdapter.format(valueAsDate); + const selectedYear = (valueAsDate || this.focusedDay).getFullYear(); + const focusedMonth = this.focusedDay.getMonth(); + const focusedYear = this.focusedDay.getFullYear(); + const minDate = parseISODate(this.min); + const maxDate = parseISODate(this.max); + const prevMonthDisabled = minDate != null && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear; + const nextMonthDisabled = maxDate != null && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear; + const minYear = minDate ? minDate.getFullYear() : selectedYear - 10; + const maxYear = maxDate ? maxDate.getFullYear() : selectedYear + 10; + return (h(Host, null, h("div", { class: "duet-date" }, h(DatePickerInput, { dateFormatter: this.dateFormatLong, value: this.value, valueAsDate: valueAsDate, formattedValue: formattedDate, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, role: this.role, required: this.required, identifier: this.identifier, localization: this.localization, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element) }), h("div", { class: { + "duet-date__dialog": true, + "is-left": this.direction === "left", + "is-active": this.open, + }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, h("div", { class: "duet-date__dialog-content", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, h("div", { class: "duet-date__vhidden duet-date__instructions", "aria-live": "polite" }, this.localization.keyboardInstruction), h("div", { class: "duet-date__mobile", onFocusin: this.disableActiveFocus }, h("label", { class: "duet-date__mobile-heading" }, this.localization.calendarHeading), h("button", { class: "duet-date__close", ref: element => (this.firstFocusableElement = element), onKeyDown: this.handleFirstFocusableKeydown, onClick: () => this.hide(), type: "button" }, h("svg", { "aria-hidden": "true", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), h("path", { d: "M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z" })), h("span", { class: "duet-date__vhidden" }, this.localization.closeLabel))), h("div", { class: "duet-date__header", onFocusin: this.disableActiveFocus }, h("div", null, h("h2", { id: this.dialogLabelId, class: "duet-date__vhidden", "aria-live": "polite", "aria-atomic": "true" }, this.localization.monthNames[focusedMonth], " ", this.focusedDay.getFullYear()), h("label", { htmlFor: this.monthSelectId, class: "duet-date__vhidden" }, this.localization.monthSelectLabel), h("div", { class: "duet-date__select" }, h("select", { id: this.monthSelectId, class: "duet-date__select--month", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, this.localization.monthNames.map((month, i) => (h("option", { key: month, value: i, selected: i === focusedMonth }, month)))), h("div", { class: "duet-date__select-label", "aria-hidden": "true" }, h("span", null, this.localization.monthNamesShort[focusedMonth]), h("svg", { fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24" }, h("path", { d: "M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z" })))), h("label", { htmlFor: this.yearSelectId, class: "duet-date__vhidden" }, this.localization.yearSelectLabel), h("div", { class: "duet-date__select" }, h("select", { id: this.yearSelectId, class: "duet-date__select--year", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (h("option", { key: year, selected: year === focusedYear }, year)))), h("div", { class: "duet-date__select-label", "aria-hidden": "true" }, h("span", null, this.focusedDay.getFullYear()), h("svg", { fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24" }, h("path", { d: "M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z" }))))), h("div", { class: "duet-date__nav" }, h("button", { class: "duet-date__prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, type: "button" }, h("svg", { "aria-hidden": "true", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", width: "21", height: "21", viewBox: "0 0 24 24" }, h("path", { d: "M14.71 15.88L10.83 12l3.88-3.88c.39-.39.39-1.02 0-1.41-.39-.39-1.02-.39-1.41 0L8.71 11.3c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .38-.39.39-1.03 0-1.42z" })), h("span", { class: "duet-date__vhidden" }, this.localization.prevMonthLabel)), h("button", { class: "duet-date__next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, type: "button" }, h("svg", { "aria-hidden": "true", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", width: "21", height: "21", viewBox: "0 0 24 24" }, h("path", { d: "M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41L10.7 17.3c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z" })), h("span", { class: "duet-date__vhidden" }, this.localization.nextMonthLabel)))), h(DatePickerMonth, { dateFormatter: this.dateFormatShort, selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, localization: this.localization, firstDayOfWeek: this.firstDayOfWeek, focusedDayRef: this.processFocusedDayNode, min: minDate, max: maxDate })))))); + } + get element() { return this; } + static get watchers() { return { + "localization": ["createDateFormatters"] + }; } + static get style() { return duetDatePickerCss; } +}; + +const DuetDatePicker$1 = /*@__PURE__*/proxyCustomElement(DuetDatePicker, [0,"duet-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"value":[513],"min":[1],"max":[1],"firstDayOfWeek":[2,"first-day-of-week"],"localization":[16],"dateAdapter":[16],"activeFocus":[32],"focusedDay":[32],"open":[32]},[[6,"click","handleDocumentClick"]]]); + +const datePickerCss = "duet-date-picker{--duet-color-primary:var(--telekom-color-primary-standard);--duet-color-text:var(--telekom-color-text-and-icon-standard);--duet-color-overlay:var(--telekom-color-background-surface);--duet-font:var(--telekom-typography-font-family-sans);--duet-font-normal:var(--telekom-typography-font-weight-regular);--duet-font-bold:var(--telekom-typography-font-weight-medium);--duet-color-placeholder:var(--telekom-color-ui-regular);--duet-radius:var(--telekom-radius-standard);--duet-radius-toggle-focus:6px;--duet-color-text-active:var(--telekom-color-text-and-icon-white-standard);--duet-color-button:var(--telekom-color-background-surface);--duet-color-surface:var(--telekom-color-background-surface);--duet-z-index:600;--duet-z-index-toggle:2;--spacing-x:var(--telekom-spacing-composition-space-05);--spacing-heading:0 0 var(--telekom-spacing-composition-space-06) 0;--font-size-heading:var(--telekom-typography-font-size-body);--radius-day:var(--telekom-radius-standard);--font-size-day:var(--telekom-typography-font-size-body);--font-size-table-header:var(--telekom-typography-font-size-caption);--font-weight-table-header:var(--telekom-typography-font-weight-extra-bold);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--z-index-label:10}duet-date-picker .duet-date__input{border:var(--telekom-line-weight-standard) solid\n var(--telekom-color-ui-border-standard);background-color:var(--telekom-color-ui-state-fill-standard);padding:1.125rem calc(2rem - var(--telekom-spacing-composition-space-01))\n 0.25rem calc(var(--spacing-x) - var(--telekom-spacing-composition-space-01));height:var(--telekom-spacing-composition-space-13);font:var(--telekom-text-style-body)}duet-date-picker .duet-date__input:hover{border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}duet-date-picker .duet-date__input:focus{border:var(--telekom-line-weight-standard) solid\n var(--telekom-color-ui-border-pressed);outline:var(--focus-outline);box-shadow:none;outline-offset:1px}duet-date-picker .duet-date__toggle{border-radius:0 var(--duet-radius-toggle-focus)\n var(--duet-radius-toggle-focus) 0;background:transparent;z-index:var(--duet-z-index-toggle);box-shadow:inset 1px 0 0 var(--telekom-color-ui-faint);width:var(--telekom-spacing-composition-space-13)}duet-date-picker .duet-date__toggle:focus{outline:var(--focus-outline);outline-offset:2px;box-shadow:none}.scale-date-picker:not(.scale-date-picker--disabled) duet-date-picker .duet-date__toggle:hover{background-color:var(--telekom-color-ui-state-fill-hovered)}.scale-date-picker:not(.scale-date-picker--disabled) duet-date-picker .duet-date__toggle:active{background-color:var(--telekom-color-ui-state-fill-pressed)}duet-date-picker .duet-date__toggle:hover scale-icon-content-calendar{color:var(--telekom-color-text-and-icon-standard)}duet-date-picker .duet-date__toggle:active scale-icon-content-calendar{color:var(--telekom-color-text-and-icon-standard)}@media screen and (forced-colors: active), (-ms-high-contrast: active){duet-date-picker .duet-date__toggle scale-icon-content-calendar,duet-date-picker .duet-date__header .duet-date__select-label,duet-date-picker .duet-date__header .duet-date__nav svg{color:var(--telekom-color-text-and-icon-inverted-standard)}duet-date-picker .duet-date__day[aria-pressed='true']{border:1px solid transparent}duet-date-picker .duet-date__day.is-today::before{border:2px solid transparent}}.scale-date-picker{position:relative}.scale-date-picker .date-picker__helper-text{font-weight:var(--telekom-typography-font-weight-bold);transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);padding-left:var(--telekom-spacing-composition-space-05);font-size:var(--telekom-typography-font-size-small);line-height:var(--telekom-typography-line-spacing-standard);color:var(--telekom-color-text-and-icon-functional-informational)}.scale-date-picker .date-picker__label{top:0;left:0;color:var(--telekom-color-text-and-icon-additional);display:flex;z-index:var(--z-index-label);position:absolute;transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);pointer-events:none;font:var(--telekom-text-style-ui);transform:translate(var(--telekom-spacing-composition-space-05), 0.875rem)}duet-date-picker .duet-date__input::placeholder{visibility:hidden;color:transparent;transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard)}duet-date-picker .duet-date__header{margin-top:var(--telekom-spacing-composition-space-04);margin-bottom:var(--telekom-spacing-composition-space-04);font:var(--telekom-text-style-ui)}duet-date-picker .duet-date__select{height:var(--telekom-spacing-composition-space-10)}duet-date-picker .duet-date__prev,duet-date-picker .duet-date__next{width:var(--telekom-spacing-composition-space-10);height:var(--telekom-spacing-composition-space-10)}duet-date-picker .duet-date__day{width:var(--telekom-spacing-composition-space-13);height:var(--telekom-spacing-composition-space-13)}.scale-date-picker.scale-date-picker--focus .date-picker__label,.scale-date-picker.animated .date-picker__label{color:var(--telekom-color-text-and-icon-additional);transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);font:var(--telekom-text-style-small-bold);transform:translate(\n 0.75rem,\n calc(0.25rem + var(--telekom-spacing-composition-space-01))\n )}.scale-date-picker.animated .duet-date__input::placeholder,duet-date-picker .duet-date__input:focus::placeholder{visibility:initial;color:var(--telekom-color-text-and-icon-standard);transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard)}duet-date-picker .duet-date__table{margin-top:var(--telekom-spacing-composition-space-04)}.scale-date-picker--status-error duet-date-picker .duet-date__input{margin-top:-1px;margin-bottom:-1px;border:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-danger-standard)}.scale-date-picker--status-error duet-date-picker .duet-date__input:hover{border:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-danger-hovered)}.scale-date-picker--status-error duet-date-picker .duet-date__input:focus{outline:var(--focus-outline);outline-offset:1px;box-shadow:none}.scale-date-picker--status-error .duet-date__toggle{width:47px}.scale-date-picker.scale-date-picker--disabled input,.scale-date-picker.scale-date-picker--disabled .duet-date__toggle{cursor:not-allowed}.scale-date-picker.scale-date-picker--disabled input,.scale-date-picker.scale-date-picker--disabled input:hover{color:var(--telekom-color-text-and-icon-disabled);border-color:var(--telekom-color-ui-border-disabled);background:none}.scale-date-picker.scale-date-picker--disabled .duet-date__toggle{color:var(--telekom-color-text-and-icon-disabled);box-shadow:inset 1px 0 0 var(--telekom-color-ui-border-disabled)}.scale-date-picker.scale-date-picker--disabled .duet-date__toggle:hover,.scale-date-picker.scale-date-picker--disabled .duet-date__toggle:hover scale-icon-content-calendar{color:var(--telekom-color-text-and-icon-disabled)}.scale-date-picker.scale-date-picker--disabled .date-picker__label{color:var(--telekom-color-text-and-icon-disabled)}.scale-date-picker__popup-heading{text-align:center;padding:var(--spacing-heading);font-size:var(--font-size-heading);font:var(--telekom-text-style-heading-6);color:var(--telekom-color-text-and-icon-standard) !important}duet-date-picker .duet-date__dialog-content{border:none;box-shadow:var(--telekom-shadow-raised-standard);max-width:324px;padding:var(--telekom-spacing-composition-space-06)\n var(--telekom-spacing-composition-space-04)\n var(--telekom-spacing-composition-space-04)\n var(--telekom-spacing-composition-space-04);margin-top:var(--telekom-spacing-composition-space-03)}duet-date-picker .duet-date__cell{padding:0}duet-date-picker .duet-date__mobile{margin-left:0;padding:var(--telekom-spacing-composition-space-03) 0\n var(--telekom-spacing-composition-space-05) 0}duet-date-picker .duet-date__select{margin-top:0}duet-date-picker .duet-date__select:nth-of-type(1){margin-right:var(--telekom-spacing-composition-space-04)}duet-date-picker .duet-date__select-label{font:var(--telekom-text-style-ui)}duet-date-picker .duet-date__select-label svg{width:16px;height:16px;margin-left:var(--telekom-spacing-composition-space-04)}duet-date-picker .duet-date__select select:focus+.duet-date__select-label{outline:var(--focus-outline)}duet-date-picker .duet-date__select select:hover+.duet-date__select-label{background:var(--telekom-color-primary-hovered);color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .duet-date__select select:active+.duet-date__select-label{box-shadow:none;background:var(--telekom-color-primary-pressed);color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .duet-date__prev,duet-date-picker .duet-date__next{border-radius:var(--duet-radius);margin-left:var(--telekom-spacing-composition-space-02)}duet-date-picker .duet-date__prev:hover,duet-date-picker .duet-date__next:hover{background:var(--telekom-color-primary-hovered);color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .duet-date__prev:active,duet-date-picker .duet-date__next:active{background:var(--telekom-color-primary-pressed);color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .duet-date__prev:focus,duet-date-picker .duet-date__next:focus{outline:var(--focus-outline)}duet-date-picker .duet-date__close{border-radius:var(--duet-radius)}duet-date-picker .duet-date__close:focus{outline:var(--focus-outline)}duet-date-picker .duet-date__table-header{height:var(--telekom-spacing-composition-space-14);padding:0;font-size:var(--font-size-table-header);font-weight:var(--font-weight-table-header)}duet-date-picker .duet-date__day{padding:0;border-radius:var(--radius-day);font-size:var(--font-size-day);color:var(--telekom-color-text-and-icon-standard)}duet-date-picker .duet-date__day.is-today{box-shadow:none}duet-date-picker .duet-date__day.is-disabled{opacity:1;color:var(--telekom-color-text-and-icon-disabled);pointer-events:none}duet-date-picker .duet-date__day.is-today::before{content:'';display:inline-block;width:var(--telekom-spacing-composition-space-03);height:var(--telekom-spacing-composition-space-03);border-radius:var(--telekom-radius-standard);background-color:var(--telekom-color-primary-standard);opacity:1;left:var(--telekom-spacing-composition-space-07);top:var(--telekom-spacing-composition-space-10)}duet-date-picker [aria-selected='true'] .duet-date__day.is-today::before,duet-date-picker .duet-date__day.is-today:hover::before{background-color:var(--telekom-color-background-surface)}duet-date-picker .duet-date__day.is-today.is-disabled::before{background-color:var(--telekom-radius-standard)}duet-date-picker .duet-date__day:focus{background:var(--telekom-color-background-surface);color:var(--telekom-color-text-and-icon-standard);outline:var(--focus-outline);box-shadow:none}duet-date-picker .duet-date__day:hover{background:var(--telekom-color-primary-hovered);color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .duet-date__day:active{box-shadow:none;background:var(--telekom-color-primary-pressed);color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .duet-date__day:hover::before{border-radius:var(--duet-radius);opacity:1;background:transparent;color:var(--telekom-color-text-and-icon-white-standard)}duet-date-picker .scale-date-picker__popup-heading{padding:var(--telekom-spacing-composition-space-04)}scale-date-picker .has-helper-text scale-helper-text{display:block;margin-top:var(--telekom-spacing-composition-space-03)}@media (max-width: 35.9375em) and (orientation: landscape){duet-date-picker .duet-date__dialog-content{zoom:70%}}@media (max-width: 35.9375em){duet-date-picker .scale-date-picker__popup-heading{display:none}duet-date-picker .duet-date__dialog-content{max-width:none}}"; + +if (typeof window !== 'undefined' && + typeof window.Audio !== 'undefined' && + !customElements.get('duet-date-picker')) { + customElements.define('duet-date-picker', DuetDatePicker$1); +} +const DEFAULT_ICON_SIZE = 20; +const DatePicker = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + this.scaleBlur = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-blur", 7); + this.scaleBlurLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleBlur", 7); + this.scaleFocus = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-focus", 7); + this.scaleFocusLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleFocus", 7); + /** + * Name of the date picker input. + */ + this.name = 'date'; + /** @deprecated in v3 in favor of localization.calendarHeading */ + this.popupTitle = 'Pick a date'; + /** + * Makes the date picker input component disabled. This prevents users from being able to + * interact with the input, and conveys its inactive state to assistive technologies. + */ + this.disabled = false; + /** + * Forces the opening direction of the calendar modal to be always left or right. + * This setting can be useful when the input is smaller than the opening date picker + * would be as by default the picker always opens towards right. + */ + this.direction = 'right'; + /** + * Should the input be marked as required? + */ + this.required = false; + /** + * Date value. Must be in IS0-8601 format: YYYY-MM-DD. + */ + this.value = ''; + /** + * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD. + * This setting can be used alone or together with the max property. + */ + this.min = ''; + /** + * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD. + * This setting can be used alone or together with the min property. + */ + this.max = ''; + /** (optional) Helper text */ + this.helperText = ''; + /** @deprecated - invalid should replace status */ + this.status = ''; + /** (optional) Label */ + this.label = ''; + /** (optional) Input place holder */ + this.placeholder = ''; + this.variant = 'informational'; + /** Whether the input element has focus */ + this.hasFocus = false; + /** Whether the input element has value */ + this.hasValue = this.value != null && this.value !== ''; + this.internalId = (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.g)(); + /** + * Fix JAWS reading the day twice, e.g. "19 19. August" + * It'd probably make sense to open a PR in duetds/date-picker + * https://github.com/duetds/date-picker/blob/master/src/components/duet-date-picker/date-picker-day.tsx#L61 + */ + this.adjustButtonsLabelsForA11y = () => { + const table = this.hostElement.querySelector('.duet-date__table'); + if (!table) { + // The node we need does not exist yet. Wait and try again. + setTimeout(this.adjustButtonsLabelsForA11y); + return; + } + const options = { subtree: true, childList: true, attributes: true }; + const callback = () => { + this.mo.disconnect(); // avoid a feedback loop + const buttons = Array.from(this.hostElement.querySelectorAll('.duet-date__day')); + buttons.forEach((button) => { + const span = button.querySelector('.duet-date__vhidden'); + const text = span.textContent; + button.setAttribute('aria-label', text); + span.setAttribute('hidden', 'hidden'); + }); + this.mo.observe(table, options); + }; + this.mo = new MutationObserver(callback); + callback(); + }; + } + /** + * Public methods API + */ + /** + * Sets focus on the date picker's input. Use this method instead of the global `focus()`. + */ + async setFocus() { + return this.duetInput.setFocus(); + } + /** + * Show the calendar modal, moving focus to the calendar inside. + */ + async show() { + return this.duetInput.show(); + } + /** + * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus + * returning to the date picker's button. Default is true. + */ + async hide(moveFocusToButton = true) { + return this.duetInput.hide(moveFocusToButton); + } + /** + * Watch `value` property for changes and update `hasValue` based on that. + */ + onValueChange() { + this.hasValue = this.value != null && this.value !== ''; + // @ts-ignore + this.duetInput.querySelector('.duet-date__input').value = this.value; + } + /** + * Watch `placeholder` property for changes and update `placeholder` based on that. + */ + onPlaceholderChange(newValue) { + const input = this.duetInput.querySelector('.duet-date__input'); + if (input && this.placeholder) { + input.setAttribute('placeholder', newValue); + } + } + componentWillLoad() { + if (this.popupTitle !== 'Pick a date') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ + tag: 'deprecated', + message: 'Property "popupTitle" is deprecate in favor of localization.calendarHeading.', + type: 'warn', + source: this.hostElement, + }); + } + this.handleKeyPress = this.handleKeyPress.bind(this); + if (this.identifier == null) { + this.identifier = 'scale-date-picker-' + this.internalId; + } + } + componentDidLoad() { + var _a, _b; + const calendarIcon = this.duetInput.querySelector('.duet-date__toggle-icon'); + if (calendarIcon) { + const icon = document.createElement('scale-icon-content-calendar'); + icon.size = DEFAULT_ICON_SIZE; + calendarIcon.replaceWith(icon); + } + const navLeftIcon = this.duetInput.querySelector('.duet-date__prev svg'); + if (navLeftIcon) { + const scaleNavLeftIcon = document.createElement('scale-icon-navigation-left'); + scaleNavLeftIcon.size = 16; + navLeftIcon.replaceWith(scaleNavLeftIcon); + } + const navRightIcon = this.duetInput.querySelector('.duet-date__next svg'); + if (navRightIcon) { + const scaleNavRightIcon = document.createElement('scale-icon-navigation-right'); + scaleNavRightIcon.size = 16; + navRightIcon.replaceWith(scaleNavRightIcon); + } + const selectIcon = this.duetInput.querySelectorAll('.duet-date__select-label svg'); + if (selectIcon) { + Array.from(selectIcon).forEach((icon) => icon.replaceWith(document.createElement('scale-icon-navigation-collapse-down'))); + } + const input = this.duetInput.querySelector('.duet-date__input'); + if (input) { + input.addEventListener('keyup', this.handleKeyPress); + } + if (input && this.helperText) { + input.setAttribute('aria-describedby', `helper-message-${this.internalId}`); + } + if (input && this.placeholder) { + input.setAttribute('placeholder', this.placeholder); + } + if (input && (this.status === 'error' || this.invalid)) { + input.setAttribute('aria-invalid', 'true'); + } + // Remove existing

with `{Month} {Year}` text + const dialog = this.hostElement.querySelector('.duet-date__dialog'); + let duetHeadingId = ''; + if (dialog) { + duetHeadingId = dialog.getAttribute('aria-labelledby'); + if (duetHeadingId) { + const duetHeading = this.hostElement.querySelector(`#${duetHeadingId}`); + if (duetHeading) { + duetHeading.parentElement.removeChild(duetHeading); + } + } + } + // Add custom

heading + const dialogContent = this.hostElement.querySelector('.duet-date__dialog-content'); + if (dialogContent) { + const calendarHeading = ((_a = this.localization) === null || _a === void 0 ? void 0 : _a.calendarHeading) || this.popupTitle || 'Pick a date'; + const heading = document.createElement('h2'); + heading.id = duetHeadingId; // link to .duet-date__dialog[aria-labelledby] + heading.className = 'scale-date-picker__popup-heading'; + heading.innerHTML = calendarHeading; + dialogContent.insertBefore(heading, dialogContent.firstChild); + } + // truncate table headings to a single character + const tableHeadings = this.hostElement.querySelectorAll('.duet-date__table-header span[aria-hidden="true"]'); + if (tableHeadings) { + Array.from(tableHeadings).forEach((item) => (item.innerHTML = item.innerHTML[0])); + } + const today = this.hostElement.querySelector('.duet-date__day.is-today span.duet-date__vhidden'); + if (today) { + today.innerHTML = `${today.innerHTML}, ${((_b = this.localization) === null || _b === void 0 ? void 0 : _b.today) || 'today'}`; + } + this.adjustButtonsLabelsForA11y(); + } + componentDidRender() { + if (this.status !== '') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ + tag: 'deprecated', + message: 'Property "status" is deprecated. Please use the "invalid" property!', + type: 'warn', + source: this.hostElement, + }); + } + if (this.size) { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ + tag: 'deprecated', + message: 'Property "size" is deprecated. Please use css overwrite!', + type: 'warn', + source: this.hostElement, + }); + } + } + disconnectedCallback() { + if (this.duetInput) { + const input = this.duetInput.querySelector('.duet-date__input'); + if (input) { + input.removeEventListener('keyup', this.handleKeyPress); + } + } + if (this.mo) { + this.mo.disconnect(); + } + } + handleKeyPress(e) { + this.hasValue = e.target.value != null && e.target.value !== ''; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_2__.c)('scale-date-picker', this.status && `scale-date-picker--status-${this.status}`, this.invalid && `scale-date-picker--status-error`, this.hasFocus && 'scale-date-picker--focus', this.disabled && 'scale-date-picker--disabled', this.hasValue && 'animated', this.helperText && 'has-helper-text') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("label", { class: "date-picker__label", htmlFor: this.identifier }, this.label), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("duet-date-picker", { onDuetChange: (e) => { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleChange', e.detail); + this.handleKeyPress(e); + }, onDuetFocus: (e) => { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleFocus', e.detail); + this.hasFocus = true; + }, onDuetBlur: (e) => { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleBlur', e.detail); + this.hasFocus = false; + }, name: this.name, identifier: this.identifier, role: this.innerRole, direction: this.direction, required: this.required, min: this.min, max: this.max, firstDayOfWeek: this.firstDayOfWeek, localization: this.localization, dateAdapter: this.dateAdapter, disabled: this.disabled, value: this.value, ref: (element) => (this.duetInput = element) }), this.helperText && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-helper-text", { helperText: this.helperText, variant: this.invalid ? 'danger' : this.variant }))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "value": ["onValueChange"], + "placeholder": ["onPlaceholderChange"] + }; } +}; +DatePicker.style = datePickerCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/23571.beacb70b.js b/pr-preview/pr-186/assets/js/23571.beacb70b.js new file mode 100644 index 000000000..d168e67c6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/23571.beacb70b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[23571],{23571:(l,a,t)=>{t.r(a),t.d(a,{scale_icon_weather_cloudy_thunder_rain:()=>i});var e=t(90936);const i=class{constructor(l){(0,e.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},a=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,a),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M10.999 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.954-.149-1.337-1.29-.713-1.985l.087-.088 2.238-2.05zM9.21 15.2l-2.562 3.6h2.487L4.09 22.878c-.128.103-.296-.029-.254-.166l.023-.046L5.663 20H3.751l2.662-4.8H9.21zm4.066-1.385a.12.12 0 01.197.062l.002.044-.522 3.334a1.301 1.301 0 01-1.487 1.085c-1.034-.162-1.448-1.403-.769-2.154l.091-.091 2.488-2.28zM10.507 5.95a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753c0 2.195-1.668 4.005-3.795 4.215l.032-.137.52-3.333a1.421 1.421 0 00-2.24-1.365l-.117.096L11.26 13.9H5.647l-1.984 3.579A3.863 3.863 0 01.8 13.746c0-1.4.755-2.684 1.952-3.366.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.255zm9.24 4.596a.6.6 0 01.765-.069l.083.07.85.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zM16.601 4.4c1.654 0 3 1.345 3 3 0 1.132-.63 2.118-1.558 2.63a5.43 5.43 0 00-1.344-1.24 6.768 6.768 0 00-2.628-2.996 2.997 2.997 0 012.53-1.394zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.098-1.192l.098-.008h1.2zM11.757 2.556a.6.6 0 01.765-.069l.084.07.849.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zm8.84 0a.6.6 0 01.917.766l-.07.083-.848.848a.596.596 0 01-.849 0 .6.6 0 01-.07-.765l.07-.083.85-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.193.097L16 2.35v-1.2a.6.6 0 01.6-.6z","fill-rule":"evenodd"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M10.998 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.953-.149-1.336-1.29-.713-1.985l.087-.087 2.238-2.05zM9.21 15.2l-2.562 3.6h2.487l-5.047 4.078c-.127.103-.295-.029-.253-.166l.022-.046L5.663 20H3.75l2.661-4.8H9.21zm4.065-1.385a.12.12 0 01.198.062l.001.045-.522 3.333a1.301 1.301 0 01-1.354 1.099l-.132-.014-.126-.026c-.942-.238-1.295-1.408-.643-2.128l.09-.091 2.488-2.28zM10.5 5.981a5.577 5.577 0 015.242 3.639A4.246 4.246 0 0118 13.364a4.238 4.238 0 01-3.897 4.218l.035-.141.171-1.093a3.04 3.04 0 002.491-2.984 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.5 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 13.727c0 1.319.96 2.417 2.218 2.633l.166.024-.614 1.106A3.877 3.877 0 01.8 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 5.981zm9.246 4.565a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 010-.849zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-2.254-4.244a.6.6 0 01.917.766l-.069.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zm-8.84 0a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 010-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/23890.0abc091d.js b/pr-preview/pr-186/assets/js/23890.0abc091d.js new file mode 100644 index 000000000..e6e7adabd --- /dev/null +++ b/pr-preview/pr-186/assets/js/23890.0abc091d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[23890],{23890:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_device_smart_speaker:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 7.55c1.711 0 3.422.363 4.663.712l.501.148.436.14h1.1c1.05 0 1.9.75 2 1.8l.223 2.86.077 1.062.067 1.056c.05.866.083 1.689.083 2.372 0 2.226-1.405 4.17-3.444 4.656l-.206.044v.1c0 .51-.388.935-.884.993l-.116.007h-9c-.51 0-.935-.388-.993-.884L6.5 22.5v-.05C4.35 22 2.85 20 2.85 17.7c0-.732.032-1.617.082-2.546L3 14.025c.012-.19.026-.379.039-.567l.084-1.113.044-.535.09-1.003.043-.457c.095-.95.867-1.72 1.844-1.794L5.3 8.55h1.15l.347-.113.408-.125.463-.132c1.14-.312 2.687-.63 4.332-.63zm1 9.95v2h-2v-2h2zM12.25 4c1.364 0 2.645.248 3.805.669l.345.131-.7 1.35a8.86 8.86 0 00-3.45-.7c-1.273 0-2.463.29-3.57.755l-.33.145-.7-1.3C9.05 4.4 10.6 4 12.25 4zm0-3.5c1.95 0 3.77.388 5.462 1.124l.388.176-.7 1.3C15.8 2.4 14.1 2 12.25 2c-1.857 0-3.628.388-5.233 1.124L6.65 3.3 5.95 2C7.85 1.05 10 .5 12.25.5z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 7.55c1.711 0 3.422.363 4.663.712l.501.148.436.14h1.1c1.05 0 1.9.75 2 1.8l.223 2.86.077 1.062.067 1.056c.05.866.083 1.689.083 2.372 0 2.226-1.405 4.17-3.444 4.656l-.206.044v.1c0 .51-.388.935-.884.993l-.116.007h-9c-.51 0-.935-.388-.993-.884L6.5 22.5v-.05C4.35 22 2.85 20 2.85 17.7c0-.732.032-1.617.082-2.546L3 14.025c.012-.19.026-.379.039-.567l.084-1.113.044-.535.09-1.003.043-.457c.095-.95.867-1.72 1.844-1.794L5.3 8.55h1.15l.347-.113.408-.125.463-.132c1.14-.312 2.687-.63 4.332-.63zM18.7 10H5.3c-.25 0-.5.2-.5.45l-.208 2.566-.073.984-.066.993-.054.97c-.03.63-.049 1.225-.049 1.737 0 1.786 1.212 3.2 2.826 3.295L7.35 21h9.3c1.7 0 3-1.45 3-3.3 0-.494-.017-1.057-.044-1.653l-.048-.915-.06-.935-.068-.93-.23-2.817c-.044-.219-.202-.4-.409-.44L18.7 10zM13 17.5v2h-2v-2h2zM12.25 4c1.364 0 2.645.248 3.805.669l.345.131-.7 1.35a8.86 8.86 0 00-3.45-.7c-1.273 0-2.463.29-3.57.755l-.33.145-.7-1.3C9.05 4.4 10.6 4 12.25 4zm0-3.5c1.95 0 3.77.388 5.462 1.124l.388.176-.7 1.3C15.8 2.4 14.1 2 12.25 2c-1.857 0-3.628.388-5.233 1.124L6.65 3.3 5.95 2C7.85 1.05 10 .5 12.25.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/23899.d58f3412.js b/pr-preview/pr-186/assets/js/23899.d58f3412.js new file mode 100644 index 000000000..5a5ce4b26 --- /dev/null +++ b/pr-preview/pr-186/assets/js/23899.d58f3412.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[23899],{23899:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_chat_badge:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M10.973 3.5a7.698 7.698 0 00-.972 3.75c0 4.273 3.476 7.75 7.75 7.75a7.69 7.69 0 004.498-1.453l.25-.187V16a3 3 0 01-2.823 2.994L19.5 19h-7l-3.512 3.513a1.715 1.715 0 01-1.225.516c-.855 0-1.676-.63-1.756-1.598L6 21.274V19H4.5a3 3 0 01-2.994-2.823L1.5 16V3.5h9.473zM17.75 1a6.25 6.25 0 110 12.499A6.25 6.25 0 0117.75 1zm0 1.5A4.755 4.755 0 0013 7.25 4.756 4.756 0 0017.75 12c2.62 0 4.75-2.131 4.75-4.75 0-2.62-2.13-4.75-4.75-4.75zm.124 1.434c1.208 0 1.997.808 1.997 1.942 0 .798-.356 1.334-.82 1.785l-.118.11-1.469 1.33v.055h2.38v1.125h-3.848V8.943l2.073-1.989c.297-.288.557-.594.557-1.078 0-.4-.297-.79-.752-.79-.406 0-.681.192-.777.59l-.023.126H15.83c.075-1.05.781-1.868 2.045-1.868z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21 16c0 .827-.673 1.5-1.5 1.5h-7.621l-3.952 3.952a.236.236 0 01-.273.056.26.26 0 01-.154-.233V17.5h-3c-.827 0-1.5-.673-1.5-1.5V5h7.335a7.649 7.649 0 01.634-1.5H1.5V16a3 3 0 003 3H6v2.275c0 1.055.863 1.754 1.763 1.754.43 0 .867-.16 1.225-.517L12.5 19h7a3 3 0 003-3v-2.636a7.735 7.735 0 01-1.5.914V16zm-3.25-2.5a6.25 6.25 0 100-12.5 6.25 6.25 0 000 12.5zm.123-9.566c1.208 0 1.998.808 1.998 1.942 0 .864-.418 1.422-.938 1.896l-1.469 1.329v.055h2.379v1.125h-3.847V8.943l2.072-1.988c.298-.288.558-.595.558-1.079 0-.399-.298-.79-.753-.79-.446 0-.734.233-.799.716h-1.245c.074-1.05.781-1.868 2.044-1.868z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2395.32f18f20.js b/pr-preview/pr-186/assets/js/2395.32f18f20.js new file mode 100644 index 000000000..b46e07267 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2395.32f18f20.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2395; +exports.ids = [2395]; +exports.modules = { + +/***/ 42395: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_transport: () => (/* binding */ ContentTransport) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentTransport = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6.5 15.5C7.9 15.5 9 16.6 9 18s-1.1 2.5-2.5 2.5S4 19.4 4 18s1.1-2.5 2.5-2.5zm12.5 0c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5-2.5-1.1-2.5-2.5 1.1-2.5 2.5-2.5zm0 1.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6.5 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM17 3.5v3h4.75c.267 0 .533.158.66.404l.04.096 1.25 3.75c.167.458.264.951.292 1.45l.008.3V18h-1.5c0-1.96-1.54-3.5-3.5-3.5a3.463 3.463 0 00-3.495 3.305L15.5 18H10c0-1.96-1.54-3.5-3.5-3.5a3.463 3.463 0 00-3.495 3.305L3 18a3.01 3.01 0 01-2.995-2.824L0 15V3.5h17zM20.5 9H18v4h3.5v-.5l-.01-.233a3.216 3.216 0 00-.089-.544l-.051-.173L20.5 9z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19 15.5c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5-2.5-1.1-2.5-2.5 1.1-2.5 2.5-2.5zm-12.5 0C7.9 15.5 9 16.6 9 18s-1.1 2.5-2.5 2.5S4 19.4 4 18s1.1-2.5 2.5-2.5zM19 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6.5 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm9.35-.5a3.833 3.833 0 00-.341 1.267L15.5 18H10c0-.471-.073-.906-.252-1.304L9.65 16.5h6.2zM17 3.5v3h4.75c.267 0 .533.158.66.404l.04.096 1.25 3.75c.167.458.264.951.292 1.45l.008.3V18h-1.5v-5.5c0-.32-.032-.672-.122-1.005l-.078-.245L21.2 8H17v6c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L15.5 14V5h-14v10c0 .8.576 1.423 1.352 1.493L3 16.5h.35c-.2.45-.35.95-.35 1.5a3.01 3.01 0 01-2.995-2.824L0 15V3.5h17zM20.5 9l.85 2.55c.075.225.122.478.14.717l.01.233v.5H18V9h2.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentTransport.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24013.ae95d350.js b/pr-preview/pr-186/assets/js/24013.ae95d350.js new file mode 100644 index 000000000..a84639805 --- /dev/null +++ b/pr-preview/pr-186/assets/js/24013.ae95d350.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[24013],{24013:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_user_file_girl:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M9.561 19.006L12 21.447l2.44-2.44h1.674c1.017 0 1.948.395 2.636 1.052.732.697.99 1.413 1.144 2.234l.037.208H4.068c.165-.99.455-1.835 1.347-2.591a3.807 3.807 0 012.239-.896l.232-.007h1.675zM20.576 4.5c.962 2.544-1.409 4.275-3.567 3.954.413.8.643 1.729.643 2.745 0 3.18-2.27 6.585-5.651 6.585-3.38 0-5.652-3.405-5.652-6.585 0-1.016.23-1.946.644-2.745-2.16.321-4.53-1.409-3.569-3.954l.065.06.112.09a2.2 2.2 0 001.238.451 2.1 2.1 0 00.598-.076l.414-.117c.412-.115.83-.185 1.39.119.64.347.935 1.217 1.065 1.795.97-.805 2.244-1.274 3.695-1.274 1.45 0 2.724.469 3.694 1.274.13-.578.424-1.448 1.064-1.795.498-.27.884-.245 1.253-.156l.552.154a2.1 2.1 0 00.598.076 2.2 2.2 0 001.238-.45l.112-.09.064-.06zM12 8.804l-.106.221c-.508.993-1.658 2.415-4.027 2.61.183 2.321 1.796 4.648 4.133 4.648 2.336 0 3.95-2.327 4.133-4.648-2.551-.21-3.688-1.843-4.133-2.83z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24140de9.cf2d0783.js b/pr-preview/pr-186/assets/js/24140de9.cf2d0783.js new file mode 100644 index 000000000..d36f8d8f1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/24140de9.cf2d0783.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[14124],{74141:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var n=t(74848),a=t(28453);const s={id:"umami",title:"Umami",tags:["umami","analytics","gdpr"]},r="Umami",o={id:"blueprints/by-use-case/analytics/umami/umami",title:"Umami",description:"Umami is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking.",source:"@site/docs/blueprints/by-use-case/analytics/umami/overview.md",sourceDirName:"blueprints/by-use-case/analytics/umami",slug:"/blueprints/by-use-case/analytics/umami/umami",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/umami",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-use-case/analytics/umami/overview.md",tags:[{inline:!0,label:"umami",permalink:"/docs-next/pr-preview/pr-186/docs/tags/umami"},{inline:!0,label:"analytics",permalink:"/docs-next/pr-preview/pr-186/docs/tags/analytics"},{inline:!0,label:"gdpr",permalink:"/docs-next/pr-preview/pr-186/docs/tags/gdpr"}],version:"current",frontMatter:{id:"umami",title:"Umami",tags:["umami","analytics","gdpr"]},sidebar:"blueprintsSidebar",previous:{title:"Deploy ClickHouse on CCE",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cce"},next:{title:"Deploy Umami on CCE",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce"}},l={},c=[];function d(e){const i={a:"a",admonition:"admonition",h1:"h1",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"umami",children:"Umami"}),"\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.a,{href:"https://umami.is/",children:"Umami"})," is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking."]}),"\n",(0,n.jsx)(i.admonition,{title:"important",type:"danger",children:(0,n.jsxs)(i.p,{children:["Umami is ",(0,n.jsx)(i.strong,{children:"fully GDPR compliant"}),". It is designed with privacy in mind, meaning it ",(0,n.jsx)(i.strong,{children:"does not track personal data"}),", it ",(0,n.jsx)(i.strong,{children:"does not use cookies"}),", and it ",(0,n.jsx)(i.strong,{children:"does not require user consent under GDPR rules"}),". Umami collects only anonymized, aggregated data, ensuring that no ",(0,n.jsx)(i.a,{href:"https://gdpr.eu/eu-gdpr-personal-data/",children:"personally identifiable information (PII)"})," is gathered. This makes it an excellent solution for organizations looking to monitor web traffic while staying compliant with strict data protection regulations like GDPR. Additionally, since Umami is self-hosted, businesses have full control over their data, further enhancing privacy and compliance."]})}),"\n",(0,n.jsx)(i.admonition,{title:"See Also",type:"tip",children:(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:(0,n.jsx)(i.a,{href:"https://gdpr.eu/",children:"GDPR.eu: Complete Guide to GDPR Compliance"})}),"\n",(0,n.jsx)(i.li,{children:(0,n.jsx)(i.a,{href:"https://gdpr.eu/eu-gdpr-personal-data/",children:"What is considered personal data under the EU GDPR?"})}),"\n",(0,n.jsx)(i.li,{children:(0,n.jsx)(i.a,{href:"https://gdpr.eu/checklist/",children:"Are you ready for the GDPR? GDPR checklist for data controllers"})}),"\n"]})})]})}function m(e={}){const{wrapper:i}={...(0,a.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},28453:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>o});var n=t(96540);const a={},s=n.createContext(a);function r(e){const i=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2420.2d47c6ad.js b/pr-preview/pr-186/assets/js/2420.2d47c6ad.js new file mode 100644 index 000000000..25bf2d0a2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2420.2d47c6ad.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2420; +exports.ids = [2420]; +exports.modules = { + +/***/ 82420: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_light_bulb: () => (/* binding */ HomeLightBulb) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomeLightBulb = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.5 19.006v2.27l-1.534.557A1.995 1.995 0 0112 23.5a1.994 1.994 0 01-1.933-1.512l-.033-.155-1.534-.557v-2.27h7zM11.748 5.505a6.46 6.46 0 014.76 1.811A6.448 6.448 0 0118.5 12a6.47 6.47 0 01-.558 2.639c-.301.679-.658 1.155-1.004 1.575l-.435.52a4.737 4.737 0 00-.402.55l-.12.202H8.037a4.914 4.914 0 00-.447-.646l-.502-.593c-.39-.465-.795-1.006-1.123-1.828a6.503 6.503 0 01-.464-2.515c.05-3.399 2.851-6.27 6.248-6.399zM3.25 11.25a.75.75 0 01.102 1.493l-.102.007h-2a.75.75 0 01-.102-1.493l.102-.007h2zm19.5 0a.75.75 0 01.102 1.493l-.102.007h-2a.75.75 0 01-.102-1.493l.102-.007h2zM3.869 3.868a.751.751 0 01.975-.072l.084.072 1.415 1.414a.75.75 0 01-.967 1.14l-.094-.079L3.87 4.929a.75.75 0 010-1.061zm15.203 0a.749.749 0 011.133.977l-.072.085-1.415 1.413a.751.751 0 01-1.134-.977l.073-.083 1.415-1.415zM12 .5a.75.75 0 01.743.648l.007.102v2a.75.75 0 01-1.493.102l-.007-.102v-2A.75.75 0 0112 .5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.865 16.419a5.757 5.757 0 00-.51 1.081H9.666a5.591 5.591 0 00-.506-1.067c-.638-1.037-1.177-1.144-1.739-2.416A4.988 4.988 0 017 11.926c.037-2.614 2.192-4.823 4.803-4.922a4.928 4.928 0 013.663 1.394A4.959 4.959 0 0117 12c0 .653-.125 1.29-.364 1.88-.544 1.341-1.13 1.484-1.771 2.539M11.748 5.505c-3.396.129-6.198 3-6.247 6.4a6.502 6.502 0 00.462 2.514c.476 1.187 1.11 1.789 1.625 2.421.516.633.912 1.296.912 2.605v1.83l1.534.558A1.995 1.995 0 0012 23.5c.99 0 1.807-.722 1.966-1.667l1.534-.557v-1.687c0-1.344.373-2.048.866-2.683.492-.635 1.103-1.2 1.577-2.266A6.486 6.486 0 0018.5 12a6.447 6.447 0 00-1.992-4.684 6.456 6.456 0 00-4.76-1.811M22.75 11.25h-2a.75.75 0 100 1.5h2a.75.75 0 100-1.5m-2.618-7.381a.75.75 0 00-1.06 0l-1.415 1.413a.75.75 0 101.061 1.061l1.415-1.413a.75.75 0 00-.001-1.061M12 4a.75.75 0 00.75-.75v-2a.75.75 0 10-1.5 0v2c0 .414.336.75.75.75m-8.75 7.25h-2a.75.75 0 100 1.5h2a.75.75 0 100-1.5m3.093-4.907a.75.75 0 000-1.061L4.928 3.868a.75.75 0 00-1.06 1.061l1.414 1.414a.75.75 0 001.061 0", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomeLightBulb.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24220.2416bb90.js b/pr-preview/pr-186/assets/js/24220.2416bb90.js new file mode 100644 index 000000000..f70037605 --- /dev/null +++ b/pr-preview/pr-186/assets/js/24220.2416bb90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[24220],{24220:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_data_visualisation:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M1 3.5V16a3 3 0 003 3h5.44l-.11.21A1.5 1.5 0 018 20H5.5v1.5h13V20H16a1.5 1.5 0 01-1.325-.79L14.56 19H20a3 3 0 003-3V3.5H1zm10.925 12a3.925 3.925 0 110-7.845v3.92h3.92a3.92 3.92 0 01-3.92 3.925zm1.075-5V6.575a3.925 3.925 0 013.925 3.925H13z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M23 3.5V16a3 3 0 01-2.824 2.995L20 19h-5.441l.113.21a1.5 1.5 0 001.172.783l.149.007H18.5v1.5h-13V20h2.507a1.5 1.5 0 001.244-.662l.077-.129.113-.209H4a3 3 0 01-2.995-2.824L1 16V3.5h22zM21.5 5h-19v11c0 .778.596 1.42 1.356 1.493L4 17.5h16c.778 0 1.42-.596 1.493-1.356L21.5 16V5zm-9.577 2.654v3.923h3.923a3.923 3.923 0 11-4.125-3.918l.202-.005zM13 6.577a3.91 3.91 0 012.774 1.149 3.91 3.91 0 011.142 2.543l.007.231H13V6.577z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2431.be2c2e38.js b/pr-preview/pr-186/assets/js/2431.be2c2e38.js new file mode 100644 index 000000000..3c5f20a19 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2431.be2c2e38.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2431; +exports.ids = [2431]; +exports.modules = { + +/***/ 52431: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_t_product_voice: () => (/* binding */ TProductVoice) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const TProductVoice = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.15 15.6c0 3.25-1.35 5.6-3.8 6.65-1.5.65-3.5.55-5.4-.1.4-.2.8-.35 1.15-.6 1.5-.9 2.7-2 3.6-3.15.65-.25 1.25-.55 1.85-.9.95-.55 1.85-1.2 2.6-1.9zM2.7 13c.45.9 1.05 1.8 1.75 2.6 1.05 1.25 2.3 2.1 3.6 2.7 1.25.6 2.8 1.05 4.4 1.05.4 0 .75-.05 1.15-.1-.4.35-.85.65-1.3.95-1.9 1.2-4.15 1.6-6.2 1.05-1.55-.4-2.8-1.3-3.5-2.55-.85-1.55-.8-3.7.1-5.7zm14-9.7c2.4 0 4.5.95 5.55 2.75 1.714 3.086-.218 7.419-4.293 9.85l-.257.15C13.45 18.5 8.55 17.9 6.75 14.8c-.65-1.2-.8-2.6-.4-4.1.65-2.3 2.5-4.55 4.95-5.9 1.8-1 3.65-1.5 5.4-1.5zm-4.75 5.3c-1.85 0-3.4 1.55-3.4 3.4 0 1.85 1.5 3.4 3.4 3.4 1.85 0 3.4-1.55 3.4-3.4 0-1.85-1.5-3.4-3.4-3.4zM4.8 3.15c2.1-1.9 5.2-2.2 8-.95-.85.3-1.65.65-2.45 1.1-2.9 1.65-5 4.2-5.75 6.95-.2.8-.3 1.6-.3 2.45-2-3.45-1.9-7.35.5-9.55z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.8 2.7c-1.55 0-2.9.5-4 1.5-2.1 1.9-2.2 5.35-.45 8.3v-.3c0-.6.1-1.2.25-1.8.65-2.4 2.5-4.65 5.05-6.1.7-.4 1.45-.7 2.15-.95l-.3-.1c-.5-.2-1.05-.35-1.6-.45l-.35-.05c-.25 0-.5-.05-.75-.05m2.15 5.9c1.9 0 3.4 1.55 3.4 3.4 0 1.85-1.55 3.4-3.4 3.4-1.9 0-3.4-1.55-3.4-3.4 0-1.85 1.5-3.4 3.4-3.4m4.15-4.25c-1.5 0-3.15.45-4.7 1.3C9.25 6.9 7.6 8.8 7.05 10.8c-.35 1.3-.25 2.55.35 3.55 1.55 2.7 5.85 3.2 9.55 1.1 3.7-2.05 5.5-6 3.95-8.75-.9-1.55-2.7-2.35-4.8-2.35m-12.35 8.4c-.15.3-.25.6-.35.95-.45 1.5-.35 2.95.25 4 .6 1.1 1.7 1.85 3.05 2.25 1.8.45 3.8.1 5.45-.95.4-.25.8-.55 1.15-.8-.35.05-.7.05-1 .05-1.35 0-2.65-.3-3.75-.85-1.2-.5-2.3-1.3-3.25-2.4-.6-.7-1.1-1.45-1.55-2.25M20 15.1l-.3.25c-.6.5-1.25 1-2 1.4-.55.3-1.05.55-1.6.75-.8 1-1.85 1.95-3.15 2.75-.3.2-.65.35-1 .5 1.7.6 3.4.65 4.7.1C18.8 20 19.95 17.9 20 15.1M4.8 3.1C6.35 1.65 8.5 1 10.75 1.25c1.5.15 2.95.75 4.2 1.65 3.1-.35 5.95.75 7.3 3.1 1.25 2.25.8 5.1-.85 7.5.55 4.15-.95 7.45-4.15 8.8-.8.35-1.7.5-2.65.5-1.25 0-2.6-.3-3.9-.85-.3-.15-.6-.3-.85-.45-.5.1-1 .15-1.5.15-.65 0-1.35-.1-1.95-.25-1.8-.45-3.2-1.5-4-2.95-.85-1.45-.95-3.3-.4-5.2.25-.85.6-1.6 1.05-2.35C2.2 8 2.75 5 4.8 3.1", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TProductVoice.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24675.0234b7aa.js b/pr-preview/pr-186/assets/js/24675.0234b7aa.js new file mode 100644 index 000000000..9706f8a97 --- /dev/null +++ b/pr-preview/pr-186/assets/js/24675.0234b7aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[24675],{24675:(t,i,s)=>{s.r(i),s.d(i,{scale_icon_navigation_start:()=>l});var e=s(90936);const l=class{constructor(t){(0,e.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M21.85 2.15c-.25-.25-.6-.3-.9-.15L.8 11.05c-.3.15-.5.45-.5.8 0 .35.25.6.55.7L8.95 15l2.45 8.1c.1.3.4.55.7.55h.05c.3 0 .6-.2.75-.45L22 3.05c.15-.3.1-.65-.15-.9z"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M21.85 2.15c-.25-.25-.6-.3-.9-.15L.8 11.05c-.3.15-.5.45-.5.8 0 .35.25.6.55.7L8.95 15l2.45 8.1c.1.3.4.55.7.55h.05c.3 0 .6-.2.75-.45L22 3.05c.15-.3.1-.65-.15-.9zm-9.5 18.7l-2.15-7.1-7.05-2.1 16.75-7.5-7.55 16.7z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2479.59243c87.js b/pr-preview/pr-186/assets/js/2479.59243c87.js new file mode 100644 index 000000000..e8dda89b2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2479.59243c87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2479],{2479:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_service_support:()=>i});var l=s(90936);const i=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M18.349 13.403c.1-.456.156-.925.156-1.403 0-.481-.057-.95-.157-1.402l2.905-.723c.157.69.247 1.4.247 2.125a9.49 9.49 0 01-.25 2.133l-2.901-.73zm-4.948-7.748a6.482 6.482 0 00-1.395-.155h-.002c-.481 0-.948.057-1.4.157l-.728-2.91A9.474 9.474 0 0112 2.5c.725 0 1.435.09 2.125.247l-.724 2.908zm-3.342 1.74c.112-.048.235-.071.351-.11A4.926 4.926 0 0112.003 7 5.014 5.014 0 0117 12c0 2.75-2.25 5-5 5-.057 0-.11-.015-.167-.017a4.962 4.962 0 01-1.774-.377 5.023 5.023 0 01-1.681-1.185 4.969 4.969 0 011.558-7.96c.043-.02.08-.048.123-.066zM12 21.5c-.731 0-1.44-.091-2.124-.248l.728-2.908c.45.1.916.156 1.396.156h.006c.475 0 .942-.055 1.395-.154l.724 2.906A9.49 9.49 0 0112 21.5zM2.5 12c0-.734.092-1.447.25-2.134l2.913.725c-.1.453-.158.923-.158 1.405 0 .483.056.95.156 1.404l-2.913.725A9.476 9.476 0 012.5 12zm17.278-7.778A10.927 10.927 0 0012 1C5.935 1 1 5.935 1 12c0 6.066 4.935 11 11 11s11-4.934 11-11c0-2.938-1.145-5.7-3.222-7.778z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12 1C5.95 1 1 5.95 1 12s4.95 11 11 11 11-4.95 11-11S18.05 1 12 1zm2.4 1.8c3.3.85 5.95 3.5 6.8 6.8l-2.95.5c-.65-2.1-2.3-3.75-4.35-4.35l.5-2.95zm-4.8 0l.5 2.95C8 6.4 6.35 8.05 5.75 10.1L2.8 9.6c.9-3.3 3.5-5.9 6.8-6.8zm0 18.4c-3.3-.85-5.95-3.5-6.8-6.8l2.95-.5c.65 2.1 2.3 3.75 4.35 4.35l-.5 2.95zM7 12c0-2.75 2.25-5 5-5s5 2.25 5 5-2.25 5-5 5-5-2.25-5-5zm7.4 9.2l-.5-2.95c2.1-.65 3.75-2.3 4.35-4.35l2.95.5c-.9 3.3-3.5 5.9-6.8 6.8z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2479.d3be9633.js b/pr-preview/pr-186/assets/js/2479.d3be9633.js new file mode 100644 index 000000000..ed297542f --- /dev/null +++ b/pr-preview/pr-186/assets/js/2479.d3be9633.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2479; +exports.ids = [2479]; +exports.modules = { + +/***/ 2479: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_service_support: () => (/* binding */ ServiceSupport) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ServiceSupport = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.349 13.403c.1-.456.156-.925.156-1.403 0-.481-.057-.95-.157-1.402l2.905-.723c.157.69.247 1.4.247 2.125a9.49 9.49 0 01-.25 2.133l-2.901-.73zm-4.948-7.748a6.482 6.482 0 00-1.395-.155h-.002c-.481 0-.948.057-1.4.157l-.728-2.91A9.474 9.474 0 0112 2.5c.725 0 1.435.09 2.125.247l-.724 2.908zm-3.342 1.74c.112-.048.235-.071.351-.11A4.926 4.926 0 0112.003 7 5.014 5.014 0 0117 12c0 2.75-2.25 5-5 5-.057 0-.11-.015-.167-.017a4.962 4.962 0 01-1.774-.377 5.023 5.023 0 01-1.681-1.185 4.969 4.969 0 011.558-7.96c.043-.02.08-.048.123-.066zM12 21.5c-.731 0-1.44-.091-2.124-.248l.728-2.908c.45.1.916.156 1.396.156h.006c.475 0 .942-.055 1.395-.154l.724 2.906A9.49 9.49 0 0112 21.5zM2.5 12c0-.734.092-1.447.25-2.134l2.913.725c-.1.453-.158.923-.158 1.405 0 .483.056.95.156 1.404l-2.913.725A9.476 9.476 0 012.5 12zm17.278-7.778A10.927 10.927 0 0012 1C5.935 1 1 5.935 1 12c0 6.066 4.935 11 11 11s11-4.934 11-11c0-2.938-1.145-5.7-3.222-7.778z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.95 1 1 5.95 1 12s4.95 11 11 11 11-4.95 11-11S18.05 1 12 1zm2.4 1.8c3.3.85 5.95 3.5 6.8 6.8l-2.95.5c-.65-2.1-2.3-3.75-4.35-4.35l.5-2.95zm-4.8 0l.5 2.95C8 6.4 6.35 8.05 5.75 10.1L2.8 9.6c.9-3.3 3.5-5.9 6.8-6.8zm0 18.4c-3.3-.85-5.95-3.5-6.8-6.8l2.95-.5c.65 2.1 2.3 3.75 4.35 4.35l-.5 2.95zM7 12c0-2.75 2.25-5 5-5s5 2.25 5 5-2.25 5-5 5-5-2.25-5-5zm7.4 9.2l-.5-2.95c2.1-.65 3.75-2.3 4.35-4.35l2.95.5c-.9 3.3-3.5 5.9-6.8 6.8z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ServiceSupport.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24791.d755aab2.js b/pr-preview/pr-186/assets/js/24791.d755aab2.js new file mode 100644 index 000000000..efd0fb9ef --- /dev/null +++ b/pr-preview/pr-186/assets/js/24791.d755aab2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[24791],{24791:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_content_threats:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 .998c5.171 0 9.377 4.205 9.377 9.376a9.297 9.297 0 01-3.141 6.986l-.236.203V20a3.003 3.003 0 01-2.823 2.995L15 23h-.502v-3.014h-1.5V23h-1.997v-3.014h-1.5V23H9a3.003 3.003 0 01-2.994-2.824L6 20v-2.438a9.303 9.303 0 01-3.376-7.189c0-5.17 4.206-9.375 9.377-9.375zM13 15h-2v2.5h2V15zm2.5-5a2 2 0 100 4 2 2 0 000-4zm-7 0a2 2 0 100 4 2 2 0 000-4z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 .998c-5.17 0-9.376 4.205-9.376 9.375A9.303 9.303 0 006 17.563V20c0 1.654 1.346 3 3 3h6c1.654 0 3-1.346 3-3v-2.438a9.304 9.304 0 003.377-7.188c0-5.17-4.206-9.377-9.377-9.377zm4.792 15.61l-.292.226V20c0 .827-.673 1.5-1.5 1.5h-.5V19H13v2.5h-2V19H9.5v2.5H9c-.827 0-1.5-.673-1.5-1.5v-3.166l-.292-.226c-1.96-1.51-3.084-3.783-3.084-6.235 0-4.342 3.533-7.875 7.876-7.875s7.877 3.532 7.877 7.875c0 2.453-1.124 4.725-3.085 6.236zM8.5 10a2 2 0 100 4 2 2 0 000-4zm7 0a2 2 0 100 4 2 2 0 000-4zM11 17.5h2V15h-2v2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/248.b2e2d1ff.js b/pr-preview/pr-186/assets/js/248.b2e2d1ff.js new file mode 100644 index 000000000..b345580db --- /dev/null +++ b/pr-preview/pr-186/assets/js/248.b2e2d1ff.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 248; +exports.ids = [248]; +exports.modules = { + +/***/ 10248: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_call_incoming: () => (/* binding */ CommunicationCallIncoming) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationCallIncoming = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.9 3.5l3.4 5.95-1.7 1.7c-.25.25-.3.7-.05 1l.423.512.34.4.387.438.43.466a23.96 23.96 0 00.954.955l.466.43.438.385.584.494.328.27a.76.76 0 00.92.019l.08-.069 1.6-1.65 5.95 3.35-.043.442-.042.338c-.172 1.231-.63 2.95-2.165 3.92-.8.5-1.7.65-2.5.65a6.477 6.477 0 01-1.458-.183l-.326-.082-.466-.135C11.15 22.3 8.5 20.5 6 18c-2.45-2.5-4.25-5.15-5.1-7.5l-.077-.262-.06-.228L.7 9.744C.487 8.75.337 7.137 1.2 5.75c.962-1.462 2.574-1.947 3.768-2.138l.344-.05.16-.02L5.9 3.5zm15.5-1.95c.3-.3.75-.3 1.05 0 .273.273.298.71.074.976L16.75 8.25l2.2 2.2-6.9 1.45L13.5 5l2.2 2.2 5.7-5.65z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.9 3.5l3.4 5.95-1.7 1.7c-.25.25-.3.7-.05 1l.423.512.34.4.387.438.43.466a23.96 23.96 0 00.954.955l.466.43.438.385.584.494.328.27a.76.76 0 00.92.019l.08-.069 1.6-1.65 5.95 3.35-.043.442-.042.338c-.172 1.231-.63 2.95-2.165 3.92-.8.5-1.7.65-2.5.65a6.477 6.477 0 01-1.458-.183l-.326-.082-.466-.135C11.15 22.3 8.5 20.5 6 18c-2.45-2.5-4.25-5.15-5.1-7.5l-.077-.262-.06-.228L.7 9.744C.487 8.75.337 7.137 1.2 5.75c.962-1.462 2.574-1.947 3.768-2.138l.344-.05.16-.02L5.9 3.5zm-.75 1.6c-1.25.2-2.15.7-2.6 1.45-.522.815-.49 1.822-.364 2.562l.054.281.059.246L2.4 10c.7 2.15 2.4 4.6 4.7 6.9 2.35 2.35 4.8 4.05 6.9 4.75l.238.073.221.057.127.03.28.054c.74.127 1.769.158 2.584-.364.7-.42 1.182-1.232 1.406-2.355l.044-.245-4.05-2.3-.9.9c-.8.8-2.1.85-3 .15l-.324-.25a19.79 19.79 0 01-.178-.142l-.386-.32-.419-.362-.444-.403a25.7 25.7 0 01-.463-.44L8.5 15.5l-.475-.512-.443-.493-.592-.683-.64-.762a2.225 2.225 0 01.035-2.876l.115-.124.95-.9-2.3-4.05zM21.4 1.55c.3-.3.75-.3 1.05 0 .273.273.298.71.074.976L16.75 8.25l2.2 2.2-6.9 1.45L13.5 5l2.2 2.2 5.7-5.65z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationCallIncoming.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24878.b2c24523.js b/pr-preview/pr-186/assets/js/24878.b2c24523.js new file mode 100644 index 000000000..8071296e5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/24878.b2c24523.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[24878],{24878:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_international:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm8.4 9.75h-1.445a15.205 15.205 0 00-1.185-4.97 8.465 8.465 0 012.63 4.97zM10.75 3.9v6.85H7.56a11.67 11.67 0 011.6-5.185A5.16 5.16 0 0110.75 3.9zm0 9.35v6.85a5.16 5.16 0 01-1.59-1.665 11.67 11.67 0 01-1.6-5.185h3.19zm2.5 6.85v-6.85h3.19a11.67 11.67 0 01-1.6 5.185 5.16 5.16 0 01-1.59 1.665zm0-9.35V3.9a5.16 5.16 0 011.59 1.665 11.67 11.67 0 011.6 5.185h-3.19zm-7-4.97a15.205 15.205 0 00-1.185 4.97h-1.46A8.43 8.43 0 016.23 5.78h.02zm-2.645 7.47h1.44a15.205 15.205 0 001.185 4.97 8.43 8.43 0 01-2.625-4.97zm14.165 4.97a15.205 15.205 0 001.185-4.97H20.4a8.465 8.465 0 01-2.63 4.97z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("defs",null,(0,s.h)("path",{d:"M12 1C5.95 1 1 5.9 1 12s4.9 11 11 11 11-4.9 11-11S18.1 1 12 1zm9.45 10.25h-2.5c-.15-3-1.05-5.7-2.4-7.55 2.75 1.5 4.65 4.3 4.9 7.55zM11.25 2.6v8.65H6.5c.25-4.4 2.25-8.05 4.75-8.65zm0 10.15v8.65c-2.5-.6-4.5-4.25-4.75-8.65h4.75zm1.5 8.65v-8.65h4.75c-.25 4.4-2.25 8.05-4.75 8.65zm0-10.15V2.6c2.5.6 4.5 4.25 4.75 8.65h-4.75zM7.45 3.7c-1.35 1.85-2.3 4.55-2.4 7.55h-2.5a9.426 9.426 0 014.9-7.55zm-4.9 9.05h2.5c.15 3 1.05 5.7 2.4 7.55a9.426 9.426 0 01-4.9-7.55zM16.6 20.3c1.35-1.85 2.3-4.55 2.4-7.55h2.5a9.66 9.66 0 01-4.9 7.55z",id:"a"})),(0,s.h)("use",{xlinkHref:"#a","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2497.4aae439f.js b/pr-preview/pr-186/assets/js/2497.4aae439f.js new file mode 100644 index 000000000..5b4373fe3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2497.4aae439f.js @@ -0,0 +1,113 @@ +"use strict"; +exports.id = 2497; +exports.ids = [2497]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 62497: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_menu_flyout_divider: () => (/* binding */ MenuFlyoutDivider) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const menuFlyoutDividerCss = ":host{display:block;--color:var(--telekom-color-ui-faint)}.menu-flyout-divider{border-top:var(--telekom-line-weight-standard) solid var(--color);margin:6px 0}"; + +const MenuFlyoutDivider = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('menu-flyout-divider'); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { role: "separator" }, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), part: "base", "aria-hidden": "true" }))); + } +}; +MenuFlyoutDivider.style = menuFlyoutDividerCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/24b05f1f.20552486.js b/pr-preview/pr-186/assets/js/24b05f1f.20552486.js new file mode 100644 index 000000000..8079d06e9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/24b05f1f.20552486.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[12587],{68961:e=>{e.exports=JSON.parse('{"tag":{"label":"virtualbox","permalink":"/docs-next/pr-preview/pr-186/docs/tags/virtualbox","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file","title":"Creating a Linux Image Using VirtualBox and an ISO File","description":"VirtualBox is free, open-source virtualization software. It was first offered by InnoTek GmbH from Germany and re-branded as Oracle VM VirtualBox when InnoTek was acquired by Oracle Corporation.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2505.0e0fe31a.js b/pr-preview/pr-186/assets/js/2505.0e0fe31a.js new file mode 100644 index 000000000..c4f6102df --- /dev/null +++ b/pr-preview/pr-186/assets/js/2505.0e0fe31a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2505; +exports.ids = [2505]; +exports.modules = { + +/***/ 2505: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_right: () => (/* binding */ NavigationRight) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationRight = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.5 18.756a1.249 1.249 0 01-.775-2.231l5.734-4.523L7.725 7.48a1.249 1.249 0 111.548-1.963l8.224 6.485-8.224 6.485a1.243 1.243 0 01-.773.27", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.982 5.911a.75.75 0 10-.93 1.178L14.273 12l-6.221 4.911a.75.75 0 10.931 1.177L16.694 12 8.982 5.911z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationRight.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2505.63f895f4.js b/pr-preview/pr-186/assets/js/2505.63f895f4.js new file mode 100644 index 000000000..9652323c2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2505.63f895f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2505],{2505:(t,i,e)=>{e.r(i),e.d(i,{scale_icon_navigation_right:()=>l});var s=e(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M8.5 18.756a1.249 1.249 0 01-.775-2.231l5.734-4.523L7.725 7.48a1.249 1.249 0 111.548-1.963l8.224 6.485-8.224 6.485a1.243 1.243 0 01-.773.27","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M8.982 5.911a.75.75 0 10-.93 1.178L14.273 12l-6.221 4.911a.75.75 0 10.931 1.177L16.694 12 8.982 5.911z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/25118.5995097d.js b/pr-preview/pr-186/assets/js/25118.5995097d.js new file mode 100644 index 000000000..cc499e354 --- /dev/null +++ b/pr-preview/pr-186/assets/js/25118.5995097d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[25118],{25118:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_available_keychain:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M12.883 12.822a.749.749 0 00-1.06 0l-3.218 3.217-1.341-1.34a.749.749 0 10-1.06 1.06l2.4 2.401 4.279-4.279a.749.749 0 000-1.06zM8.436 5.995a.96.96 0 101.92-.002.96.96 0 00-1.92.002zm7.667.183V19.89a2.875 2.875 0 01-2.875 2.874H5.562a2.875 2.875 0 01-2.875-2.875V6.18l6.708-4.976 6.708 4.975zm5.848 12.544l-4.38 1.671c.02-.166.031-.333.031-.504V5.423l-.606-.45-4.458-3.306 6.078 1.704 4.698 12.302a2.362 2.362 0 01-1.364 3.048z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M7.264 14.698a.75.75 0 10-1.061 1.061l2.4 2.402 4.28-4.279a.75.75 0 00-1.06-1.06l-3.22 3.216-1.34-1.34zm1.173-8.704a.959.959 0 101.917 0 .959.959 0 00-1.917 0zm6.166 13.896c0 .757-.618 1.374-1.375 1.374H5.562a1.376 1.376 0 01-1.375-1.375V6.933L9.393 3.07l5.208 3.863V19.89zM2.687 6.177V19.89a2.875 2.875 0 002.875 2.875h7.666a2.875 2.875 0 002.875-2.875V6.18l-6.71-4.976-6.707 4.975zm20.627 9.495l-4.7-12.301-6.078-1.704 3.377 2.505 1.57.44 4.428 11.596a.863.863 0 01-.497 1.113l-3.813 1.455v1.113c0 .171-.013.34-.032.505l4.38-1.672a2.36 2.36 0 001.363-3.049z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/25237.c1b15c15.js b/pr-preview/pr-186/assets/js/25237.c1b15c15.js new file mode 100644 index 000000000..231e83f46 --- /dev/null +++ b/pr-preview/pr-186/assets/js/25237.c1b15c15.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[25237],{25237:(e,t,i)=>{i.r(t),i.d(t,{scale_icon_device_fixed_line_services:()=>a});var s=i(90936);const a=class{constructor(e){(0,s.r)(this,e),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const e=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},e,t),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M20 11.5a3 3 0 012.995 2.824L23 14.5V24H1.5v-9.5a3 3 0 012.824-2.995L4.5 11.5V13a1.5 1.5 0 00-1.493 1.356L3 14.5v8h18.5v-8a1.5 1.5 0 00-1.356-1.493L20 13v-1.5zM15.5 0a3 3 0 012.995 2.824L18.5 3v15a3 3 0 01-2.824 2.995L15.5 21H9a3 3 0 01-2.995-2.824L6 18V3A3 3 0 018.824.005L9 0h6.5zm-3.25 15a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm-5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5-2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm-5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5-2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm-5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm5.75-5H9v3.5h6.5V5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M20 11.5a3.01 3.01 0 012.995 2.824L23 14.5V24H1.5v-9.5a3.01 3.01 0 012.824-2.995L4.5 11.5V13c-.8 0-1.423.576-1.493 1.352L3 14.5v8h18.5v-8c0-.8-.576-1.423-1.352-1.493L20 13v-1.5zM15.5 0a3.01 3.01 0 012.995 2.824L18.5 3v15a3.01 3.01 0 01-2.824 2.995L15.5 21H9a3.01 3.01 0 01-2.995-2.824L6 18V3A3.01 3.01 0 018.824.005L9 0h6.5zm0 1.5H9c-.8 0-1.423.576-1.493 1.352L7.5 3v15c0 .8.576 1.423 1.352 1.493L9 19.5h6.5c.8 0 1.423-.576 1.493-1.352L17 18V3c0-.8-.576-1.423-1.352-1.493L15.5 1.5zM14.75 15a.75.75 0 110 1.5.75.75 0 010-1.5zm-5 0a.75.75 0 110 1.5.75.75 0 010-1.5zm2.5 0a.75.75 0 110 1.5.75.75 0 010-1.5zm2.5-2.5a.75.75 0 110 1.5.75.75 0 010-1.5zm-5 0a.75.75 0 110 1.5.75.75 0 010-1.5zm2.5 0a.75.75 0 110 1.5.75.75 0 010-1.5zM9.75 10a.75.75 0 110 1.5.75.75 0 010-1.5zm2.5 0a.75.75 0 110 1.5.75.75 0 010-1.5zm2.5 0a.75.75 0 110 1.5.75.75 0 010-1.5zm.75-5v3.5H9V5h6.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};a.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2527.f145e968.js b/pr-preview/pr-186/assets/js/2527.f145e968.js new file mode 100644 index 000000000..bcd4ad8b7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2527.f145e968.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2527; +exports.ids = [2527]; +exports.modules = { + +/***/ 52527: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_screen_rotate: () => (/* binding */ DeviceScreenRotate) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceScreenRotate = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.153 12.678l.102.007a.76.76 0 01.665.85 11.075 11.075 0 01-4.637 7.505l-.283.19L19.125 23h-5.31l2.13-4.855L17.155 20a9.575 9.575 0 004.255-6.675.75.75 0 01.743-.647zM15.258 1.5a3 3 0 011.977.744l.145.136 4.24 4.24a3 3 0 01.136 4.1l-.136.145L10.865 21.62a3 3 0 01-4.1.136l-.145-.136-4.24-4.24a3 3 0 01-.136-4.1l.136-.145L13.135 2.38a3 3 0 012.123-.88zM8.12 15.85a1.255 1.255 0 00-1.77 0 1.26 1.26 0 000 1.77 1.255 1.255 0 001.668.09l.102-.09.015.015a1.26 1.26 0 00-.015-1.785zm-.87.15a.75.75 0 11-.001 1.5.75.75 0 01.001-1.5zm2.935-15l-2.13 4.88-1.21-1.855a9.575 9.575 0 00-4.255 6.65.745.745 0 01-.64.639l-.1.006-.105-.005a.76.76 0 01-.64-.85A11.075 11.075 0 015.742 2.95l.283-.19L4.875 1h5.31z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.153 12.678l.102.007c.41.06.695.44.645.845-.425 3.046-2.15 5.78-4.65 7.513l-.27.182 1.15 1.76-5.31-.01 2.13-4.86 1.21 1.855c2.285-1.485 3.87-3.92 4.25-6.645a.75.75 0 01.743-.647zM15.255 1.5c.7 0 1.4.244 1.957.724l.163.151L21.62 6.62a3.002 3.002 0 01.135 4.105l-.135.145-10.755 10.755a2.996 2.996 0 01-4.076.152l-.164-.152L2.38 17.38a3.006 3.006 0 01-.135-4.101l.135-.144L13.135 2.38a2.987 2.987 0 012.12-.88zm0 1.5c-.35 0-.68.119-.949.34l-.111.1L3.44 14.195a1.5 1.5 0 00-.103 2.006l.103.114 4.245 4.245c.285.285.66.44 1.06.44.35 0 .68-.119.949-.34l.111-.1L20.56 9.805a1.501 1.501 0 00.103-2.007l-.103-.113-4.245-4.245a1.486 1.486 0 00-1.06-.44zM4.875 1.01l5.305.015-2.13 4.86L6.84 4.03c-2.285 1.485-3.87 3.92-4.25 6.645a.744.744 0 01-.74.645l-.053-.001-.052-.009a.75.75 0 01-.64-.845c.425-3.046 2.15-5.78 4.65-7.513l.27-.182-1.15-1.76z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceScreenRotate.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/253a53e8.6c42b9b8.js b/pr-preview/pr-186/assets/js/253a53e8.6c42b9b8.js new file mode 100644 index 000000000..7fa468855 --- /dev/null +++ b/pr-preview/pr-186/assets/js/253a53e8.6c42b9b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[49787],{77681:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>n,metadata:()=>o,toc:()=>c});var t=i(74848),a=i(28453);const n={id:"cloud-satellite-data-mundi-web-services",title:"Mundi Web Services: New Business from Space",tags:["aerospace","by-industry","esa","geoservices"]},r="Mundi Web Services: New Business from Space",o={id:"blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services",title:"Mundi Web Services: New Business from Space",description:"The European Space Agency's (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.",source:"@site/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services.md",sourceDirName:"blueprints/by-industry/aerospace",slug:"/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services.md",tags:[{inline:!0,label:"aerospace",permalink:"/docs-next/pr-preview/pr-186/docs/tags/aerospace"},{inline:!0,label:"by-industry",permalink:"/docs-next/pr-preview/pr-186/docs/tags/by-industry"},{inline:!0,label:"esa",permalink:"/docs-next/pr-preview/pr-186/docs/tags/esa"},{inline:!0,label:"geoservices",permalink:"/docs-next/pr-preview/pr-186/docs/tags/geoservices"}],version:"current",frontMatter:{id:"cloud-satellite-data-mundi-web-services",title:"Mundi Web Services: New Business from Space",tags:["aerospace","by-industry","esa","geoservices"]},sidebar:"blueprintsSidebar",previous:{title:"Aerospace",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/"},next:{title:"Finance",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/"}},l={},c=[{value:"New Geo-Based Business Models",id:"new-geo-based-business-models",level:2},{value:"Benefits for the Customer",id:"benefits-for-the-customer",level:2},{value:"Dynamic IT is Essential for Geoservices",id:"dynamic-it-is-essential-for-geoservices",level:2},{value:"The Challenge",id:"the-challenge",level:2},{value:"The Aim: Easier Use of Satellite Data",id:"the-aim-easier-use-of-satellite-data",level:2},{value:"The Solution",id:"the-solution",level:2},{value:"About Mundi Web Services",id:"about-mundi-web-services",level:2},{value:"See Also",id:"see-also",level:2}];function d(e){const s={a:"a",admonition:"admonition",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"mundi-web-services-new-business-from-space",children:"Mundi Web Services: New Business from Space"}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.a,{href:"https://www.esa.int/",children:"European Space Agency's"})," (ESA) ",(0,t.jsx)(s.a,{href:"https://www.esa.int/Applications/Observing_the_Earth/Copernicus",children:"Copernicus"})," program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models."]}),"\n",(0,t.jsx)(s.p,{children:"The EU makes its Earth observation data available free of charge with the intention of creating new business models and applications for mainly European users: from students and software providers, to large corporations and the public sector."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"#about-mundi-web-services",children:"Mundi Web Services"})," makes European satellite data accessible for new business models"]}),"\n",(0,t.jsx)(s.h2,{id:"new-geo-based-business-models",children:"New Geo-Based Business Models"}),"\n",(0,t.jsx)(s.p,{children:"This brings with it a wealth of new applications in target markets such as agriculture and forestry, energy, environment, climate, insurance, and disaster control. For example, satellite observations can be used to register the use of agricultural land and, as a result, better allocate EU funds, quickly identify environmentally relevant changes, and take action as well as optimize the use of mineral and energy resources."}),"\n",(0,t.jsx)(s.p,{children:"Mundi Web Services is a platform on which users can directly use preconfigured geoservices. However, it also offers new geoservice providers the option of offering their services on the market. Mundi Web Services' great strength? All necessary components to implement new geo-based business ideas are already integrated. This includes constantly updated data from the Sentinel satellites as well as historical data from the American Landsat program, geoservice applications, and flexible IT resources from the Open Telekom Cloud. As the computing capacities for the evaluations and the data are on the same technical platform, tedious copying processes are no longer necessary. In addition, Mundi allows specific selection of the data that is relevant for the respective analysis."}),"\n",(0,t.jsx)(s.h2,{id:"benefits-for-the-customer",children:"Benefits for the Customer"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Complete toolbox for easy launch of new geo-based services"}),"\n",(0,t.jsx)(s.li,{children:"Simplification of existing processes, e.g. for claims settlement or subsidy allocation"}),"\n",(0,t.jsx)(s.li,{children:"IT capacities as a complete service"}),"\n",(0,t.jsx)(s.li,{children:"Usage-dependent costs for IT resources in temporary projects"}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"dynamic-it-is-essential-for-geoservices",children:"Dynamic IT is Essential for Geoservices"}),"\n",(0,t.jsx)(s.p,{children:"Access to the data has so far been complex, expensive, and tedious. Users always had to download complete data sets comprising several gigabytes or even terabytes from a central repository before they could start their evaluations. New potential geoservice providers with limited IT resources could not benefit from the data. The Copernicus program is also not yet very well known to the business community or the general public."}),"\n",(0,t.jsx)(s.p,{children:"Computing resources are the be-all and end-all for geoservices. To perform further analysis, the original data, usually images at different frequency intervals and on different technical bases (e.g. with optical, thermal or radar sensors), must first be processed - a stage referred to pre-processing. One action in this regard is to normalize images so that they can be compared with one other. In the second stage, the actual processing (which also requires a large amount of computing resources), the data prepared in this way is processed using mathematical models. This creates business-relevant results that can help decision-makers. So far, such statements have been made under the auspices of projects that were set up specifically for the respective application."}),"\n",(0,t.jsx)(s.p,{children:'Mundi Web Services makes using earth observation data for business purposes more professional. Geoservices "made in Europe" receive a basis on which they can develop new business models and offer them as web services on the international market. End users are given the opportunity to deploy geoservices as needed. Mundi has the right infrastructure foundation in the form of the Open Telekom Cloud. The resources from the cloud are optimal for temporary high-load calculations and adapt to the desired requirements of users. If a user wants faster results, they can speed up the evaluation with additional capacities. Depending on the speed, customers only pay for the resources that are actually used.'}),"\n",(0,t.jsx)(s.h2,{id:"the-challenge",children:"The Challenge"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Provision of a platform for the use of geo-based services"}),"\n",(0,t.jsx)(s.li,{children:"Integration of services, data, and usage-dependent computing/storage capacities for efficient use of satellite data"}),"\n",(0,t.jsx)(s.li,{children:'Support of new geo-based business models "made in Europe"'}),"\n",(0,t.jsx)(s.li,{children:"Optimization of existing processes (e.g. in administrative units)"}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"the-aim-easier-use-of-satellite-data",children:"The Aim: Easier Use of Satellite Data"}),"\n",(0,t.jsx)(s.p,{children:"Mundi Web Services is the answer to these challenges. It simplifies the access and use of satellite data. Mundi Web Services is a consortium led by Atos. T-Systems is another established ICT player on-board; it adds its Open Telekom Cloud and its experience with modern ICT service models into the mix. Experienced providers from the geoservice segment, such as the Italian e-geos, the Austrian EOX, the French Thales Aliena Space, the German GAF, and the German Aerospace Center (DLR), contribute technical expertise and applications."}),"\n",(0,t.jsx)(s.h2,{id:"the-solution",children:"The Solution"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:"Mundi Web Services as an integrated platform"}),"\n",(0,t.jsx)(s.li,{children:"Data and computing capacity over the same infrastructure"}),"\n",(0,t.jsx)(s.li,{children:"Open Telekom Cloud as a source for scalable IT resources"}),"\n",(0,t.jsx)(s.li,{children:"Marketplace for geoservices"}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"about-mundi-web-services",children:"About Mundi Web Services"}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"https://mundiwebservices.com/",children:"Mundi Web Services"})," is a consortium led by Atos.\xa0The consortium works on behalf of the European Union and the European Space Agency ESA.\xa0The consortium partners are T-Systems, Thales Alenia Space, DLR, e-geos, EOX, GAF AG, Sinergise, and Spacemetric."]}),"\n",(0,t.jsx)(s.h2,{id:"see-also",children:"See Also"}),"\n",(0,t.jsx)(s.admonition,{title:"Additional Information",type:"info",children:(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["Read the whole success story ",(0,t.jsx)(s.a,{href:"https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/cloud-satellite-data-mundi-web-services",children:"here"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.a,{href:"https://www.t-systems.com/resource/blob/13730/46910b6a621ed206cec05cf6a04c0011/DL-Flyer-C-Dias-Plattform-ESA-Mundi-t-systems-en-09-2019.pdf",children:"Download"})," our reference flyer."]}),"\n"]})})]})}function u(e={}){const{wrapper:s}={...(0,a.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},28453:(e,s,i)=>{i.d(s,{R:()=>r,x:()=>o});var t=i(96540);const a={},n=t.createContext(a);function r(e){const s=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/25442.6b4d6fe0.js b/pr-preview/pr-186/assets/js/25442.6b4d6fe0.js new file mode 100644 index 000000000..fee07c097 --- /dev/null +++ b/pr-preview/pr-186/assets/js/25442.6b4d6fe0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[25442],{25442:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_action_shopping_cart:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M5.5 20a2 2 0 110 4 2 2 0 010-4zm15 0a2 2 0 110 4 2 2 0 010-4zM.06.455A.755.755 0 01.949.027l.096.033 2.27.975a2.984 2.984 0 011.42 1.275l.1.19h18.24l-.895 9.41a2.986 2.986 0 01-2.612 2.693l-.183.017-13.145.85.065.67c.07.727.637 1.286 1.35 1.353l.145.007h13.45a.749.749 0 01.102 1.493L21.25 19H7.8a2.98 2.98 0 01-2.964-2.538l-.021-.177L3.63 3.655a1.51 1.51 0 00-.771-1.175l-.134-.065-2.27-.975A.75.75 0 01.06.455z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M5.5 20a2 2 0 110 4 2 2 0 010-4zm15 0a2 2 0 110 4 2 2 0 010-4zM.06.455A.755.755 0 01.949.027l.096.033 2.27.975a2.984 2.984 0 011.42 1.275l.1.19h18.24l-.895 9.41a2.986 2.986 0 01-2.612 2.693l-.183.017-13.145.85.065.67c.07.727.637 1.286 1.35 1.353l.145.007h13.45a.749.749 0 01.102 1.493L21.25 19H7.8a2.98 2.98 0 01-2.964-2.538l-.021-.177L3.63 3.655a1.51 1.51 0 00-.771-1.175l-.134-.065-2.27-.975A.75.75 0 01.06.455zM21.43 4H5.17l.935 9.975 13.185-.85a1.495 1.495 0 001.376-1.22l.019-.135L21.43 4z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2558.dd5592cb.js b/pr-preview/pr-186/assets/js/2558.dd5592cb.js new file mode 100644 index 000000000..c190e2374 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2558.dd5592cb.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2558; +exports.ids = [2558]; +exports.modules = { + +/***/ 92558: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_forward: () => (/* binding */ ActionForward) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionForward = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20.25 7.752l-6.75-4.4v2.861h-2.264c-4.687 0-8.5 3.813-8.5 8.5V19a1.5 1.5 0 103 0v-4.287c0-3.032 2.468-5.5 5.5-5.5H13.5v2.938l6.75-4.399z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13.5 12.151l6.75-4.399-6.75-4.4V7h-2.25C6.979 7 3.5 10.476 3.5 14.75v4.987a.75.75 0 101.5 0V14.75a6.257 6.257 0 016.25-6.25h2.25v3.651z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionForward.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/25857.bcbe022e.js b/pr-preview/pr-186/assets/js/25857.bcbe022e.js new file mode 100644 index 000000000..5d98a7109 --- /dev/null +++ b/pr-preview/pr-186/assets/js/25857.bcbe022e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[25857],{25857:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_message_incoming:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M19.499 3v5.867l-6.153 3.879a1.199 1.199 0 00-.108 1.929l.108.079L17.54 17.5h-6.92l-3.273 3.274c-.339.34-.756.491-1.166.491-.811 0-1.591-.597-1.671-1.514l-.007-.155V17.5H3.361a2.856 2.856 0 01-2.852-2.69l-.005-.167V3H19.5zm.002 7.15V13h3.75a.75.75 0 01.1 1.493l-.1.007H19.5v2.85l-5.498-3.6 5.498-3.6z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M19.5 3v5.357l-1.5.982V4.5H2v10.143c0 .704.54 1.285 1.227 1.35l.13.007H6v3.596c0 .134.165.237.285.117L9.998 16h4.7l2.264 1.481-.158.014-.161.005h-6.024l-3.274 3.274a1.63 1.63 0 01-1.167.491c-.81 0-1.591-.597-1.671-1.514l-.007-.155V17.5H3.357a2.857 2.857 0 01-2.852-2.69L.5 14.644V3h19zm0 7.15V13h3.75a.75.75 0 01.102 1.493l-.102.007H19.5v2.85l-5.5-3.6 5.5-3.6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/26165.4cc30677.js b/pr-preview/pr-186/assets/js/26165.4cc30677.js new file mode 100644 index 000000000..963d4bc06 --- /dev/null +++ b/pr-preview/pr-186/assets/js/26165.4cc30677.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[26165],{26165:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_music:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M7.5 4.89v12.06a4.205 4.205 0 00-1.885-.695c-1.89-.22-3.44.88-3.465 2.455-.025 1.575 1.5 3.03 3.385 3.25C7.42 22.18 9 21.075 9 19.5V8.11l10.5-2.19v8.53a4.205 4.205 0 00-1.885-.695c-1.89-.22-3.44.88-3.465 2.455-.025 1.575 1.5 3.03 3.385 3.25C19.42 19.68 21 18.575 21 17V2.08L7.5 4.89z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M7.5 4.89v12.06a4.205 4.205 0 00-1.885-.695c-1.89-.215-3.44.885-3.465 2.46-.02 1.575 1.495 3.03 3.385 3.245C7.43 22.175 9 21.075 9 19.5V8.11l10.5-2.19v8.53a4.205 4.205 0 00-1.885-.695c-1.89-.215-3.44.885-3.465 2.46-.02 1.575 1.495 3.03 3.385 3.245C19.43 19.675 21 18.575 21 17V2.08L7.5 4.89z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/26225.ac27b97d.js b/pr-preview/pr-186/assets/js/26225.ac27b97d.js new file mode 100644 index 000000000..f22c8bfcf --- /dev/null +++ b/pr-preview/pr-186/assets/js/26225.ac27b97d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[26225],{26225:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_filter:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12.25 16.5a2.75 2.75 0 110 5.5 2.75 2.75 0 010-5.5zM8.19 18a4.205 4.205 0 00-.068 2.254l.068.246H2V18h6.19zM22 18v2.5h-5.685a4.295 4.295 0 00.066-2.255L16.315 18H22zM4.75 9.5a2.75 2.75 0 110 5.5 2.75 2.75 0 010-5.5zM22 11v2.5H8.815a4.295 4.295 0 00.066-2.255L8.815 11H22zm-7.25-8.5a2.75 2.75 0 110 5.5 2.75 2.75 0 010-5.5zM10.69 4a4.135 4.135 0 00-.19 1.25c0 .34.04.677.121 1.005l.069.245H2V4h8.69zM22 4v2.5h-3.185c.22-.725.244-1.492.073-2.226L18.815 4H22z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12.25 16.5a2.75 2.75 0 110 5.5 2.75 2.75 0 010-5.5zm-4.18 2a4.144 4.144 0 00-.038 1.253L8.07 20H2v-1.5h6.07zm13.93 0V20h-5.57a4.144 4.144 0 00.038-1.253l-.038-.247H22zm-17.25-9a2.75 2.75 0 110 5.5 2.75 2.75 0 010-5.5zm17.25 2V13H8.93a4.144 4.144 0 00.038-1.253L8.93 11.5H22zm-7.25-9a2.75 2.75 0 110 5.5 2.75 2.75 0 010-5.5zm-4.18 2a4.144 4.144 0 00-.038 1.253L10.57 6H2V4.5h8.57zM22 4.5V6h-3.07a4.144 4.144 0 00.038-1.253L18.93 4.5H22z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/26436.0beb663c.js b/pr-preview/pr-186/assets/js/26436.0beb663c.js new file mode 100644 index 000000000..f7f47cf02 --- /dev/null +++ b/pr-preview/pr-186/assets/js/26436.0beb663c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[26436],{26436:(t,h,e)=>{e.r(h),e.d(h,{scale_icon_content_2fa_google_auth:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},h=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,h),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("g",{"fill-rule":"evenodd"},(0,i.h)("path",{d:"M9.501 10h1V9h-1v1zm-.5.5h2v-2h-2v2z"}),(0,i.h)("path",{d:"M16 9v1.5h-1.5V12H13v-1.5h1.5V9H13V7.5h3V9zm0 5v1.5h-3V14h1.5v-1.5H16V14zm-3.998 7a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zM8 15.5V14h1.5v-1.5h3V14H11v1.5H8zm0-4h4v-4H8v4zm2-8h4V2h-4v1.5zm6-3H8a3 3 0 00-3 3v17a3 3 0 003 3h8a3 3 0 003-3v-17a3 3 0 00-3-3z"}))):(0,i.h)("g",null,(0,i.h)("path",{d:"M9.001 10.5h2v-2h-2v2zm-1 1h4v-4h-4v4zm3 2.5h1.5v-1.5h-3V14h-1.5v1.5h3V14zm3.5 0h-1.5v1.5h3v-3h-1.5V14zm-1.5-2h1.5v-1.5h-1.5V12zm0-4.5V9h1.5v1.5h1.5v-3h-3zm-3.5 2.5h1V9h-1v1zm2.5 8.5a1.25 1.25 0 10-.002 2.498 1.25 1.25 0 00.002-2.498zm5.5 2c0 .827-.674 1.5-1.5 1.5h-8c-.827 0-1.5-.673-1.5-1.5v-17c0-.827.673-1.5 1.5-1.5h2v1.5h4V2h2c.826 0 1.5.673 1.5 1.5v17zm-1.5-20h-8a3 3 0 00-3 3v17a3 3 0 003 3h8a3 3 0 003-3v-17a3 3 0 00-3-3z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/26438.5c108c83.js b/pr-preview/pr-186/assets/js/26438.5c108c83.js new file mode 100644 index 000000000..0da690ea5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/26438.5c108c83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[26438],{26438:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_weather_heavy_sleet:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M14.747 18.404a.174.174 0 01.289.103v.052l-.588 3.748a1.502 1.502 0 01-1.716 1.252c-1.199-.188-1.675-1.632-.876-2.498l.094-.093 2.797-2.564zM9.85 14.218l1.3.75-.886 1.532H12V18h-1.667l.816 1.413-1.299.75L9 18.69l-.85 1.473-1.3-.75L7.666 18H6v-1.5h1.735l-.885-1.532 1.3-.75L9 15.69l.85-1.472zm7.744-2.508a.15.15 0 01.249.083v.05l-.653 4.166a1.626 1.626 0 01-1.858 1.356c-1.3-.203-1.817-1.771-.946-2.708l.098-.098 3.11-2.85zM13.51.547a7.596 7.596 0 017.15 5.02 5.805 5.805 0 013.088 5.127c0 3.05-2.357 5.55-5.332 5.767l.031-.124.027-.127.652-4.167a1.45 1.45 0 00-2.29-1.391l-.12.098-3.11 2.85a2.9 2.9 0 00-.574.726l-.104.202L9.5 12.54a1 1 0 00-.88-.06l-.12.058-3.297 1.893a1.001 1.001 0 00-.495.75l-.007.117v1.116a5.275 5.275 0 01-4.45-5.216A5.299 5.299 0 012.915 6.6c.14-2.49 2.197-4.471 4.705-4.471.369 0 .737.045 1.1.133A7.558 7.558 0 0113.51.547z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M14.748 18.404a.173.173 0 01.288.103l-.001.051-.587 3.749a1.502 1.502 0 01-1.716 1.252c-1.199-.188-1.676-1.632-.876-2.498l.094-.093 2.798-2.564zM9.85 14.217l1.298.75-.884 1.533H12V18h-1.666l.816 1.413-1.3.75L9 18.69l-.85 1.473-1.3-.75L7.668 18H6v-1.5h1.736l-.885-1.533 1.298-.75L9 15.69l.85-1.473zm7.743-2.508a.15.15 0 01.248.084v.05l-.651 4.166a1.626 1.626 0 01-1.859 1.357c-1.3-.204-1.817-1.772-.946-2.71l.099-.097 3.109-2.85zM13.511.566a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.127c0 2.982-2.252 5.443-5.134 5.754l.03-.11.026-.114.21-1.335a4.285 4.285 0 003.368-4.195A4.3 4.3 0 0019.937 6.9l-.196-.096-.303-.138-.101-.317c-.816-2.562-3.157-4.284-5.825-4.284-1.42 0-2.79.501-3.887 1.415l-.216.188-.329.302-.421-.146a3.178 3.178 0 00-1.037-.176A3.206 3.206 0 004.918 5.14c-.465.728-.52 1.42-.506 1.912l.03.498-.466.209a3.791 3.791 0 00-2.226 3.456A3.784 3.784 0 004.312 14.8l.188.058V16.4a5.282 5.282 0 01-4.25-5.185 5.299 5.299 0 012.667-4.598c.14-2.49 2.197-4.472 4.705-4.472.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2650.79c6deb6.js b/pr-preview/pr-186/assets/js/2650.79c6deb6.js new file mode 100644 index 000000000..bc1c4d35f --- /dev/null +++ b/pr-preview/pr-186/assets/js/2650.79c6deb6.js @@ -0,0 +1,219 @@ +"use strict"; +exports.id = 2650; +exports.ids = [2650]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 72650: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_sidebar_nav_item: () => (/* binding */ SidebarNavItem) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const sidebarNavItemCss = ":host{--border-bottom-color:var(--telekom-color-ui-faint);--border-left-color-third-nesting:var(--telekom-color-ui-strong);--color-active:var(--telekom-color-text-and-icon-primary-pressed);--color-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-primary:var(--telekom-color-text-and-icon-primary-standard);--background-color-before-active:var(--color-primary);--font-bold:var(--telekom-text-style-ui-bold);--box-shadow-focus:inset 0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard)}.sidebar-nav-item{border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:var(--border-bottom-color)}.sidebar-nav-item--active{position:relative;color:var(--color-primary)}.sidebar-nav-item--active::before{content:'';display:block;position:absolute;top:0;left:var(--left-current-border, 0);width:0;height:100%;background-color:var(--background-color-before-active);border-left:2px solid transparent}.sidebar-nav-item:hover.sidebar-nav-item--active::before{background-color:var(--color-hover)}.sidebar-nav-item:active.sidebar-nav-item--active::before{background-color:var(--color-active)}.sidebar-nav-item--condensed.sidebar-nav-item--active::before{left:-1px}:host([nesting-level='1']) .sidebar-nav-item,.sidebar-nav-item--bold{font:var(--font-bold)}:host([nesting-level='3']) .sidebar-nav-item{border-left-color:var(--border-left-color-third-nesting);border-left-style:solid;border-left-width:0.0625rem}::slotted(a){color:currentColor;display:flex;align-items:center;padding-top:1rem;padding-right:1rem;padding-bottom:1rem;padding-left:var(--spacing-indent);border-radius:var(--telekom-radius-small);text-decoration:none;outline:none;min-height:20px}:host([nesting-level='2']) ::slotted(a){padding-left:calc(var(--spacing-indent) + 0.75rem)}::slotted(a:hover){color:var(--color-hover)}::slotted(a:focus){box-shadow:var(--box-shadow-focus)}::slotted(a:active){color:var(--color-active)}.sidebar-nav-item--condensed{border-bottom-width:0}.sidebar-nav-item--condensed ::slotted(a){padding-top:0.5rem;padding-left:0.75rem;padding-right:0.5rem;padding-bottom:0.5rem}"; + +const SR_ACTIVE_TEXT = ' Zurzeit aktiv'; +const isActive = (current) => { + try { + return !!JSON.parse(current); + } + catch (e) { + if (typeof current === 'string') { + return true; + } + return !!current; + } +}; +const getScreenReaderText = (current) => { + let text; + try { + text = JSON.parse(current); + } + catch (e) { + text = current; + } + return typeof text === 'string' && text.length > 0 + ? ` ${text}` + : SR_ACTIVE_TEXT; +}; +const SidebarNavItem = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** Used normally for third level items, remove the bottom border */ + this.condensed = false; + /** Bold text */ + this.bold = false; + /** Text gets the active color */ + this.active = false; + /** + * Mark the child link as "current" with `aria-current=page`. + * Provide the text hint if needed, default is: "Zurzeit aktiv" + */ + this.current = null; + } + nestingLevelChanged(newValue) { + if (newValue === 1) { + this.bold = true; + } + } + currentChanged(newValue) { + this.handleAriaCurrentInSlottedA(newValue); + this.syncActiveToCurrent(newValue); + } + componentDidLoad() { + this.handleAriaCurrentInSlottedA(this.current); + if (this.current) { + this.syncActiveToCurrent(this.current); + } + } + /** + * If an item is `current`, it should be `active` as well + */ + syncActiveToCurrent(newValue) { + this.active = isActive(newValue); + } + /** + * When `current` is set, this will: + * - set the aria-current=page attribute on the link + * - append a text-only hint for screen readers + * so we end up with something like this: + * + * Example Active link + * + * @param current this.current + */ + handleAriaCurrentInSlottedA(current) { + const a = this.el.querySelector('a'); + if (this.srOnlyElement != null) { + a.removeChild(this.srOnlyElement); + this.srOnlyElement = null; + } + if (a != null) { + a.removeAttribute('aria-current'); + } + if (isActive(current) && a != null) { + this.srOnlyElement = this.createScreenReaderOnlySpan(); + a.appendChild(this.srOnlyElement); + a.setAttribute('aria-current', 'page'); + } + } + createScreenReaderOnlySpan() { + const text = getScreenReaderText(this.current); + const span = document.createElement('span'); + // .sr-only but inline + Object.assign(span.style, { + position: 'absolute', + left: '-10000px', + overflow: 'hidden', + }); + span.textContent = text; + return span; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("li", { part: this.getBasePartMap(), class: this.getCssClassMap(), role: "listitem" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const component = 'sidebar-nav-item'; + const prefix = mode === 'basePart' ? '' : `${component}--`; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)(component, this.bold && `${prefix}bold`, this.condensed && `${prefix}condensed`, this.active && `${prefix}active`); + } + get el() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "nestingLevel": ["nestingLevelChanged"], + "current": ["currentChanged"] + }; } +}; +SidebarNavItem.style = sidebarNavItemCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2672.31ef80a6.js b/pr-preview/pr-186/assets/js/2672.31ef80a6.js new file mode 100644 index 000000000..6cafa66a5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2672.31ef80a6.js @@ -0,0 +1,115 @@ +"use strict"; +exports.id = 2672; +exports.ids = [2672]; +exports.modules = { + +/***/ 72672: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_callout: () => (/* binding */ Callout) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94200); + + + +const calloutCss = ":host{--position:absolute;--background:var(--telekom-color-ui-extra-strong);--color:var(--telekom-color-text-and-icon-inverted-standard);--spacing:var(--telekom-spacing-composition-space-10);--min-width:6rem;--aspect-ratio:1 / 1;--rotation:0deg;--font-small:var(--telekom-text-style-body-bold);--font-medium:var(--telekom-text-style-body-bold);--font-large:var(--telekom-text-style-heading-1);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;text-align:center;border-radius:50%;position:var(--position);background:var(--background);color:var(--color);min-width:var(--min-width);aspect-ratio:var(--aspect-ratio);min-height:var(--min-width);transform:rotateZ(var(--rotation, 0deg))}[part='base']{box-sizing:border-box;padding:var(--spacing);font:var(--font-medium)}@media screen and (forced-colors: active), (-ms-high-contrast: active){[part='base']{border:1px solid}}:host([variant='primary']){--background:var(--telekom-color-primary-standard);--color:var(--telekom-color-text-and-icon-white-standard)}:host([variant='black']){--background:var(--telekom-color-ui-black, #000000);--color:var(--telekom-color-text-and-icon-white-standard)}:host([variant='white']){--background:var(--telekom-color-ui-white, #ffffff);--color:var(--telekom-color-text-and-icon-black-standard)}:host([variant='blue']){--background:var(--telekom-color-additional-cyan-100);--color:var(--telekom-color-text-and-icon-black-standard)}::slotted(*){display:block}::slotted(.scl-callout-text-small){font:var(--font-small)}::slotted(.scl-callout-text-large){font:var(--font-large)}"; + +/** + * Adds the `px` suffix to a string number + * but leaves other units untouched. + * 1 -> 1px + * 5% -> 5% + */ +const numToPx = (val) => (Number.isNaN(Number(val)) ? val : val + 'px'); +const Callout = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Degree of rotation */ + this.rotation = 0; + } + connectedCallback() { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ source: this.hostElement, tag: 'beta' }); + this.syncPropsToCSS(); + } + rotationChanged() { + this.syncPropsToCSS(); + } + syncPropsToCSS() { + this.hostElement.style.setProperty('--rotation', `${this.rotation}deg`); + if (this.top != null || + this.right != null || + this.bottom != null || + this.left != null) { + Object.assign(this.hostElement.style, { + top: numToPx(this.top), + right: numToPx(this.right), + bottom: numToPx(this.bottom), + left: numToPx(this.left), + }); + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "base" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "rotation": ["rotationChanged"], + "top": ["rotationChanged"], + "right": ["rotationChanged"], + "bottom": ["rotationChanged"], + "left": ["rotationChanged"] + }; } +}; +Callout.style = calloutCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2673.9e19c4ee.js b/pr-preview/pr-186/assets/js/2673.9e19c4ee.js new file mode 100644 index 000000000..c4a0f6b10 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2673.9e19c4ee.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2673; +exports.ids = [2673]; +exports.modules = { + +/***/ 12673: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_html_file: () => (/* binding */ UserFileHtmlFile) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileHtmlFile = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.652 12.077h-2.057V8.403h.743v2.987h1.314v.687zm-2.805 0h-.742v-2.073h-.034l-.901 1.617h-.237l-.897-1.617h-.032v2.073h-.743V8.403h.682l1.095 2.035h.032l1.09-2.035h.687v3.674zm-4.07-2.986h-.941v2.986h-.743V9.091h-.94v-.688h2.624v.688zM8.67 12.077h-.743v-1.523H6.612v1.523H5.87V8.403h.742v1.463h1.315V8.403h.743v3.674zM3.004 1v19a3 3 0 003 3h8.5v-4a2.5 2.5 0 012.5-2.5h4V1h-18zm12.5 18v4l5.5-5.5h-4a1.5 1.5 0 00-1.5 1.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.652 11.39h-1.314V8.404h-.743v3.673h2.057v-.687zm-5.648-1.386h.032l.897 1.617h.237l.9-1.617h.035v2.073h.742V8.404h-.687l-1.09 2.035h-.032l-1.095-2.035h-.682v3.673h.743v-2.073zm-2.911 2.073h.743V9.09h.94v-.687H9.154v.687h.94v2.986zm-3.481-1.523h1.315v1.523h.743V8.404h-.743v1.463H6.612V8.404H5.87v3.673h.742v-1.523zM19.504 17h-3a1.5 1.5 0 00-1.5 1.5v3h-9a1.5 1.5 0 01-1.5-1.5V2.5h15V17zM3.004 1v19a3 3 0 003 3h10l5-5V1h-18z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileHtmlFile.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/26971.a18484c2.js b/pr-preview/pr-186/assets/js/26971.a18484c2.js new file mode 100644 index 000000000..095fab849 --- /dev/null +++ b/pr-preview/pr-186/assets/js/26971.a18484c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[26971],{26971:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_reply_forward:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M4.72 7.506H15V10.5l6.87-4.25L15 2v3.006H4.72a1.25 1.25 0 000 2.5m7.114 4.995H10.5V9.5l-6.87 4.25L10.5 18v-3h1.334a6.167 6.167 0 016.159 6.16 1.25 1.25 0 102.5 0c0-4.774-3.885-8.66-8.66-8.66","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M4.238 7H15v3.5l6.871-4.25L15.001 2v3.5H4.237a.75.75 0 100 1.5m8.14 6H10.5V9.5l-6.87 4.25L10.5 18v-3.5h1.878a6.666 6.666 0 016.66 6.659.75.75 0 101.5 0c0-4.499-3.66-8.159-8.16-8.159","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2716.35cadfb4.js b/pr-preview/pr-186/assets/js/2716.35cadfb4.js new file mode 100644 index 000000000..341e80cf4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2716.35cadfb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2716],{2716:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_minus_circle:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm5 11.75H7a.75.75 0 110-1.5h10a.75.75 0 110 1.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.239 0-9.5 4.261-9.5 9.5 0 5.238 4.261 9.5 9.5 9.5 5.238 0 9.5-4.262 9.5-9.5 0-5.239-4.262-9.5-9.5-9.5zm5 8.75a.75.75 0 01.102 1.493L17 12.75H7a.75.75 0 01-.102-1.493L7 11.25h10z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2716.4cf695a4.js b/pr-preview/pr-186/assets/js/2716.4cf695a4.js new file mode 100644 index 000000000..9dbf07541 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2716.4cf695a4.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2716; +exports.ids = [2716]; +exports.modules = { + +/***/ 2716: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_minus_circle: () => (/* binding */ ActionMinusCircle) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionMinusCircle = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm5 11.75H7a.75.75 0 110-1.5h10a.75.75 0 110 1.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.239 0-9.5 4.261-9.5 9.5 0 5.238 4.261 9.5 9.5 9.5 5.238 0 9.5-4.262 9.5-9.5 0-5.239-4.262-9.5-9.5-9.5zm5 8.75a.75.75 0 01.102 1.493L17 12.75H7a.75.75 0 01-.102-1.493L7 11.25h10z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionMinusCircle.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2720.d8498f95.js b/pr-preview/pr-186/assets/js/2720.d8498f95.js new file mode 100644 index 000000000..29f898ecc --- /dev/null +++ b/pr-preview/pr-186/assets/js/2720.d8498f95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2720],{2720:(h,t,e)=>{e.r(t),e.d(t,{scale_icon_content_iban:()=>i});var l=e(90936);const i=class{constructor(h){(0,l.r)(this,h),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const h=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},h,t),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M20.5 3.5h-17a3 3 0 00-3 3V8h23V6.5a3 3 0 00-3-3zm-15.996 14h1.011v-5h-1.01v5zm2.124 0h1.863c1.086 0 1.543-.622 1.543-1.385 0-.524-.24-.921-.659-1.115v-.03c.382-.224.613-.629.613-1.144 0-.719-.433-1.326-1.459-1.326h-1.9v5zm3.818 0h1.026l.321-.966h1.721l.33.966h1.026l-1.707-5h-1.01l-1.707 5zm5.075 0h1.01v-3.129h.047l1.796 3.129h1.017v-5H18.39v3.144h-.047L16.548 12.5h-1.026v5zM.502 11h23v6.5a3 3 0 01-3 3h-17a3 3 0 01-3-3V11zm8.486 5.003c0-.36-.219-.592-.616-.592h-.733v1.197h.733c.397 0 .615-.224.615-.605zm3.69-1.961h-.046l-.523 1.549h1.093l-.524-1.549zm-4.283.509h-.756v-1.16h.756c.33 0 .547.224.547.576 0 .344-.209.584-.547.584z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M16.532 14.371h.045l1.797 3.128h1.017v-5h-1.003v3.144h-.045L16.547 12.5h-1.025v5h1.01v-3.128zm-3.9-.33h.045l.524 1.55h-1.093l.524-1.55zm-.839 2.493h1.722l.329.966h1.026l-1.706-5h-1.011l-1.706 5h1.026l.32-.965zm-4.154.075V15.41h.733c.396 0 .614.232.614.591 0 .381-.218.606-.614.606h-.733zm0-3.218h.756c.329 0 .547.223.547.575 0 .345-.21.585-.547.585h-.756v-1.16zm2.395 2.724c0-.525-.24-.92-.658-1.116v-.029c.381-.225.613-.629.613-1.145 0-.719-.434-1.325-1.46-1.325H6.628v5h1.864c1.085 0 1.542-.622 1.542-1.385zM4.506 17.5h1.01v-5h-1.01v5zM22.001 8h-20V6.5c0-.827.672-1.5 1.5-1.5h17c.827 0 1.5.673 1.5 1.5V8zm0 9.5c0 .827-.673 1.5-1.5 1.5h-17c-.828 0-1.5-.673-1.5-1.5V11h20v6.5zm-1.5-14h-17a3 3 0 00-3 3v11a3 3 0 003 3h17a3 3 0 003-3v-11a3 3 0 00-3-3z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2720.f02bd0b4.js b/pr-preview/pr-186/assets/js/2720.f02bd0b4.js new file mode 100644 index 000000000..10537ecf8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2720.f02bd0b4.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2720; +exports.ids = [2720]; +exports.modules = { + +/***/ 2720: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_iban: () => (/* binding */ ContentIban) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentIban = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20.5 3.5h-17a3 3 0 00-3 3V8h23V6.5a3 3 0 00-3-3zm-15.996 14h1.011v-5h-1.01v5zm2.124 0h1.863c1.086 0 1.543-.622 1.543-1.385 0-.524-.24-.921-.659-1.115v-.03c.382-.224.613-.629.613-1.144 0-.719-.433-1.326-1.459-1.326h-1.9v5zm3.818 0h1.026l.321-.966h1.721l.33.966h1.026l-1.707-5h-1.01l-1.707 5zm5.075 0h1.01v-3.129h.047l1.796 3.129h1.017v-5H18.39v3.144h-.047L16.548 12.5h-1.026v5zM.502 11h23v6.5a3 3 0 01-3 3h-17a3 3 0 01-3-3V11zm8.486 5.003c0-.36-.219-.592-.616-.592h-.733v1.197h.733c.397 0 .615-.224.615-.605zm3.69-1.961h-.046l-.523 1.549h1.093l-.524-1.549zm-4.283.509h-.756v-1.16h.756c.33 0 .547.224.547.576 0 .344-.209.584-.547.584z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.532 14.371h.045l1.797 3.128h1.017v-5h-1.003v3.144h-.045L16.547 12.5h-1.025v5h1.01v-3.128zm-3.9-.33h.045l.524 1.55h-1.093l.524-1.55zm-.839 2.493h1.722l.329.966h1.026l-1.706-5h-1.011l-1.706 5h1.026l.32-.965zm-4.154.075V15.41h.733c.396 0 .614.232.614.591 0 .381-.218.606-.614.606h-.733zm0-3.218h.756c.329 0 .547.223.547.575 0 .345-.21.585-.547.585h-.756v-1.16zm2.395 2.724c0-.525-.24-.92-.658-1.116v-.029c.381-.225.613-.629.613-1.145 0-.719-.434-1.325-1.46-1.325H6.628v5h1.864c1.085 0 1.542-.622 1.542-1.385zM4.506 17.5h1.01v-5h-1.01v5zM22.001 8h-20V6.5c0-.827.672-1.5 1.5-1.5h17c.827 0 1.5.673 1.5 1.5V8zm0 9.5c0 .827-.673 1.5-1.5 1.5h-17c-.828 0-1.5-.673-1.5-1.5V11h20v6.5zm-1.5-14h-17a3 3 0 00-3 3v11a3 3 0 003 3h17a3 3 0 003-3v-11a3 3 0 00-3-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentIban.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/27339509.0e2c11f1.js b/pr-preview/pr-186/assets/js/27339509.0e2c11f1.js new file mode 100644 index 000000000..6e97bc311 --- /dev/null +++ b/pr-preview/pr-186/assets/js/27339509.0e2c11f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2659],{80480:e=>{e.exports=JSON.parse('{"tag":{"label":"retail","permalink":"/docs-next/pr-preview/pr-186/docs/tags/retail","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-industry/retail/brodos-open-telekom-cloud","title":"Omnichannel Platform by brodos.net","description":"With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2737.6ed23473.js b/pr-preview/pr-186/assets/js/2737.6ed23473.js new file mode 100644 index 000000000..9383c20b0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2737.6ed23473.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2737; +exports.ids = [2737]; +exports.modules = { + +/***/ 35118: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_pause_nb: () => (/* binding */ ActionPauseNb) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPauseNb = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11 5v14H6V5h5zm7 0v14h-5V5h5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11 5v14H6V5h5zm7 0v14h-5V5h5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPauseNb.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/27396.299e7ff1.js b/pr-preview/pr-186/assets/js/27396.299e7ff1.js new file mode 100644 index 000000000..8c91d54b5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/27396.299e7ff1.js @@ -0,0 +1,2 @@ +/*! For license information please see 27396.299e7ff1.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[27396],{88114:(e,t,i)=>{i.d(t,{c:()=>s});var o,n,a,s=(o=function(e){!function(){var t={}.hasOwnProperty;function i(){for(var e=[],o=0;o{i.r(t),i.d(t,{scale_input:()=>r});var o=i(90936),n=i(88114),a=i(94200),s=i(91779);const r=class{constructor(e){(0,o.r)(this,e),this.scaleInput=(0,o.c)(this,"scale-input",7),this.scaleInputLegacy=(0,o.c)(this,"scaleInput",7),this.scaleChange=(0,o.c)(this,"scale-change",7),this.scaleChangeLegacy=(0,o.c)(this,"scaleChange",7),this.scaleFocus=(0,o.c)(this,"scale-focus",7),this.scaleFocusLegacy=(0,o.c)(this,"scaleFocus",7),this.scaleBlur=(0,o.c)(this,"scale-blur",7),this.scaleBlurLegacy=(0,o.c)(this,"scaleBlur",7),this.scaleKeyDown=(0,o.c)(this,"scale-keydown",7),this.scaleKeyDownLegacy=(0,o.c)(this,"scaleKeyDown",7),this.type="text",this.name="",this.variant="static",this.label="",this.size="",this.helperText="",this.status="",this.invalid=!1,this.placeholder="",this.checked=!1,this.value="",this.controlled=!1,this.hasFocus=!1,this.internalId=(0,s.g)(),this.handleCheckChange=e=>{this.checked=e.target.checked},this.handleCheckboxClick=()=>{this.disabled||(this.checked=!this.checked)},this.handleSelectChange=e=>{const t=e.target;this.controlled?((0,s.e)(this,"scaleChange",{value:t.value}),this.selectElement.value=String(this.value),this.forceUpdate=String(Date.now())):(this.value=t.value||"",this.emitChange())},this.handleInput=e=>{const t=e.target;t&&(this.value=t.value||"",this.emitChange()),(0,s.e)(this,"scaleInput",e)},this.handleChange=e=>{const t=e.target;t&&(this.value=t.value||"",this.emitChange())},this.handleFocus=()=>{(0,s.e)(this,"scaleFocus"),this.hasFocus=!0},this.handleBlur=()=>{(0,s.e)(this,"scaleBlur"),this.hasFocus=!1},this.handleKeyDown=e=>{(0,s.e)(this,"scaleKeyDown",e)}}componentWillLoad(){null==this.inputId&&(this.inputId="input-"+this.internalId),"select"===this.type&&null==this.icon&&(this.icon="M20.65 7.4c-.3-.3-.75-.3-1.05 0L12 15 4.4 7.4c-.3-.3-.75-.3-1.05 0s-.3.75 0 1.05L12 17.1l8.65-8.65c.3-.25.3-.75 0-1.05z")}componentDidLoad(){if((0,a.s)({tag:"deprecated",source:this.el,type:"warn",extraMessage:`Please use <${{select:"scale-dropdown",checkbox:"scale-checkbox",radio:"scale-radio-button",textarea:"scale-textarea"}[this.type]||"scale-text-field"}> instead.`}),"select"===this.type){const e=this.selectElement,t=e.selectedIndex>-1?e.options[e.selectedIndex].value:null;this.value?e.value=String(this.value):t&&(this.value=t)}"select"===this.type&&this.selectElement&&(this.mutationObserver=new MutationObserver((()=>{this.forceUpdate=String(Date.now())})),this.mutationObserver.observe(this.el,{childList:!0,subtree:!0}))}componentWillUpdate(){}componentDidRender(){const e=null==this.value?"":this.value.toString();"select"===this.type&&this.controlled&&this.selectElement.value.toString()!==e&&(this.selectElement.value=e),""!==this.status&&(0,a.s)({tag:"deprecated",message:'Property "status" is deprecated. Please use the "invalid" property!',type:"warn",source:this.el})}disconnectedCallback(){this.mutationObserver&&this.mutationObserver.disconnect()}emitChange(){(0,s.e)(this,"scaleChange",{value:null==this.value?this.value:this.value.toString()})}checkedChanged(){(0,s.e)(this,"scaleChange",{value:this.checked})}render(){const e="textarea"===this.type?"textarea":"input",t="error"===this.status||this.invalid?{"aria-invalid":"true"}:{},i=`helper-message-${this.internalId}`,a={"aria-describedBy":i};return"checkbox"===this.type?(0,o.h)(o.a,{checked:this.checked},(0,o.h)("div",{class:this.getCssClassMap()},(0,o.h)("input",Object.assign({type:"checkbox",name:this.name,id:this.inputId,onChange:this.handleCheckChange,value:this.value,checked:this.checked,disabled:this.disabled},t,a)),(0,o.h)("div",{class:(0,n.c)("input__checkbox-container"),onClick:this.handleCheckboxClick},(0,o.h)("span",{class:(0,n.c)("input__checkbox-placeholder")}),!!this.icon&&this.checked&&(0,o.h)("scale-icon",{path:this.icon,size:12})),(0,o.h)("label",{htmlFor:this.inputId},this.label),!!this.helperText&&(0,o.h)("div",{class:"input__meta",id:i,"aria-live":"polite","aria-relevant":"additions removals"},(0,o.h)("div",{class:"input__helper-text"},this.helperText)))):"radio"===this.type?(0,o.h)(o.a,null,(0,o.h)("div",{class:this.getCssClassMap()},(0,o.h)("input",Object.assign({type:"radio",name:this.name,id:this.inputId,onChange:this.handleCheckChange,value:this.value,checked:this.checked,disabled:this.disabled},t,a)),(0,o.h)("label",{htmlFor:this.inputId},this.label),!!this.helperText&&(0,o.h)("div",{class:"input__meta",id:i,"aria-live":"polite","aria-relevant":"additions removals"},(0,o.h)("div",{class:"input__helper-text"},this.helperText)))):(0,o.h)(o.a,null,(0,o.h)("div",{class:this.getCssClassMap()},(0,o.h)("label",{class:"input__label",htmlFor:this.inputId},this.label),"select"===this.type?(0,o.h)("div",{class:"input__select-wrapper"},(0,o.h)("select",Object.assign({ref:e=>this.selectElement=e,class:(0,n.c)("input__select"),value:this.value,onChange:this.handleSelectChange,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,disabled:this.disabled,required:this.required,multiple:this.multiple,id:this.inputId,name:this.name,size:this.visibleSize},t,a),(0,o.h)("slot",null)),!!this.icon&&(0,o.h)("scale-icon",{path:this.icon})):(0,o.h)(e,Object.assign({type:this.type,class:(0,n.c)("input__"+("textarea"===this.type?"textarea":"input"),this.customResize&&this.customResize.id),style:!!this.resize&&{resize:this.resize},value:this.value},this.name?{name:this.name}:{},{required:this.required,minLength:this.minLength,maxLength:this.maxLength,id:this.inputId,onInput:this.handleInput,onChange:this.handleChange,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown},this.placeholder?{placeholder:this.placeholder}:{},{disabled:this.disabled},this.rows?{rows:this.rows}:{},this.cols?{cols:this.cols}:{},t,a)),"textarea"===this.type&&"animated"===this.variant&&(0,o.h)("span",{class:"input__textarea-label-safety-background","aria-hidden":"true"}),(!!this.helperText||!!this.counter)&&(0,o.h)("div",{class:"input__meta",id:i,"aria-live":"polite","aria-relevant":"additions removals"},!!this.helperText&&(0,o.h)("div",{class:"input__helper-text"},this.helperText),this.counter&&(0,o.h)("div",{class:"input__counter"},this.value?String(this.value).length:0," /"," ",this.maxLength))))}getCssClassMap(){return(0,n.c)("input",this.type&&`input--type-${this.type}`,this.hasFocus&&"input--has-focus",this.checked&&"input--checked",this.resize&&`input--resize-${this.resize}`,this.variant&&`input--variant-${this.variant}`,this.disabled&&"input--disabled",this.transparent&&"input--transparent",this.status&&`input--status-${this.status}`,this.invalid&&"input--status-error",this.size&&`input--size-${this.size}`,null!=this.value&&""!==this.value&&"animated")}get el(){return(0,o.g)(this)}static get watchers(){return{checked:["checkedChanged"]}}};r.style=".input{position:relative}.input .input__helper-text,.input .input__counter{font-weight:var(--telekom-typography-font-weight-bold)}.input .input__input,.input .input__select{width:100%;height:var(--telekom-spacing-composition-space-14);margin:0;display:flex;outline:none;padding:var(--telekom-spacing-composition-space-05)\n var(--telekom-spacing-composition-space-05);z-index:1;box-sizing:border-box;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));font-family:inherit;font-size:var(--telekom-typography-font-size-body);border-radius:var(--telekom-radius-standard);border:var(--telekom-line-weight-standard) solid\n var(--telekom-color-ui-border-standard)}.input .input__textarea{width:100%;margin:0;resize:vertical;display:flex;outline:none;padding:var(--telekom-spacing-composition-space-05)\n var(--telekom-spacing-composition-space-05);z-index:1;box-sizing:border-box;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));font-family:inherit;font-size:var(--telekom-typography-font-size-body);border-radius:var(--telekom-radius-standard);border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard)}.input .input__select{appearance:none;-webkit-appearance:none}.input .input__select-wrapper{position:relative}.input .input__counter{display:flex;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));margin-left:auto;padding-right:var(--telekom-spacing-composition-space-05);justify-content:flex-end;font-size:var(--telekom-typography-font-size-small);line-height:var(--telekom-typography-line-spacing-standard);color:var(--telekom-color-text-and-icon-standard)}.input .input__helper-text{transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));padding-left:var(--telekom-spacing-composition-space-05);font-size:var(--telekom-typography-font-size-small);line-height:var(--telekom-typography-line-spacing-standard);color:var(--telekom-color-text-and-icon-functional-informational)}.input .input__meta{display:flex;justify-content:space-between;margin-top:var(--telekom-spacing-composition-space-03)}.input:not(.input--disabled):hover .input__select-wrapper{--icon-color:var(--telekom-color-text-and-icon-primary-hovered, #f90984)}.input:not(.input--disabled):active .input__select-wrapper{--icon-color:var(--telekom-color-text-and-icon-primary-pressed, #cb0068)}.input:not(.input--disabled) .input__input:hover,.input:not(.input--disabled) .input__input:focus,.input:not(.input--disabled) .input__select:hover,.input:not(.input--disabled) .input__select:focus,.input:not(.input--disabled) .input__textarea:hover,.input:not(.input--disabled) .input__textarea:focus{border-color:var(--telekom-color-ui-border-hovered)}.input:not(.input--disabled) .input__input:focus,.input:not(.input--disabled) .input__select:focus,.input:not(.input--disabled) .input__textarea:focus{box-shadow:0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-focus-standard)}.input:not(.input--disabled) .input__input:focus::placeholder,.input:not(.input--disabled) .input__select:focus::placeholder,.input:not(.input--disabled) .input__textarea:focus::placeholder{color:var(--telekom-color-text-and-icon-additional);transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard))}.input .input__select-wrapper scale-icon{top:50%;right:var(--telekom-spacing-composition-space-05);position:absolute;transform:translateY(-50%);pointer-events:none}.input .input__input::placeholder,.input .input__select::placeholder,.input .input__textarea::placeholder,.input ::placeholder{color:transparent;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard))}.input--variant-static .input__label{color:var(--telekom-color-text-and-icon-additional);display:flex;font-weight:var(--telekom-typography-font-weight-medium)}.input--variant-animated .input__input,.input--variant-animated .input__select{padding:var(--telekom-spacing-composition-space-05)\n var(--telekom-spacing-composition-space-05) 0\n calc(var(--telekom-spacing-composition-space-05) - 1px)}.input--variant-animated .input__textarea{padding-top:var(--telekom-spacing-composition-space-08)}.input--variant-animated .input__label{top:0;left:0;color:var(--telekom-color-text-and-icon-additional);display:flex;z-index:var(--scl-z-index-10);position:absolute;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));pointer-events:none;font-size:var(--telekom-typography-font-size-body);transform:translate(\n var(--telekom-spacing-composition-space-05),\n calc(\n (\n var(--telekom-spacing-composition-space-14) -\n var(--telekom-typography-font-size-body)\n ) / 2\n )\n );font-weight:var(--telekom-typography-font-weight-medium)}.input--variant-animated.input--has-focus .input__label,.input--variant-animated.animated .input__label{color:var(--telekom-color-text-and-icon-additional);transform:translate(\n var(--telekom-spacing-composition-space-05),\n var(--telekom-spacing-composition-space-04)\n );transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));font-size:var(--telekom-typography-font-size-badge);font-weight:var(--telekom-typography-font-weight-bold)}.input--status-error .input__input,.input--status-error .input__textarea,.input--status-error .input__select{border:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard)}.input--status-error .input__helper-text{color:var(--telekom-color-text-and-icon-functional-danger)}.input--status-error .input__counter{color:var(--telekom-color-text-and-icon-functional-danger)}.input--size-small .input__input{height:var(--telekom-spacing-composition-space-12)}.input--size-small .input__select{height:var(--telekom-spacing-composition-space-12)}.input--size-small .input__label{top:0;left:0;color:var(--telekom-color-text-and-icon-additional);display:flex;z-index:var(--scl-z-index-10);position:absolute;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));pointer-events:none;font-size:var(--telekom-typography-font-size-body);transform:translate(\n var(--telekom-spacing-composition-space-05),\n calc(\n (\n var(--telekom-spacing-composition-space-12) -\n var(--telekom-typography-font-size-body)\n ) / 2\n )\n );font-weight:var(--telekom-typography-font-weight-medium)}.input--size-small.input--has-focus .input__label,.input--size-small.animated .input__label{color:var(--telekom-color-text-and-icon-additional);transform:translate(\n var(--telekom-spacing-composition-space-05),\n var(--telekom-spacing-composition-space-03)\n );transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));font-size:var(--telekom-typography-font-size-badge);font-weight:var(--telekom-typography-font-weight-medium)}.input--transparent .input__input,.input--transparent .input__textarea,.input--transparent.input--type-radio .input__radio,.input--transparent .input__select{background-color:transparent}.input--type-checkbox{display:flex;flex-wrap:wrap;align-items:center}.input--type-checkbox input{width:0;height:0;opacity:0;position:absolute}.input--type-checkbox .input__meta{width:100%}.input--type-checkbox .input__helper-text{padding-left:var(--telekom-spacing-composition-space-10)}.input--type-checkbox label{color:var(--telekom-color-text-and-icon-standard);font-weight:var(--telekom-typography-font-weight-medium)}.input--type-checkbox .input__checkbox-container{width:var(--telekom-spacing-composition-space-06);height:var(--telekom-spacing-composition-space-06);display:flex;position:relative;align-items:center;margin-right:var(--telekom-spacing-composition-space-04)}.input--type-checkbox input:disabled~label{color:var(--telekom-color-ui-disabled)}.input--type-checkbox input:checked:disabled~label{color:var(--telekom-color-ui-disabled)}.input--type-checkbox input:checked:disabled~.input__checkbox-container .input__checkbox-placeholder{background:var(--telekom-color-ui-disabled)}.input--type-checkbox input:checked:disabled~.input__checkbox-container scale-icon{--icon-color:var(--telekom-color-text-and-icon-disabled)}.input--type-checkbox input:checked:not([disabled]):hover~.input__checkbox-container .input__checkbox-placeholder,.input--type-checkbox input:checked:not([disabled])~.input__checkbox-container:hover .input__checkbox-placeholder{box-shadow:none;border-color:var(--telekom-color-primary-hovered, #f90984);background:var(--telekom-color-primary-hovered, #f90984)}.input--type-checkbox input:checked:not([disabled]):active~.input__checkbox-container .input__checkbox-placeholder,.input--type-checkbox input:checked:not([disabled])~.input__checkbox-container:active .input__checkbox-placeholder{border-color:var(--telekom-color-primary-pressed, #cb0068);background:var(--telekom-color-primary-pressed, #cb0068)}.input--type-checkbox input:checked:not([disabled]):active~.input__checkbox-container scale-icon,.input--type-checkbox input:checked:not([disabled])~.input__checkbox-container:active scale-icon{--icon-color:var(--telekom-color-text-and-icon-standard)}.input--type-checkbox input:checked:not([disabled])~.input__checkbox-container .input__checkbox-placeholder{border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-primary-standard, #e20074);background:var(--telekom-color-primary-standard, #e20074)}.input--type-checkbox input:disabled~.input__checkbox-container .input__checkbox-placeholder{border-color:var(--telekom-color-ui-disabled)}.input--type-checkbox input:focus~.input__checkbox-container .input__checkbox-placeholder{box-shadow:0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-focus-standard)}.input--type-checkbox input:not([disabled]):hover~.input__checkbox-container .input__checkbox-placeholder,.input--type-checkbox input:not([disabled])~.input__checkbox-container:hover .input__checkbox-placeholder{box-shadow:none;border-color:var(--telekom-color-primary-hovered, #f90984)}.input--type-checkbox input:not([disabled]):hover~.input__checkbox-container~label,.input--type-checkbox input:not([disabled])~.input__checkbox-container:hover~label{color:var(--telekom-color-text-and-icon-primary-hovered, #f90984)}.input--type-checkbox input:not([disabled]):active~.input__checkbox-container .input__checkbox-placeholder,.input--type-checkbox input:not([disabled])~.input__checkbox-container:active .input__checkbox-placeholder{border-color:var(--telekom-color-primary-pressed, #cb0068);background:var(--telekom-color-primary-pressed, #cb0068)}.input--type-checkbox input:not([disabled]):active~.input__checkbox-container scale-icon,.input--type-checkbox input:not([disabled])~.input__checkbox-container:active scale-icon{--icon-color:var(--telekom-color-text-and-icon-primary-pressed, #cb0068)}.input--type-checkbox input:not([disabled]):active~.input__checkbox-container~label,.input--type-checkbox input:not([disabled])~.input__checkbox-container:active~label{color:var(--telekom-color-text-and-icon-primary-pressed, #cb0068)}.input--type-checkbox .input__checkbox-container .input__checkbox-placeholder{width:var(--telekom-spacing-composition-space-06);height:var(--telekom-spacing-composition-space-06);margin:0;box-sizing:border-box;transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));border-radius:var(--telekom-radius-standard);border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-text-and-icon-standard);background:var(--telekom-color-background-surface)}.input--type-checkbox .input__checkbox-container scale-icon{top:calc(0.5 * var(--telekom-spacing-composition-space-05));left:calc(0.5 * var(--telekom-spacing-composition-space-05));width:var(--telekom-spacing-composition-space-05);height:var(--telekom-spacing-composition-space-05);position:absolute;user-select:none;--icon-color:var(--telekom-color-text-and-icon-inverted-standard)}.input--type-checkbox .input__checkbox-container~label{transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard))}.input--type-checkbox.input--status-error .input__checkbox-container .input__checkbox-placeholder{border:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard)}.input--type-radio{display:flex;flex-wrap:wrap;align-items:center}.input--type-radio .input__meta{width:100%}.input--type-radio .input__helper-text{margin-top:var(--telekom-spacing-composition-space-03);padding-left:var(--telekom-spacing-composition-space-08)}.input--type-radio label{color:var(--telekom-color-text-and-icon-standard);transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));font-weight:var(--telekom-typography-font-weight-medium)}.input--type-radio input{width:var(--telekom-spacing-composition-space-06);height:var(--telekom-spacing-composition-space-06);transition:all var(--telekom-motion-duration-transition)\n cubic-bezier(var(--telekom-motion-easing-standard));border-radius:var(--telekom-radius-circle);-webkit-appearance:none;background-color:#fff;border:var(--telekom-line-weight-standard) solid\n var(--telekom-color-ui-border-standard);margin:0 var(--telekom-spacing-composition-space-04) 0 0}.input--type-radio input:focus{outline:none;box-shadow:0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard)}.input--type-radio:hover input:not(:checked):not([disabled]){box-shadow:none;border-color:var(--telekom-color-text-and-icon-primary-hovered)}.input--type-radio:hover input:not(:checked):not([disabled])~label{color:var(--telekom-color-text-and-icon-primary-hovered)}.input--type-radio input:active{border:var(--telekom-spacing-composition-space-04) solid\n var(--telekom-color-primary-pressed)}.input--type-radio input:not(:checked):not([disabled]):active~label{color:var(--telekom-color-text-and-icon-primary-pressed)}.input--type-radio input:disabled{border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-disabled)}.input--type-radio input:disabled~label{color:var(--telekom-color-text-and-icon-disabled)}.input--type-radio.input--status-error input{border:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard)}.input--type-radio input:checked{border:calc(0.5 * var(--telekom-spacing-composition-space-05)) solid\n var(--telekom-color-primary-standard)}.input--type-radio input:checked:active{border:calc(0.5 * var(--telekom-spacing-composition-space-05)) solid\n var(--telekom-color-primary-pressed, #cb0068)}.input--type-radio input:checked:disabled{background:var(--telekom-color-ui-disabled);border:calc(0.5 * var(--telekom-spacing-composition-space-05)) solid\n var(--telekom-color-ui-border-disabled)}.input--type-radio input:checked:disabled~label{color:var(--telekom-color-text-and-icon-disabled)}.input__textarea-label-safety-background{top:var(--telekom-spacing-composition-space-02);left:var(--telekom-spacing-composition-space-02);right:var(--telekom-spacing-composition-space-02);position:absolute;pointer-events:none;border-radius:var(--telekom-radius-standard);height:var(--telekom-spacing-composition-space-08);background-color:var(--telekom-color-background-surface, #ffffff)}.input--disabled .input__textarea-label-safety-background{background-color:transparent}.input--disabled label,.input--disabled .input__label,.input--disabled input,.input--disabled .input__input,.input--disabled .input__checkbox-container,.input--disabled .input__radio,.input--disabled .input__select,.input--disabled .input__textarea,.input--disabled .input__helper-text{cursor:not-allowed;border-color:var(--telekom-color-ui-disabled);color:var(--telekom-color-text-and-icon-disabled);background:var(--telekom-color-ui-disabled)}.input--disabled .input__select-wrapper{--icon-color:var(--telekom-color-text-and-icon-disabled)}.input--disabled.animated label.input__label{color:var(--telekom-color-text-and-icon-disabled)}"},94200:(e,t,i)=>{i.d(t,{s:()=>a});const o={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},n={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function a({tag:e="WIP",extraMessage:t=null,message:i=null,source:a=null,type:s="info"}){(0,console[s])(`%c scale \u2013 ${o[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${i||n[e]} ${t?"\n"+t:""}\n `,null!==a?"\nsource:":"","object"==typeof a?a:`${a}`,null!==a?"\n\n":"")}},91779:(e,t,i)=>{i.d(t,{a:()=>p,b:()=>s,c:()=>n,e:()=>a,g:()=>l,h:()=>o,i:()=>r});const o=e=>!!e.shadowRoot&&!!e.attachShadow,n=e=>{let t=document.styleSheets[0];if(!t){const e=document.createElement("style");document.head.appendChild(e),t=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),t.insertRule("html"+e+"{}",0),t.deleteRule(0),!0}catch(i){return!1}}()};function a(e,t,i){const o=t+"Legacy",n=[];return void 0!==e[o]&&n.push(e[o].emit(i)),n.push(e[t].emit(i)),n}function s(e,t){let i=e.target;const o=null!=i.shadowRoot,n=o?e.composedPath():[];do{if(i===t)return!1;i=o?n.shift():i.parentNode}while(i);return!0}const r=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let c=0;function l(){return c++}const p=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/27396.299e7ff1.js.LICENSE.txt b/pr-preview/pr-186/assets/js/27396.299e7ff1.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/27396.299e7ff1.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/274.cfc6f031.js b/pr-preview/pr-186/assets/js/274.cfc6f031.js new file mode 100644 index 000000000..f7b5357a6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/274.cfc6f031.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 274; +exports.ids = [274]; +exports.modules = { + +/***/ 50274: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_compliance: () => (/* binding */ AlertCompliance) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertCompliance = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.97 14H8a.75.75 0 110-1.5h4.06a7.865 7.865 0 011.89-1.5H8a.75.75 0 110-1.5h8a.74.74 0 01.725.575A7.535 7.535 0 0121 10.72V1H3v19a3 3 0 003 3h6.06a7.725 7.725 0 01-1.09-9zM8 6.5h8A.75.75 0 1116 8H8a.75.75 0 010-1.5zm12.895 9.035a.745.745 0 00-1.06 0L17 18.355l-1.41-1.41A.75.75 0 0014.545 18L17 20.5l3.88-3.88a.755.755 0 00.015-1.085zM17.75 11.5a6.25 6.25 0 100 12.5 6.25 6.25 0 000-12.5zm0 11a4.75 4.75 0 110-9.5 4.75 4.75 0 010 9.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75 11.5c3.45 0 6.25 2.8 6.25 6.25S21.2 24 17.75 24s-6.25-2.8-6.25-6.25 2.8-6.25 6.25-6.25zM21 1v9.72a7.65 7.65 0 00-1.188-.436l-.312-.079V2.5h-15V20c0 .776.598 1.42 1.356 1.493L6 21.5h4.97c.24.436.525.843.844 1.222l.246.278H6a3.003 3.003 0 01-2.995-2.824L3 20V1h18zm-.105 14.535a.744.744 0 00-.975-.073l-.085.073-2.82 2.82-1.41-1.41a.745.745 0 00-1.06 0 .744.744 0 00-.073.975l.073.085 2.47 2.47 3.88-3.88a.754.754 0 000-1.06zM12.06 12.5c-.336.364-.64.757-.902 1.178L10.97 14H8a.749.749 0 01-.102-1.493L8 12.5h4.06zm3.94-3a.74.74 0 01.725.575 7.655 7.655 0 00-2.491.772L13.95 11H8a.749.749 0 01-.102-1.493L8 9.5h8zm0-3a.749.749 0 01.102 1.493L16 8H8a.749.749 0 01-.102-1.493L8 6.5h8z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertCompliance.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2743.0a81e0a2.js b/pr-preview/pr-186/assets/js/2743.0a81e0a2.js new file mode 100644 index 000000000..48dcba98a --- /dev/null +++ b/pr-preview/pr-186/assets/js/2743.0a81e0a2.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2743; +exports.ids = [2743]; +exports.modules = { + +/***/ 82743: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_tablet: () => (/* binding */ DeviceTablet) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceTablet = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20 13.25a1 1 0 11.001-2 1 1 0 010 2m.5-9.75h-17a3 3 0 00-3 3v11a3 3 0 003 3h17a3 3 0 003-3v-11a3 3 0 00-3-3", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20 11.25a1 1 0 100 2 1 1 0 000-2zm2 6.25c0 .827-.672 1.5-1.5 1.5h-17c-.827 0-1.5-.673-1.5-1.5v-11C2 5.673 2.673 5 3.5 5h17c.828 0 1.5.673 1.5 1.5v11zm-1.5-14h-17a3 3 0 00-3 3v11a3 3 0 003 3h17a3 3 0 003-3v-11a3 3 0 00-3-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceTablet.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/27451.23ba05a9.js b/pr-preview/pr-186/assets/js/27451.23ba05a9.js new file mode 100644 index 000000000..29a979ac3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/27451.23ba05a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[27451],{27451:(t,e,i)=>{i.r(e),i.d(e,{scale_tooltip:()=>d});var o=i(90936),s=i(13299),n=i(91779),r=i(94200);function a(t){return function(t){for(let e=t;e;e=h(e))if(e instanceof Element&&"none"===getComputedStyle(e).display)return null;for(let e=h(t);e;e=h(e)){if(!(e instanceof Element))continue;const t=getComputedStyle(e);if("contents"!==t.display){if("static"!==t.position||"none"!==t.filter)return e;if("BODY"===e.tagName)return e}}return null}(t)}function h(t){return t.assignedSlot?t.assignedSlot:t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}let l=0;const d=class{constructor(t){(0,o.r)(this,t),this.tooltipBeforeShow=(0,o.c)(this,"scale-before-show",7),this.tooltipShow=(0,o.c)(this,"scale-show",7),this.tooltipBeforeHide=(0,o.c)(this,"scale-before-hide",7),this.tooltipHide=(0,o.c)(this,"scale-hide",7),this.componentId="tooltip-"+ ++l,this.content="",this.placement="top",this.disabled=!1,this.distance=10,this.arrowOffset=-4,this.arrowPadding=8,this.opened=!1,this.trigger="hover focus",this.flip=!0,this.mouseOverTooltip=!1,this.update=async()=>{if(this.disabled||null==this.triggerEl)return;const{x:t,y:e,placement:i,middlewareData:o}=await(0,s.c)(this.triggerEl,this.tooltipEl,{placement:this.placement,middleware:[(0,s.o)(this.distance),...this.flip?[(0,s.f)()]:[],(0,s.a)({element:this.arrowEl,padding:this.arrowPadding}),(0,s.s)({crossAxis:!0})],platform:Object.assign(Object.assign({},s.p),{getOffsetParent:t=>s.p.getOffsetParent(t,a)})});Object.assign(this.tooltipEl.style,{left:`${t}px`,top:`${e}px`});const{x:n,y:r}=o.arrow,[h]=i.split("-"),l={top:"bottom",right:"left",bottom:"top",left:"right"}[h];Object.assign(this.arrowEl.style,{left:null!=n?`${n}px`:"",top:null!=r?`${r}px`:"",right:"",bottom:"",[l]:`${this.arrowOffset}px`})},this.handleBlur=()=>{this.hasTrigger("focus")&&this.hideTooltip()},this.handleClick=()=>{this.hasTrigger("click")&&(this.opened&&!this.hasTrigger("focus")?this.hideTooltip():this.showTooltip())},this.handleFocus=()=>{this.hasTrigger("focus")&&this.showTooltip()},this.handleKeyDown=t=>{this.opened&&"Escape"===t.key&&(t.stopPropagation(),this.hideTooltip())},this.handleMouseOver=()=>{this.hasTrigger("hover")&&this.showTooltip()},this.handleMouseOut=()=>{this.mouseOverTooltip||this.hasTrigger("hover")&&this.hideTooltip()},this.handleTooltipMouseOver=()=>{this.mouseOverTooltip=!0},this.handleTooltipBlur=()=>{this.mouseOverTooltip=!1,this.handleMouseOut()},this.hasTrigger=t=>this.trigger.split(" ").includes(t)}handleOpenChange(){this.opened?this.showTooltip():this.hideTooltip()}connectedCallback(){(0,r.s)({source:this.hostElement,tag:"beta"}),this.hostElement.hasAttribute("open")&&(0,r.s)({tag:"deprecated",message:"The `open` prop is deprecated in favor of `opened`",source:this.hostElement});const t=Array.from(this.hostElement.children).filter((t=>!t.hasAttribute("slot")));0!==t.length?(this.triggerEl=t[0],this.triggerEl.addEventListener("blur",this.handleBlur,!0),this.triggerEl.addEventListener("click",this.handleClick,!0),this.triggerEl.addEventListener("focus",this.handleFocus,!0),this.triggerEl.addEventListener("mouseover",this.handleMouseOver,!0),this.triggerEl.addEventListener("mouseout",this.handleMouseOut,!0)):(0,r.s)({tag:"warning",message:"An element is required, if using text, wrap it in a ``",type:"warn",source:this.hostElement})}disconnectedCallback(){this.triggerEl.removeEventListener("blur",this.handleBlur,!0),this.triggerEl.removeEventListener("click",this.handleClick,!0),this.triggerEl.removeEventListener("focus",this.handleFocus,!0),this.triggerEl.removeEventListener("mouseover",this.handleMouseOver,!0),this.triggerEl.removeEventListener("mouseout",this.handleMouseOut,!0)}handleOutsideClick(t){(0,n.b)(t,this.hostElement)&&this.hideTooltip()}componentDidUpdate(){this.update(),this.opened&&this.showTooltip()}componentDidRender(){this.update()}async showTooltip(){if(this.opened)return;this.tooltipBeforeShow.emit().defaultPrevented?this.opened=!1:(this.opened=!0,this.update())}async hideTooltip(){if(!this.opened)return;this.tooltipBeforeHide.emit().defaultPrevented?this.opened=!0:(this.opened=!1,this.update())}render(){return(0,o.h)(o.a,{onKeyDown:this.handleKeyDown},this.styles&&(0,o.h)("style",null,this.styles),(0,o.h)("span",{part:"trigger","aria-describedby":this.componentId},(0,o.h)("slot",null)),!this.disabled&&(0,o.h)("div",{part:"tooltip",role:"tooltip","aria-hidden":this.opened?"false":"true",ref:t=>this.tooltipEl=t,id:this.componentId,onMouseOver:this.handleTooltipMouseOver,onMouseLeave:this.handleTooltipBlur},(0,o.h)("slot",{name:"content"},this.content),(0,o.h)("div",{"aria-hidden":"true",part:"arrow",ref:t=>this.arrowEl=t})))}get hostElement(){return(0,o.g)(this)}static get watchers(){return{opened:["handleOpenChange"]}}};d.style=":host{--radius:var(--telekom-radius-small);--background:var(--telekom-color-background-surface-highlight);--color:var(--telekom-color-text-and-icon-white-standard);--font-weight:var(--telekom-typography-font-weight-regular);--font-size:var(--telekom-typography-font-size-body);--line-height:var(--telekom-typography-line-spacing-standard);--spacing:var(--telekom-spacing-composition-space-02)\n var(--telekom-spacing-composition-space-04);--width:auto;--arrow-size:12px;--transition-delay-hide:var(--telekom-motion-duration-instant);--transition-duration-hide:var(--telekom-motion-duration-immediate);--transition-timing-function-hide:var(--telekom-motion-easing-standard);--transition-duration-show:var(--telekom-motion-duration-immediate);--transition-timing-function-show:var(--telekom-motion-easing-standard);--z-index:var(--scl-z-index-70);display:contents;box-sizing:border-box}[part='tooltip']{position:absolute;width:var(--width);z-index:var(--z-index);top:0;left:0;background:var(--background);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);padding:var(--spacing);border-radius:var(--radius);transition-property:opacity;transition-duration:var(--transition-duration-show);transition-timing-function:var(--transition-timing-function-show)}[part='tooltip'][aria-hidden='true']{opacity:0;transition-delay:var(--transition-delay-hide);transition-duration:var(--transition-duration-hide);transition-timing-function:var(--transition-timing-function-hide);pointer-events:none}[part='trigger']{}[part='arrow']{position:absolute;z-index:-1;background:var(--background);width:var(--arrow-size);height:var(--arrow-size);transform:rotate(45deg)}@media screen and (-ms-high-contrast: active){[part='tooltip']{border:1px solid yellow}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/27457.35b47bbe.js b/pr-preview/pr-186/assets/js/27457.35b47bbe.js new file mode 100644 index 000000000..12d94b33f --- /dev/null +++ b/pr-preview/pr-186/assets/js/27457.35b47bbe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[27457],{27457:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_phone_number:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M16.05 13.3l-1.7 1.7c-.25.25-.7.3-1 .05-.55-.45-1.4-1.15-2.3-2.05-.9-.9-1.6-1.75-2.05-2.3a.76.76 0 01.05-1l1.7-1.7L7.4 2c-1.1.1-3.45.35-4.7 2.25C1.55 6.1 2.2 8.35 2.4 9c.85 2.35 2.65 5 5.1 7.5 2.5 2.5 5.15 4.3 7.45 5.1.35.1 1.25.4 2.25.4.8 0 1.7-.15 2.5-.65 1.9-1.2 2.15-3.55 2.25-4.7l-5.9-3.35z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M16.05 13.3l-1.7 1.7c-.25.25-.7.3-1 .05-.55-.45-1.4-1.15-2.3-2.05-.9-.9-1.6-1.75-2.05-2.3a.76.76 0 01.05-1l1.7-1.7L7.4 2c-1.1.1-3.45.35-4.7 2.25C1.55 6.1 2.2 8.35 2.4 9c.85 2.35 2.65 5 5.1 7.5 2.5 2.5 5.15 4.3 7.45 5.1.35.1 1.25.4 2.25.4.8 0 1.7-.15 2.5-.65 1.9-1.2 2.15-3.55 2.25-4.7l-5.9-3.35zm2.9 6.7c-1.25.8-3 .3-3.45.15-2.1-.7-4.55-2.4-6.9-4.75-2.3-2.3-4-4.75-4.7-6.9-.15-.5-.65-2.2.15-3.45C4.5 4.3 5.4 3.8 6.65 3.6l2.3 4.05-.95.9c-.8.8-.9 2.1-.15 3 .5.6 1.25 1.5 2.15 2.45.95.95 1.85 1.7 2.45 2.15.9.7 2.2.65 3-.15l.9-.9 4.05 2.3c-.25 1.25-.7 2.15-1.45 2.6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/27540.e1cee811.js b/pr-preview/pr-186/assets/js/27540.e1cee811.js new file mode 100644 index 000000000..d70dd40cc --- /dev/null +++ b/pr-preview/pr-186/assets/js/27540.e1cee811.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[27540],{27540:(e,t,s)=>{s.r(t),s.d(t,{scale_telekom_app_shell:()=>l});var n=s(90936);const l=class{constructor(e){(0,n.r)(this,e)}render(){return(0,n.h)(n.a,null,this.styles&&(0,n.h)("style",null,this.styles),(0,n.h)("div",{part:"base"},(0,n.h)("slot",{name:"header"}),(0,n.h)("main",{part:"content"},(0,n.h)("slot",null)),(0,n.h)("slot",{name:"footer"})))}get hostElement(){return(0,n.g)(this)}};l.style=":host{--spacing-x:0;--min-height:100vh}[part~='base']{display:flex;min-height:var(--min-height);flex-direction:column}[part~='content']{box-sizing:border-box;align-self:center;width:100%;padding-left:var(--spacing-x);padding-right:var(--spacing-x);flex:1}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2762cf9a.cad42f0e.js b/pr-preview/pr-186/assets/js/2762cf9a.cad42f0e.js new file mode 100644 index 000000000..6e27827ac --- /dev/null +++ b/pr-preview/pr-186/assets/js/2762cf9a.cad42f0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36495],{48976:e=>{e.exports=JSON.parse('{"tag":{"label":"omnichannel","permalink":"/docs-next/pr-preview/pr-186/docs/tags/omnichannel","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-industry/retail/brodos-open-telekom-cloud","title":"Omnichannel Platform by brodos.net","description":"With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2765.19e19abc.js b/pr-preview/pr-186/assets/js/2765.19e19abc.js new file mode 100644 index 000000000..064fa4778 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2765.19e19abc.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2765; +exports.ids = [2765]; +exports.modules = { + +/***/ 62765: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_tariffs: () => (/* binding */ ContentTariffs) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentTariffs = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.061 2.836l-8.62-1.274L2.346 11.657a2.988 2.988 0 000 4.232l5.643 5.662a2.993 2.993 0 004.256 0l10.075-10.11-1.259-8.605zm-6.343 10.52l-1.087-1.087a1.043 1.043 0 00-.078-1.43c-.46-.46-1.01-.49-1.734-.034l1.112 1.112-.764.764-1.2-1.2-.191.19-.196.202 1.2 1.2-.764.759-1.112-1.097c-.446.715-.422 1.263.039 1.724.38.4 1.006.436 1.43.083l1.087 1.087a2.586 2.586 0 01-3.497-.19c-1.023-1.024-1.033-2.386-.117-3.762l-.49-.466.764-.764.382.382.196-.2.191-.191-.377-.382.774-.75.49.465c1.38-.92 2.733-.92 3.766.113a2.581 2.581 0 01.176 3.473zm3.502-6.283a.98.98 0 11-1.36-1.411.98.98 0 011.36 1.41z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.45 1.55l8.75 1.3 1.3 8.75-10.3 10.3c-.6.6-1.4.9-2.15.9a3.071 3.071 0 01-1.982-.744L7.9 21.9l-5.75-5.75c-1.154-1.106-1.198-2.951-.133-4.158l.133-.142 10.3-10.3zm.5 1.6L3.2 12.9a1.572 1.572 0 00-.105 2.083l.105.117 5.75 5.75c.3.3.7.45 1.1.45.35 0 .7-.115.983-.345l.117-.105 9.8-9.7L19.9 4.2l-6.95-1.05zm-2.2 6.75c1.342-.91 2.637-.948 3.667.018l.133.132c.957.909 1.09 2.23.312 3.392l-.112.158-1.1-1.1c.35-.55.3-1.05-.1-1.45-.42-.467-.927-.498-1.603-.134L11.8 11l1.15 1.15-.8.8-1.2-1.2-.4.4 1.2 1.2-.8.8L9.8 13c-.45.7-.4 1.3.05 1.75.37.37.824.44 1.324.174l.126-.074 1.1 1.1c-1.2.85-2.6.75-3.55-.2-.957-1.004-1.044-2.329-.218-3.667l.118-.183-.5-.5.8-.8.4.4.4-.4-.4-.4.8-.8.5.5zm6.85-4.5c.257 0 .478.073.63.22l.07.08c.4.4.4 1.05 0 1.45-.2.2-.45.3-.7.3-.25 0-.5-.1-.7-.3-.4-.4-.4-1.05 0-1.45.2-.2.45-.3.7-.3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentTariffs.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2769.6a048736.js b/pr-preview/pr-186/assets/js/2769.6a048736.js new file mode 100644 index 000000000..ef71a10f7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2769.6a048736.js @@ -0,0 +1,121 @@ +"use strict"; +exports.id = 2769; +exports.ids = [2769]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 72769: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_telekom_footer_extended_navigation_column: () => (/* binding */ TelekomFooterExtendedNavigationColumn) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const telekomFooterExtendedNavigationColumnCss = "[part~='telekom-footer-extended-navigation-column']{--heading-color:var(--telekom-color-text-and-icon-standard);--heading-weight:var(--telekom-typography-font-weight-bold);--link-color:var(--telekom-color-text-and-icon-standard)}[part~='links-hidden']{display:none}[part~='links-expanded']{display:block}[part~='telekom-footer-extended-navigation-column-links']{font-size:var(--telekom-typography-font-size-body);line-height:140%}[part~='heading'],[part~='heading-button']{font-family:var(--telekom-typography-font-family-sans);font-size:var(--telekom-typography-font-size-body);line-height:140%;margin:0;color:var(--heading-color);font-weight:var(--heading-weight);background:none;border:none}[part~='heading-button']{display:flex;padding:0;width:100%;cursor:pointer;align-items:center;justify-content:space-between}[part~='heading']{display:none}[part~='heading-container'] h2{margin-block-start:0;margin-block-end:0}[part~='heading-container'] button{padding-top:20px;padding-bottom:20px}scale-divider{--spacing:0}@media screen and (min-width: 640px){[part~='heading-with-button']{display:none}[part~='heading']{display:block}[part~='telekom-footer-extended-navigation-column-links']{display:block}scale-divider{display:none}}[part~='expanded'] scale-icon-navigation-collapse-down{transform:rotate(0.5turn)}"; + +const TelekomFooterExtendedNavigationColumn = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** Set to `true` to expand */ + this.expanded = false; + // Optional heading level - default h2 + this.headingLevel = '2'; + this.handleClick = () => { + this.expanded = !this.expanded; + // emitEvent(this, 'scaleExpand', { expanded: this.expanded }); + }; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('telekom-footer-extended-navigation-column', { + expanded: this.expanded, + }) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "heading-container" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { role: "heading", "aria-level": this.headingLevel, part: "heading-with-button" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", { onClick: this.handleClick, part: "heading-button" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", null, " ", this.heading), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-down", { selected: true, size: 16 }))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "heading", role: "heading", "aria-level": this.headingLevel }, this.heading)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('telekom-footer-extended-navigation-column-links', this.expanded ? 'links-expanded' : 'links-hidden') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomFooterExtendedNavigationColumn.style = telekomFooterExtendedNavigationColumnCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2799.358065db.js b/pr-preview/pr-186/assets/js/2799.358065db.js new file mode 100644 index 000000000..65c6d11b7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2799.358065db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2799],{2799:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_alert_cyber_security:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 .98l9.5 2.171v7.998c0 5.693-3.822 10.758-9.294 12.322L12 23.53l-.206-.058C6.322 21.907 2.5 16.841 2.5 11.15V3.152L12 .98zm0 5.145a2.927 2.927 0 00-2.918 2.752l-.005.171v.953H8v4l.007.144a1.5 1.5 0 001.348 1.349l.145.007h5l.145-.007a1.5 1.5 0 001.348-1.35l.007-.143v-4h-1.077v-.952l-.005-.172A2.927 2.927 0 0012 6.125zm0 1.25c.874 0 1.594.674 1.667 1.53l.006.144V10h-3.346v-.952l.006-.145A1.675 1.675 0 0112 7.375z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 .98l9.5 2.173v7.998c0 5.587-3.684 10.572-8.997 12.232l-.297.089-.206.058-.206-.058c-5.373-1.536-9.154-6.447-9.29-12.012l-.004-.31V3.154L12 .98zm0 1.54L4 4.349v6.802c0 4.953 3.278 9.37 8 10.817 4.627-1.417 7.869-5.689 7.996-10.52L20 11.15V4.349l-8-1.83zm0 3.605a2.928 2.928 0 012.918 2.752l.005.172v.95H16v4a1.5 1.5 0 01-1.355 1.494l-.145.007h-5a1.5 1.5 0 01-1.493-1.356L8 14v-4h1.076v-.951A2.928 2.928 0 0112 6.125zm0 1.25c-.874 0-1.594.674-1.667 1.53l-.007.144v.95h3.347v-.95c0-.923-.75-1.674-1.673-1.674z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2799.8fa967b9.js b/pr-preview/pr-186/assets/js/2799.8fa967b9.js new file mode 100644 index 000000000..e979b42cc --- /dev/null +++ b/pr-preview/pr-186/assets/js/2799.8fa967b9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2799; +exports.ids = [2799]; +exports.modules = { + +/***/ 2799: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_cyber_security: () => (/* binding */ AlertCyberSecurity) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertCyberSecurity = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .98l9.5 2.171v7.998c0 5.693-3.822 10.758-9.294 12.322L12 23.53l-.206-.058C6.322 21.907 2.5 16.841 2.5 11.15V3.152L12 .98zm0 5.145a2.927 2.927 0 00-2.918 2.752l-.005.171v.953H8v4l.007.144a1.5 1.5 0 001.348 1.349l.145.007h5l.145-.007a1.5 1.5 0 001.348-1.35l.007-.143v-4h-1.077v-.952l-.005-.172A2.927 2.927 0 0012 6.125zm0 1.25c.874 0 1.594.674 1.667 1.53l.006.144V10h-3.346v-.952l.006-.145A1.675 1.675 0 0112 7.375z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .98l9.5 2.173v7.998c0 5.587-3.684 10.572-8.997 12.232l-.297.089-.206.058-.206-.058c-5.373-1.536-9.154-6.447-9.29-12.012l-.004-.31V3.154L12 .98zm0 1.54L4 4.349v6.802c0 4.953 3.278 9.37 8 10.817 4.627-1.417 7.869-5.689 7.996-10.52L20 11.15V4.349l-8-1.83zm0 3.605a2.928 2.928 0 012.918 2.752l.005.172v.95H16v4a1.5 1.5 0 01-1.355 1.494l-.145.007h-5a1.5 1.5 0 01-1.493-1.356L8 14v-4h1.076v-.951A2.928 2.928 0 0112 6.125zm0 1.25c-.874 0-1.594.674-1.667 1.53l-.007.144v.95h3.347v-.95c0-.923-.75-1.674-1.673-1.674z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertCyberSecurity.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2840.70314279.js b/pr-preview/pr-186/assets/js/2840.70314279.js new file mode 100644 index 000000000..59daa2c93 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2840.70314279.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2840; +exports.ids = [2840]; +exports.modules = { + +/***/ 42840: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_wifi_manual_login: () => (/* binding */ HomeWifiManualLogin) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomeWifiManualLogin = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.006 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.399c.15.682.394 1.329.722 1.924a4.494 4.494 0 00-3.502 2.163l-.11.195L6.6 16.394a6.49 6.49 0 014.326-2.793zm7.018-7.226a5.687 5.687 0 110 11.375 5.687 5.687 0 010-11.375zm.512 7.069v1.153h-1.154v-1.153h1.154zm-7.013-4.428a7.118 7.118 0 00-.611 2.062 8.985 8.985 0 00-5.802 3.251l-.189.241-1.408-1.46a10.98 10.98 0 018.01-4.094zm6.517.312c.92 0 1.645.61 1.645 1.514 0 .552-.265.88-.546 1.147l-.309.283c-.16.152-.291.304-.33.495l-.012.132h-1.059v-.16c0-.529.289-.816.578-1.058l.212-.176c.203-.174.366-.35.366-.613 0-.351-.219-.546-.545-.546-.3 0-.502.17-.563.508l-.015.118h-1.099c.024-.887.618-1.644 1.677-1.644zM12.006 4.5c1.469 0 2.889.205 4.236.588a7.16 7.16 0 00-2.922 1.479 13.465 13.465 0 00-11.404 4.47l-.229.263L.293 9.854A15.464 15.464 0 0112.006 4.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.006 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.399c.15.682.394 1.329.722 1.924a4.494 4.494 0 00-3.502 2.163l-.11.195L6.6 16.394a6.49 6.49 0 014.326-2.793zm7.018-7.226a5.687 5.687 0 110 11.375 5.687 5.687 0 010-11.375zm0 1.5a4.193 4.193 0 00-4.188 4.187 4.193 4.193 0 004.188 4.188 4.192 4.192 0 004.187-4.188 4.192 4.192 0 00-4.187-4.187zm.512 5.569v1.153h-1.154v-1.153h1.154zm-7.013-4.428a7.118 7.118 0 00-.611 2.062 8.985 8.985 0 00-5.802 3.251l-.189.241-1.408-1.46a10.98 10.98 0 018.01-4.094zm6.517.312c.92 0 1.645.61 1.645 1.514 0 .552-.265.88-.546 1.147l-.309.283c-.16.152-.291.304-.33.495l-.012.132h-1.059v-.16c0-.529.289-.816.578-1.058l.212-.176c.203-.174.366-.35.366-.613 0-.351-.219-.546-.545-.546-.3 0-.502.17-.563.508l-.015.118h-1.099c.024-.887.618-1.644 1.677-1.644zM12.006 4.5c1.469 0 2.889.205 4.236.588a7.16 7.16 0 00-2.922 1.479 13.465 13.465 0 00-11.404 4.47l-.229.263L.293 9.854A15.464 15.464 0 0112.006 4.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomeWifiManualLogin.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28434.712324cc.js b/pr-preview/pr-186/assets/js/28434.712324cc.js new file mode 100644 index 000000000..44b45a42e --- /dev/null +++ b/pr-preview/pr-186/assets/js/28434.712324cc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28434],{28434:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_weather_overcast:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M15.288 11.384c1.133 0 2.226.375 3.12 1.066.213-.045.421-.067.628-.067a3.276 3.276 0 013.255 2.934A3.614 3.614 0 0124 18.386a3.618 3.618 0 01-3.422 3.609l-.192.005h-7.954A3.936 3.936 0 018.5 18.068c0-1.43.783-2.744 2.02-3.433a5.104 5.104 0 014.768-3.251zM11.851 1.26a6.788 6.788 0 016.389 4.485A5.188 5.188 0 0121 10.327c0 .391-.047.771-.13 1.138a4.576 4.576 0 00-2.133-.372 6.444 6.444 0 00-3.449-1.01 6.375 6.375 0 00-5.798 3.662 5.203 5.203 0 00-1.448 1.492l-.153.254-3.446-.004C1.972 15.355 0 13.297 0 10.777 0 9.07.923 7.501 2.384 6.67c.124-2.225 1.962-3.996 4.204-3.996.33 0 .658.04.983.12a6.755 6.755 0 014.28-1.533z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M15.288 11.384c1.133 0 2.226.375 3.12 1.066.213-.045.421-.067.628-.067a3.276 3.276 0 013.255 2.934A3.615 3.615 0 0124 18.386a3.618 3.618 0 01-3.422 3.609l-.192.005h-7.954A3.936 3.936 0 018.5 18.068c0-1.43.783-2.744 2.02-3.433a5.104 5.104 0 014.768-3.251zm0 1.5a3.61 3.61 0 00-3.383 2.329l-.066.185-.101.318-.304.136A2.436 2.436 0 0010 18.069a2.435 2.435 0 002.272 2.427l.16.005h7.954a2.116 2.116 0 002.114-2.114c0-.778-.43-1.49-1.11-1.858l-.149-.073-.47-.209.027-.472c.013-.35-.02-.674-.26-1.057a1.775 1.775 0 00-1.207-.81c-.383-.065-.676.012-.976.115l-.305.107-.327-.298a3.611 3.611 0 00-2.435-.947zm-3.45-11.583a6.816 6.816 0 016.405 4.44A5.191 5.191 0 0121 10.319c0 .325-.034.642-.091.95a4.662 4.662 0 00-1.46-.365c.03-.191.051-.386.051-.585a3.69 3.69 0 00-1.987-3.265l-.185-.09-.304-.137-.102-.317A5.322 5.322 0 0011.84 2.8c-1.233 0-2.423.43-3.38 1.215l-.2.174-.328.297-.418-.143a2.767 2.767 0 00-.894-.151 2.766 2.766 0 00-2.757 2.594l-.005.168.03.641-.466.208A3.244 3.244 0 001.5 10.761a3.243 3.243 0 003.055 3.234L4.74 14h4.1a5.454 5.454 0 00-1.051 1.262l-.136.238H4.739A4.744 4.744 0 010 10.761c0-1.699.914-3.259 2.367-4.1a4.267 4.267 0 014.252-3.967c.32 0 .64.037.955.11a6.815 6.815 0 014.265-1.502z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28459.2b264546.js b/pr-preview/pr-186/assets/js/28459.2b264546.js new file mode 100644 index 000000000..646c85b1c --- /dev/null +++ b/pr-preview/pr-186/assets/js/28459.2b264546.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28459],{28459:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_content_digital_media:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M5.355 11.5a8.76 8.76 0 007.598 4.994l.297.006h.25v5.835a1.085 1.085 0 01-1.752.856l-.098-.086L9.55 21H2.355a1.855 1.855 0 01-1.85-1.71L.5 19.145V11.5h4.855zM19.5 10.06l3.995 2.345v1.83l-2.5-.625v6.255c0 1.95-1.378 2.362-2.27 2.353l-.19-.008c-1.35-.11-2.43-1.055-2.415-2.155.015-1.1 1.12-1.92 2.47-1.83.235.015.466.059.69.13l.22.08V10.06zM8.524 2.259a7.245 7.245 0 0111.918 6.324l-.037.272L18 7.445v5.775A7.245 7.245 0 118.524 2.259zM11.5 5.17v5.33l4.615-2.665L11.5 5.17z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M5.355 11.5c.204.424.44.832.705 1.216l.205.284H2v6.145c0 .17.122.314.284.348l.071.007h7.815L12 21.33V16.4c.41.06.825.1 1.255.105l.25-.015v5.85a1.081 1.081 0 01-1.753.852l-.097-.087L9.55 21H2.355a1.854 1.854 0 01-1.85-1.71L.5 19.145V11.5h4.855zM19.5 10.06l4 2.345v1.83l-2.51-.635v6.255c0 1.955-1.378 2.367-2.27 2.358l-.19-.008c-1.345-.11-2.425-1.055-2.41-2.155.02-1.1 1.12-1.92 2.47-1.83.24.019.474.066.695.134l.215.076v-8.37zM13.25.5a7.249 7.249 0 017.25 7.25c0 .281-.023.56-.057.833l-.038.272-1.42-.835c.005-.09.015-.18.015-.27C19 4.58 16.42 2 13.25 2S7.5 4.58 7.5 7.75s2.58 5.75 5.75 5.75a5.75 5.75 0 004.611-2.32l.139-.195v2.235A7.224 7.224 0 0113.25 15 7.249 7.249 0 016 7.75 7.249 7.249 0 0113.25.5zM11.5 5.17l4.615 2.665L11.5 10.5V5.17z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28480.471a1316.js b/pr-preview/pr-186/assets/js/28480.471a1316.js new file mode 100644 index 000000000..a1bd7ecd9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/28480.471a1316.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28480],{28480:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_mail_opened:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M15 7.47H9a.75.75 0 000 1.5h6a.75.75 0 000-1.5zm-3 9.607L.5 10.717v9.753c0 1.655 1.345 3 3 3h17c1.654 0 3-1.345 3-3v-9.753L12 17.077zM5.5 4.97h13v6.799l4.929-2.726L20 6.115V3.47h-3.096l-2.38-2.034a3.871 3.871 0 00-5.048 0L7.095 3.47H4v2.645L.571 9.043 5.5 11.769V4.97zm9.5 5.5H9a.75.75 0 000 1.5h6a.75.75 0 000-1.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M20 6.144V3.5h-3.096l-2.38-2.034a3.869 3.869 0 00-5.048 0L7.096 3.5H4v2.644L.5 9.134V20.5c0 1.654 1.345 3 3 3h17c1.654 0 3-1.346 3-3V9.134L20 6.144zM5.5 5h13v6.799L12 15.393l-6.5-3.595V5zM22 20.5c0 .827-.673 1.5-1.5 1.5h-17c-.827 0-1.5-.673-1.5-1.5v-8.923l10 5.53 10-5.53V20.5zM9 9h6a.75.75 0 100-1.5H9A.75.75 0 109 9zm6.75 2.25a.75.75 0 00-.75-.75H9A.75.75 0 109 12h6a.75.75 0 00.75-.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28540.14600a2f.js b/pr-preview/pr-186/assets/js/28540.14600a2f.js new file mode 100644 index 000000000..966bcb63b --- /dev/null +++ b/pr-preview/pr-186/assets/js/28540.14600a2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28540],{28540:(l,t,i)=>{i.r(t),i.d(t,{scale_icon_communication_landing_mobile_contact_client:()=>a});var e=i(90936);const a=class{constructor(l){(0,e.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M20 1a3 3 0 012.996 2.824L23 4v12a3 3 0 01-2.824 2.995L20 19h-5a2.998 2.998 0 01-2.73-1.761l.23.011a6.706 6.706 0 004.773-1.977 6.76 6.76 0 000-9.546A6.706 6.706 0 0012.5 3.75c-.164 0-.327.013-.49.023a2.998 2.998 0 012.815-2.768L15.001 1h5zm-1 1.5h-3V4h3V2.5zM5.639 6.09l.275.053.487.102.991 5.121-1.677.843a.343.343 0 00-.164.427l.065.171.155.394.09.219.206.474c.074.164.153.335.237.51l.13.264c.224.444.452.853.66 1.204l.238.39c.075.12.144.23.207.326a.344.344 0 00.372.148l.068-.025 1.676-.844 3.52 3.85-.207.452c-.633 1.378-1.509 2.217-2.605 2.491a3.162 3.162 0 01-.774.094c-.987 0-1.862-.435-2.375-.759l-.21-.14-.154-.11C5 20.34 3.636 18.11 2.82 16.485c-.818-1.624-1.797-4.047-1.82-6.371l.002-.164.01-.214c.004-.078.012-.164.022-.255l.04-.29c.124-.758.45-1.758 1.286-2.443.764-.626 1.775-.86 3.01-.698l.268.04zm10.045 1.228a4.5 4.5 0 11-6.366 6.364 4.5 4.5 0 016.366-6.364zm-3.182.606a.539.539 0 00-.533.452l-.007.088V9.96h-1.497a.54.54 0 00-.088 1.073l.088.007h1.497v1.496a.539.539 0 001.073.088l.007-.088V11.04h1.496a.538.538 0 00.54-.54.54.54 0 00-.453-.533l-.087-.007H13.04V8.464a.54.54 0 00-.54-.54z","fill-rule":"evenodd"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M5.638 6.09l.275.053.487.102.991 5.121-1.677.843a.343.343 0 00-.164.427l.065.171.155.394.09.219.206.474c.074.164.153.335.237.51l.13.264c.224.444.452.853.66 1.204l.238.39c.075.12.144.23.207.326a.344.344 0 00.372.148l.068-.025 1.676-.844 3.52 3.85-.207.452c-.633 1.378-1.509 2.217-2.605 2.491a3.162 3.162 0 01-.774.094c-.987 0-1.862-.435-2.375-.759l-.21-.14-.154-.11C5 20.34 3.636 18.11 2.82 16.485c-.818-1.624-1.797-4.047-1.82-6.371l.002-.164.01-.214c.004-.078.012-.164.022-.255l.04-.29c.124-.758.45-1.758 1.286-2.443.764-.626 1.775-.86 3.01-.698l.268.04zm-.99 1.41c-.558 0-1.006.136-1.338.408-.508.417-.699 1.106-.77 1.609l-.027.253-.011.2-.002.13c.016 1.588.605 3.616 1.658 5.712 1.055 2.095 2.332 3.778 3.597 4.737l.098.071.153.102c.417.264 1.226.674 1.992.483.475-.12.898-.464 1.263-1.03l.12-.196-2.067-2.26-.662.332a1.841 1.841 0 01-2.373-.647 22.014 22.014 0 01-1.186-2.062 21.789 21.789 0 01-.948-2.183 1.84 1.84 0 01.76-2.214l.136-.076.661-.333L5.12 7.53a4.145 4.145 0 00-.472-.029zM20.001 1a3 3 0 012.995 2.824L23 4v12a3 3 0 01-2.824 2.995L20 19h-5a3 3 0 01-2.96-2.522c.153.011.305.022.46.022.36 0 .714-.036 1.06-.098a1.5 1.5 0 001.304 1.092L15 17.5h5c.778 0 1.42-.596 1.493-1.356L21.5 16V4c0-.778-.596-1.42-1.356-1.493L20 2.5h-1V4h-3V2.5h-1c-.78 0-1.42.596-1.493 1.356L13.5 4v.589a6.045 6.045 0 00-1-.089l-.251.007-.25.017V4a3 3 0 012.825-2.995L15 1h5zm-4.318 6.318a4.5 4.5 0 11-6.366 6.364 4.5 4.5 0 016.366-6.364zm-3.182.606a.539.539 0 00-.533.452l-.007.088V9.96h-1.497a.54.54 0 00-.088 1.073l.088.007h1.497v1.496a.539.539 0 001.073.088l.007-.088V11.04h1.496a.538.538 0 00.54-.54.54.54 0 00-.453-.533l-.087-.007H13.04V8.464a.54.54 0 00-.54-.54z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};a.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28567.7040da05.js b/pr-preview/pr-186/assets/js/28567.7040da05.js new file mode 100644 index 000000000..6456ffe16 --- /dev/null +++ b/pr-preview/pr-186/assets/js/28567.7040da05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28567],{28567:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_news:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M22.5 3v15.5a3 3 0 01-3 3h-15a3 3 0 01-3-3V3h21zm-4.75 13h-4a.75.75 0 000 1.5h4a.75.75 0 100-1.5zM11 11H5.5v6.5H11V11zm6.75 2.5h-4a.75.75 0 100 1.5h4a.75.75 0 100-1.5zm0-2.5h-4a.75.75 0 000 1.5h4a.75.75 0 100-1.5zm.75-4h-13v2h13V7z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M22.5 3v15.5a3.01 3.01 0 01-2.824 2.995l-.176.005h-15a3.01 3.01 0 01-2.995-2.824L1.5 18.5V3h21zM21 4.5H3v14c0 .8.576 1.423 1.352 1.493L4.5 20h15c.8 0 1.423-.576 1.493-1.352L21 18.5v-14zM17.75 16c.4 0 .75.35.75.75a.772.772 0 01-.651.743l-.099.007h-4c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L13.75 16h4zM11 11v6.5H5.5V11H11zm6.75 2.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L17.75 15h-4c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743l.099-.007h4zm0-2.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743l-.099.007h-4c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L13.75 11h4zm.75-4v2h-13V7h13z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2858.b5c8bcff.js b/pr-preview/pr-186/assets/js/2858.b5c8bcff.js new file mode 100644 index 000000000..fabf73559 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2858.b5c8bcff.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2858; +exports.ids = [2858]; +exports.modules = { + +/***/ 22858: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_bank: () => (/* binding */ ContentBank) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentBank = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13.25 4.75a1.25 1.25 0 10-2.5 0 1.25 1.25 0 002.5 0zM23.5 4.5v4H.5v-4L12 .5l11.5 4zm0 15.5v2H.5v-2a3 3 0 012-2.826V10h3v7h2v-7H11v7h2v-7h3.5v7h2v-7h3v7.174c1.165.412 2 1.52 2 2.826z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 3.5a1.25 1.25 0 100 2.498A1.25 1.25 0 0012 3.5zM2 7V5.566l10-3.478 10 3.478V7H2zm15 10h3V8.5h-3V17zm-6.5 0h3V8.5h-3V17zM4 17h3V8.5H4V17zm18 3v.5H2V20c0-.827.674-1.5 1.5-1.5h17c.828 0 1.5.673 1.5 1.5zm1.5-11.5v-4L12 .5.5 4.5v4h2v8.674A3 3 0 00.5 20v2h23v-2a3 3 0 00-2-2.826V8.5h2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentBank.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28626.1d412d62.js b/pr-preview/pr-186/assets/js/28626.1d412d62.js new file mode 100644 index 000000000..bd4304113 --- /dev/null +++ b/pr-preview/pr-186/assets/js/28626.1d412d62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28626],{28626:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_communication_spam:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M17.75 11.498a6.25 6.25 0 110 12.498 6.25 6.25 0 010-12.498zm-3.53 4.274a4.016 4.016 0 00-.518 1.975 4.054 4.054 0 004.049 4.05 4.02 4.02 0 001.752-.401l.224-.117-5.507-5.507zm3.53-2.073c-.627 0-1.221.145-1.752.4l-.223.117 5.507 5.507a4.018 4.018 0 00.519-1.976 4.054 4.054 0 00-4.05-4.048zm1.248-7.83v4.239a7.76 7.76 0 00-1.247-.11 7.749 7.749 0 00-7.683 6.75l-.028.249H2.478A2.474 2.474 0 01.005 14.69L0 14.528v-8.66l7.309 6.245a3.376 3.376 0 004.208.136l.17-.136 7.31-6.244zm0-2.87v.898l-8.283 7.076c-.636.542-1.621.576-2.3.102l-.131-.102L0 3.897v-.898h18.998z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M17.75 11.5a6.25 6.25 0 110 12.499 6.25 6.25 0 010-12.5zm-3.53 4.274a4.006 4.006 0 00-.52 1.976 4.054 4.054 0 004.05 4.05 4.02 4.02 0 001.752-.401l.224-.117-5.507-5.508zm3.53-2.073c-.628 0-1.222.144-1.752.4l-.224.117 5.508 5.509a4.034 4.034 0 00.518-1.977 4.054 4.054 0 00-4.05-4.05zM19 2.998v7.111a7.685 7.685 0 00-1.25-.11l-.125.005-.125.007v-2.86l-5.81 4.962a3.357 3.357 0 01-4.185.154l-.195-.153L1.5 7.151v7.378c0 .496.378.907.864.963l.114.006h7.856c-.11.363-.193.735-.249 1.116l-.047.385h-7.56a2.475 2.475 0 01-2.473-2.308L0 14.53V3h19zm-1.5 1.5h-16v.68l6.785 5.794c.66.565 1.6.601 2.295.106l.136-.106L17.5 5.178V4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/287a85fa.78ffb7c6.js b/pr-preview/pr-186/assets/js/287a85fa.78ffb7c6.js new file mode 100644 index 000000000..03ba5f722 --- /dev/null +++ b/pr-preview/pr-186/assets/js/287a85fa.78ffb7c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28423],{6375:e=>{e.exports=JSON.parse('{"tag":{"label":"cloud-create","permalink":"/docs-next/pr-preview/pr-186/docs/tags/cloud-create","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":7,"items":[{"id":"best-practices/management-and-deployment/cloud-create/cloud-create","title":"Cloud Create","description":"Cloud Create is a free-to-use Development and Management Platform, which enables cloud developers to create applications on Open Telekom Cloud fast.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets","title":"Design with dynamic subnets","description":"The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/multi-region","title":"Design with static subnets in multiple regions","description":"The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute2 connects to Subnet2). The compute in the first region (e.g., Compute) has access to the internet.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-region"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy","title":"How to deploy your application on Google Cloud","description":"Prerequisites","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy"},{"id":"best-practices/management-and-deployment/cloud-create/google-cloud/google","title":"Multicloud Google Cloud","description":"This section shows how to deploy your application on Google Cloud. You can create your application in multiple regions. Cloud Create can auto-generate one subnet for each region or you can design the subnets manually.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google"},{"id":"best-practices/management-and-deployment/cloud-create/service-catalogs/openshift-template","title":"OpenShift Template","description":"The following tutorial shows you how to register a (trial) subscription key from Red Hat and uses it to create an OpenShift cluster using the OpenShift template.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/openshift-template"},{"id":"best-practices/management-and-deployment/cloud-create/service-catalogs/service-catalogs","title":"Service catalogs","description":"In addition to infrastructure components (e.g., compute, network, storage), Cloud Create provides most frequently used services on the application layer that are ready-to-deploy (e.g., Prometheus for monitoring). This section shows how to use these services in the editor.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2885.47053e0f.js b/pr-preview/pr-186/assets/js/2885.47053e0f.js new file mode 100644 index 000000000..d98e1ee06 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2885.47053e0f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2885; +exports.ids = [2885]; +exports.modules = { + +/***/ 32885: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_cloudy_sleet: () => (/* binding */ WeatherCloudySleet) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherCloudySleet = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.599 19.171a.138.138 0 01.23.077v.046l-.47 3a1.2 1.2 0 01-1.372 1c-.954-.149-1.337-1.29-.713-1.985l.087-.088 2.238-2.05zm-5.079-3.35L7.201 17l.68-1.179 1.04.6-.68 1.178H9.6v1.2H8.24l.68 1.178-1.04.6L7.2 19.4l-.68 1.179-1.04-.6.681-1.18h-1.36V17.6h1.36l-.68-1.18 1.04-.6zm7.356-2.006a.12.12 0 01.197.062l.002.045-.522 3.333a1.302 1.302 0 11-2.256-1.068l.091-.092 2.488-2.28zM10.507 5.95a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753 4.236 4.236 0 01-3.168 4.1l.004-.02.522-3.334a1.42 1.42 0 00-2.243-1.363l-.117.096-2.49 2.281a2.626 2.626 0 00-.283.303l-.12.165L7.7 14.21a1 1 0 00-.881-.06l-.12.058-2.698 1.552a.999.999 0 00-.494.748l-.007.118v.802a3.861 3.861 0 01-2.7-3.683c0-1.4.755-2.684 1.952-3.366.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.255zm9.24 4.596a.6.6 0 01.765-.069l.083.07.85.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zM16.601 4.4c1.654 0 3 1.345 3 3 0 1.132-.63 2.118-1.558 2.63a5.43 5.43 0 00-1.344-1.24 6.768 6.768 0 00-2.628-2.996 2.997 2.997 0 012.53-1.394zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.098-1.192l.098-.008h1.2zM11.757 2.556a.6.6 0 01.765-.069l.084.07.849.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zm8.84 0a.6.6 0 01.917.766l-.07.083-.848.848a.596.596 0 01-.849 0 .6.6 0 01-.07-.765l.07-.083.85-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.193.097L16 2.35v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.828 19.294l-.47 3a1.201 1.201 0 01-1.25 1.013l-.122-.013c-.995-.155-1.368-1.392-.626-2.072l2.238-2.05a.138.138 0 01.23.122zM6.52 15.821l.68 1.18.681-1.179 1.04.6L8.24 17.6H9.6v1.2H8.239l.68 1.178-1.039.6L7.2 19.4l-.68 1.18-1.04-.601.681-1.179H4.8v-1.2h1.361l-.68-1.179 1.039-.6zm7.554-1.899l-.522 3.334a1.302 1.302 0 01-1.354 1.098l-.132-.014c-1.078-.168-1.483-1.508-.678-2.245l2.487-2.28a.12.12 0 01.199.107zM10.5 5.982a5.577 5.577 0 015.242 3.638A4.246 4.246 0 0118 13.364a4.24 4.24 0 01-3.273 4.121l.011-.044.2-1.278a3.04 3.04 0 001.862-2.8 3.044 3.044 0 00-1.613-2.68l-.178-.087-.243-.11-.082-.253A4.381 4.381 0 0010.5 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 13.727c0 1.028.584 1.921 1.437 2.368l.163.079v1.272a3.877 3.877 0 01-2.8-3.719c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 5.981zm10.012 4.495l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 01.766-.918zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-1.406-4.244a.6.6 0 01.07.766l-.07.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849a.6.6 0 01.848 0zm-8.922-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 01.765-.918zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherCloudySleet.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28995.2e6a2497.js b/pr-preview/pr-186/assets/js/28995.2e6a2497.js new file mode 100644 index 000000000..7e59c03a7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/28995.2e6a2497.js @@ -0,0 +1,2 @@ +/*! For license information please see 28995.2e6a2497.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28995],{88114:(e,t,o)=>{o.d(t,{c:()=>s});var n,a,i,s=(n=function(e){!function(){var t={}.hasOwnProperty;function o(){for(var e=[],n=0;n{o.r(t),o.d(t,{scale_notification_message:()=>r});var n=o(90936),a=o(88114),i=o(94200),s=o(91779);const r=class{constructor(e){(0,n.r)(this,e),this.scaleClose=(0,n.c)(this,"scale-close",7),this.variant="informational",this.dismissible=!1,this.autoHide=!1,this.autoHideDuration=3e3,this.closeButtonLabel="close",this.closeButtonTitle="close",this.close=()=>{this.opened=!1,(0,s.e)(this,"scaleClose")}}componentWillLoad(){this.hasSlotText=!!this.hostElement.querySelector("[slot=text]")}componentDidRender(){!0===this.autoHide&&setTimeout(this.close,this.autoHideDuration)}componentDidUpdate(){this.hasSlotText=!!this.hostElement.querySelector("[slot=text]")}connectedCallback(){(0,i.s)({source:this.hostElement,type:"warn"})}async open(){this.opened=!0}handleIcons(){if(this.variant)switch(this.variant){case"success":return(0,n.h)("scale-icon-action-success",{class:"notification-message__icon-success",color:"#187431","aria-hidden":"true"});case"informational":return(0,n.h)("scale-icon-alert-information",{class:"notification-message__icon-information","aria-hidden":"true"});case"error":return(0,n.h)("scale-icon-alert-error",{class:"notification-message__icon-error","aria-hidden":"true"});case"warning":return(0,n.h)("scale-icon-alert-warning",{class:"notification-message__icon-information",color:"#AE461C","aria-hidden":"true"})}}render(){return this.opened?(0,n.h)(n.a,null,(0,n.h)("div",{role:"alert",style:{display:""+(this.opened?"":"none")},part:this.getBasePartMap(),class:this.getCssClassMap(),tabindex:"0"},(0,n.h)("div",{part:"container",class:"notification-message__container"},this.handleIcons(),(0,n.h)("div",{part:"heading",class:"notification-message__heading"},(0,n.h)("slot",null,"\u2003"),this.dismissible&&(0,n.h)("button",{part:"button-dismissable",type:"button",class:"notification-message__icon-close",onClick:()=>this.close(),tabindex:0,"aria-label":this.closeButtonLabel,title:this.closeButtonTitle,onKeyDown:e=>{"Enter"===e.key&&this.close()}},(0,n.h)("scale-icon-action-circle-close",null))),this.hasSlotText&&(0,n.h)("div",{part:"text",class:"notification-message__text"},(0,n.h)("slot",{name:"text"}))))):null}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(e){const t="notification-message",o="basePart"===e?"":`${t}--`;return(0,a.c)(t,this.variant&&`${o}variant-${this.variant}`)}get hostElement(){return(0,n.g)(this)}};r.style=":host{--width:100%;--radius:var(--telekom-radius-standard);--border:var(--telekom-line-weight-standard) solid transparent;--background-error:var(--telekom-color-functional-danger-subtle);--background-warning:var(--telekom-color-functional-warning-subtle);--background-informational:var(\n --telekom-color-functional-informational-subtle\n );--background-success:var(--telekom-color-functional-success-subtle)}.notification-message{border:var(--border);border-radius:var(--radius);width:var(--width);position:relative}.notification-message--variant-error{background:var(--background-error)}.notification-message--variant-warning{background-color:var(--background-warning)}.notification-message--variant-informational{background-color:var(--background-informational)}.notification-message--variant-success{background-color:var(--background-success)}.notification-message__heading{margin:14px 48px 14px 48px;font-weight:var(--telekom-typography-font-weight-bold);line-height:var(--telekom-typography-line-spacing-standard)}.notification-message__text{margin:8px 48px 15px 48px}::slotted(*){font-weight:var(--telekom-typography-font-weight-regular)}.notification-message__icon-close{position:absolute;top:8px;right:13.5px;border:none;cursor:pointer;margin:0;padding:0;background:transparent;color:var(--telekom-color-text-and-icon-standard)}.notification-message__icon-close svg{height:19px;width:19px;padding:6.5px;border-radius:20%}.notification-message__icon-close:hover svg{background-color:hsl(0, 0%, 100%);color:var(--telekom-color-text-and-icon-primary-hovered)}.notification-message__icon-success{position:absolute;top:12.5px;left:17px;height:20px;width:20px;color:var(--telekom-color-text-and-icon-functional-success)}.notification-message__icon-error{position:absolute;top:12px;left:17px;height:20px;width:20px;color:var(--telekom-color-text-and-icon-functional-danger)}.notification-message__icon-information{position:absolute;top:12px;left:17px;height:20px;width:20px;color:var(--telekom-color-text-and-icon-functional-informational)}@media screen and (forced-colors: active), (-ms-high-contrast: active){.notification-message__icon-close{color:hsl(0, 0%, 100%)}.notification-message{border:1px solid hsl(0, 0%, 100%)}}"},94200:(e,t,o)=>{o.d(t,{s:()=>i});const n={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},a={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function i({tag:e="WIP",extraMessage:t=null,message:o=null,source:i=null,type:s="info"}){(0,console[s])(`%c scale \u2013 ${n[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${o||a[e]} ${t?"\n"+t:""}\n `,null!==i?"\nsource:":"","object"==typeof i?i:`${i}`,null!==i?"\n\n":"")}},91779:(e,t,o)=>{o.d(t,{a:()=>d,b:()=>s,c:()=>a,e:()=>i,g:()=>l,h:()=>n,i:()=>r});const n=e=>!!e.shadowRoot&&!!e.attachShadow,a=e=>{let t=document.styleSheets[0];if(!t){const e=document.createElement("style");document.head.appendChild(e),t=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),t.insertRule("html"+e+"{}",0),t.deleteRule(0),!0}catch(o){return!1}}()};function i(e,t,o){const n=t+"Legacy",a=[];return void 0!==e[n]&&a.push(e[n].emit(o)),a.push(e[t].emit(o)),a}function s(e,t){let o=e.target;const n=null!=o.shadowRoot,a=n?e.composedPath():[];do{if(o===t)return!1;o=n?a.shift():o.parentNode}while(o);return!0}const r=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let c=0;function l(){return c++}const d=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/28995.2e6a2497.js.LICENSE.txt b/pr-preview/pr-186/assets/js/28995.2e6a2497.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/28995.2e6a2497.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/2907.9af6019a.js b/pr-preview/pr-186/assets/js/2907.9af6019a.js new file mode 100644 index 000000000..07dd09321 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2907.9af6019a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[2907],{2907:(t,i,e)=>{e.r(i),e.d(i,{scale_icon_navigation_double_left:()=>s,scale_icon_navigation_double_right:()=>a});var l=e(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M19.814 18.28a1.249 1.249 0 00-.208-1.755l-5.735-4.523 5.735-4.522a1.249 1.249 0 10-1.547-1.963l-8.224 6.485 8.224 6.486a1.248 1.248 0 001.755-.208m-7.594.476c-.271 0-.544-.088-.773-.268l-8.223-6.486 8.223-6.485a1.25 1.25 0 011.548 1.963L7.26 12.002l5.734 4.523a1.25 1.25 0 01-.775 2.231","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M19.294 16.911l-6.22-4.91 6.22-4.913a.75.75 0 10-.928-1.178L10.652 12l7.712 6.088a.75.75 0 10.929-1.177m-6.69 0l-6.221-4.91 6.22-4.913a.751.751 0 00-.93-1.178L3.963 12l7.712 6.088a.748.748 0 001.054-.124.75.75 0 00-.124-1.053","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}";const a=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M5.943 18.488l8.224-6.485-8.224-6.485A1.25 1.25 0 004.395 7.48l5.735 4.522-5.735 4.522a1.249 1.249 0 00.775 2.232c.27 0 .544-.088.773-.27m5.838.27a1.249 1.249 0 01-.775-2.232l5.735-4.522-5.735-4.522a1.25 1.25 0 011.548-1.963l8.224 6.485-8.224 6.485a1.243 1.243 0 01-.773.269","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12.327 5.911a.75.75 0 10-.93 1.178L17.62 12l-6.222 4.911a.75.75 0 10.931 1.177L20.04 12l-7.712-6.089zm-6.69 0a.75.75 0 10-.93 1.178L10.927 12l-6.22 4.911a.75.75 0 00.93 1.177L13.347 12 5.636 5.911z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};a.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2907.b27cb89b.js b/pr-preview/pr-186/assets/js/2907.b27cb89b.js new file mode 100644 index 000000000..34325f0d2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2907.b27cb89b.js @@ -0,0 +1,87 @@ +"use strict"; +exports.id = 2907; +exports.ids = [2907]; +exports.modules = { + +/***/ 2907: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_double_left: () => (/* binding */ NavigationDoubleLeft), +/* harmony export */ scale_icon_navigation_double_right: () => (/* binding */ NavigationDoubleRight) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss$1 = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationDoubleLeft = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.814 18.28a1.249 1.249 0 00-.208-1.755l-5.735-4.523 5.735-4.522a1.249 1.249 0 10-1.547-1.963l-8.224 6.485 8.224 6.486a1.248 1.248 0 001.755-.208m-7.594.476c-.271 0-.544-.088-.773-.268l-8.223-6.486 8.223-6.485a1.25 1.25 0 011.548 1.963L7.26 12.002l5.734 4.523a1.25 1.25 0 01-.775 2.231", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.294 16.911l-6.22-4.91 6.22-4.913a.75.75 0 10-.928-1.178L10.652 12l7.712 6.088a.75.75 0 10.929-1.177m-6.69 0l-6.221-4.91 6.22-4.913a.751.751 0 00-.93-1.178L3.963 12l7.712 6.088a.748.748 0 001.054-.124.75.75 0 00-.124-1.053", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationDoubleLeft.style = iconCss$1; + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationDoubleRight = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.943 18.488l8.224-6.485-8.224-6.485A1.25 1.25 0 004.395 7.48l5.735 4.522-5.735 4.522a1.249 1.249 0 00.775 2.232c.27 0 .544-.088.773-.27m5.838.27a1.249 1.249 0 01-.775-2.232l5.735-4.522-5.735-4.522a1.25 1.25 0 011.548-1.963l8.224 6.485-8.224 6.485a1.243 1.243 0 01-.773.269", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.327 5.911a.75.75 0 10-.93 1.178L17.62 12l-6.222 4.911a.75.75 0 10.931 1.177L20.04 12l-7.712-6.089zm-6.69 0a.75.75 0 10-.93 1.178L10.927 12l-6.22 4.911a.75.75 0 00.93 1.177L13.347 12 5.636 5.911z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationDoubleRight.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/291.36427b94.js b/pr-preview/pr-186/assets/js/291.36427b94.js new file mode 100644 index 000000000..b0df63f17 --- /dev/null +++ b/pr-preview/pr-186/assets/js/291.36427b94.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 291; +exports.ids = [291]; +exports.modules = { + +/***/ 40291: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_device_watch: () => (/* binding */ DeviceDeviceWatch) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceDeviceWatch = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.19 20.875l-.08.3a2.5 2.5 0 01-2.234 1.82L14.7 23H9.3a2.5 2.5 0 01-2.357-1.657l-.053-.168-.08-.3h10.38zM15.97 3.5a4 4 0 013.995 3.8l.005.2v9a4 4 0 01-3.8 3.995l-.2.005H8.03a4 4 0 01-3.995-3.8l-.005-.2v-9a4 4 0 013.8-3.995l.2-.005h7.94zm5.53 7v3h-1.05v-3h1.05zM14.7.955a2.5 2.5 0 012.357 1.657l.053.168.08.3H6.81l.08-.3A2.5 2.5 0 019.124.96L9.3.956h5.4z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.5 10.5H20v-3c0-1.75-1.1-3.2-2.65-3.75l-.25-.9C16.8 1.75 15.8 1 14.7 1H9.3c-1.1 0-2.1.75-2.4 1.8l-.25.9C5.1 4.3 4 5.75 4 7.5v9c0 1.75 1.1 3.2 2.65 3.75l.25.9c.3 1.1 1.3 1.8 2.4 1.8h5.4c1.1 0 2.1-.75 2.4-1.8l.25-.9A4.004 4.004 0 0020 16.5v-3h1.5v-3zm-3 6c0 1.4-1.1 2.5-2.5 2.5H8c-1.4 0-2.5-1.1-2.5-2.5v-9C5.5 6.1 6.6 5 8 5h8c1.4 0 2.5 1.1 2.5 2.5v9z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceDeviceWatch.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/29231.54774d22.js b/pr-preview/pr-186/assets/js/29231.54774d22.js new file mode 100644 index 000000000..1027a4ff6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/29231.54774d22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[29231],{29231:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_action_search:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M10 4.125A5.88 5.88 0 0115.875 10a5.8 5.8 0 01-1.13 3.445l-.545.755-.755.545A5.8 5.8 0 0110 15.875a5.875 5.875 0 010-11.75M10 2a8 8 0 104.7 14.465l4.915 4.92c.49.487 1.28.487 1.77 0a1.26 1.26 0 000-1.77l-4.92-4.915A8 8 0 0010 2z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M21.4 19.6l-4.9-4.9a8.02 8.02 0 001.55-4.7c0-4.4-3.6-8-8-8S2 5.6 2 10s3.6 8 8 8c1.75 0 3.4-.55 4.7-1.55l4.9 4.9c.5.5 1.3.5 1.75 0 .5-.45.5-1.25.05-1.75zM3.5 10c0-3.6 2.9-6.5 6.5-6.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5-6.5-2.9-6.5-6.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/29253.31028eaf.js b/pr-preview/pr-186/assets/js/29253.31028eaf.js new file mode 100644 index 000000000..3cd7f8407 --- /dev/null +++ b/pr-preview/pr-186/assets/js/29253.31028eaf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[29253],{29253:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_home_wifi_connection_error:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M12 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.4a7.14 7.14 0 00.722 1.925 4.496 4.496 0 00-3.502 2.163l-.11.195-1.437-1.49a6.494 6.494 0 014.327-2.792zm7.017-7.224a5.686 5.686 0 110 11.374 5.687 5.687 0 010-11.374zm-6.5 2.64a7.125 7.125 0 00-.612 2.063 8.985 8.985 0 00-5.8 3.25l-.19.24-1.408-1.458a10.98 10.98 0 018.01-4.095zm7.838.744l-1.338 1.337L16.6 9.76a.683.683 0 00-.966.965l1.338 1.338-1.338 1.337a.683.683 0 00.966.965l1.337-1.337 1.338 1.337a.679.679 0 00.965 0 .683.683 0 000-.965l-1.338-1.337 1.338-1.338a.683.683 0 00-.965-.965zM12 4.5c1.468 0 2.89.206 4.235.587a7.16 7.16 0 00-2.92 1.48A13.466 13.466 0 001.91 11.036l-.23.265L.287 9.855A15.46 15.46 0 0112 4.5z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.4a7.14 7.14 0 00.722 1.925 4.496 4.496 0 00-3.502 2.163l-.11.195-1.437-1.49a6.494 6.494 0 014.327-2.792zm7.017-7.224a5.686 5.686 0 110 11.374 5.687 5.687 0 010-11.374zm.007 1.499a4.193 4.193 0 00-4.188 4.187 4.193 4.193 0 004.188 4.188 4.192 4.192 0 004.187-4.188 4.192 4.192 0 00-4.187-4.187zm-6.508 1.14a7.125 7.125 0 00-.61 2.064 8.985 8.985 0 00-5.801 3.25l-.19.24-1.408-1.458a10.98 10.98 0 018.01-4.095zm7.84.745l-1.339 1.337L16.6 9.76a.683.683 0 00-.966.965l1.338 1.338-1.338 1.337a.683.683 0 00.966.965l1.337-1.337 1.338 1.337a.679.679 0 00.965 0 .683.683 0 000-.965l-1.338-1.337 1.338-1.338a.683.683 0 00-.965-.965zM12 4.5c1.468 0 2.89.206 4.235.587a7.16 7.16 0 00-2.92 1.48A13.466 13.466 0 001.91 11.036l-.23.265L.287 9.855A15.46 15.46 0 0112 4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2926.1012232d.js b/pr-preview/pr-186/assets/js/2926.1012232d.js new file mode 100644 index 000000000..b4801b878 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2926.1012232d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2926; +exports.ids = [2926]; +exports.modules = { + +/***/ 62926: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_price_tag: () => (/* binding */ ContentPriceTag) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentPriceTag = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.445 1.535l8.78 1.3 1.295 8.78L12.215 21.92a3.052 3.052 0 01-4.153.155l-.167-.155-5.76-5.76a3.05 3.05 0 01-.133-4.179l.133-.141 10.31-10.305zM17.5 5.5a1 1 0 110 2 1 1 0 010-2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.445 1.535l8.78 1.3 1.295 8.78L12.215 21.92a3.052 3.052 0 01-4.153.155l-.167-.155-5.76-5.76a3.05 3.05 0 01-.133-4.179l.133-.141 10.31-10.305zm.525 1.59L3.195 12.9A1.543 1.543 0 002.74 14c0 .363.122.707.35.985l.105.115 5.765 5.76c.295.295.685.455 1.1.455.363 0 .707-.123.985-.35l.115-.105 9.77-9.77-1.03-6.935-6.93-1.03zM17.5 5.5a1 1 0 110 2 1 1 0 010-2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentPriceTag.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2934.a97765c4.js b/pr-preview/pr-186/assets/js/2934.a97765c4.js new file mode 100644 index 000000000..488873071 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2934.a97765c4.js @@ -0,0 +1,143 @@ +"use strict"; +exports.id = 2934; +exports.ids = [2934]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 12934: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_list: () => (/* binding */ List) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const listCss = ":host{--spacing-left:0;--spacing-left-nested:var(--telekom-spacing-composition-space-04)}.list{padding-left:var(--spacing-left)}.list--nested{margin-top:0;margin-bottom:0;padding-left:var(--spacing-left-nested)}"; + +const List = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.isNested = false; + /** (optional) Make the list ordered (ol) */ + this.ordered = false; + } + orderedChanged(newValue) { + this.propagatePropsToChildren(newValue); + } + componentDidLoad() { + this.propagatePropsToChildren(this.ordered); + } + connectedCallback() { + this.isNested = this.el.closest('scale-list-item') != null; + if (this.isNested) { + this.el.setAttribute('slot', 'nested'); + } + else { + this.el.removeAttribute('slot'); + } + } + propagatePropsToChildren(ordered) { + const items = Array.from(this.el.children).filter((child) => child.matches('scale-list-item')); + items.forEach((item, index) => { + item.ordered = ordered; + item.index = index + 1; + }); + } + render() { + const Tag = this.ordered ? 'ol' : 'ul'; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(Tag, { class: this.getCssClassMap(), part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', this.ordered && 'ordered', this.isNested && 'nested') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('list', this.ordered && 'list--type-ordered', this.isNested && 'list--nested'); + } + get el() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "ordered": ["orderedChanged"] + }; } +}; +List.style = listCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2936.085633fb.js b/pr-preview/pr-186/assets/js/2936.085633fb.js new file mode 100644 index 000000000..5188c9155 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2936.085633fb.js @@ -0,0 +1,131 @@ +"use strict"; +exports.id = 2936; +exports.ids = [2936]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 92936: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_loading_spinner: () => (/* binding */ LoadingSpinner) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const loadingSpinnerCss = ":host{display:inline-flex;--size-outer-small:24px;--size-outer-large:48px;--size-inner-small:24px;--size-inner-large:48px;--line-height-size-small:24px;--line-height-size-large:48px;--font:var(--telekom-text-style-ui-bold);--color-circle-primary:var(--telekom-color-primary-standard);--color-circle-primary-inner:var(--telekom-color-ui-subtle);--color-text-primary:var(--telekom-color-text-and-icon-additional);--color-circle-white:var(--telekom-color-ui-base);--color-circle-white-inner:var(--telekom-color-ui-regular);--color-text-white:var(--telekom-color-text-and-icon-white-standard);--spacing-vertical:var(--telekom-spacing-composition-space-05);--spacing-horizontal:var(--telekom-spacing-composition-space-06)}.sr-only{position:absolute;left:-10000px;overflow:hidden}.spinner{display:inline-flex;align-items:center}.spinner.spinner--alignment-vertical{flex-direction:column}.spinner .spinner__text{font:var(--telekom-text-style-ui-bold);color:var(--color-text-primary)}.spinner.spinner--variant-white .spinner__text{color:var(--color-text-white)}.spinner.spinner--alignment-horizontal .spinner__text{display:flex;align-self:center;margin-left:var(--spacing-horizontal)}.spinner.spinner--alignment-horizontal.spinner--size-small .spinner__text{line-height:var(--line-height-size-small)}.spinner.spinner--alignment-horizontal.spinner--size-large .spinner__text{line-height:var(--line-height-size-large)}.spinner.spinner--alignment-vertical .spinner__text{margin-top:var(--spacing-vertical)}.spinner.spinner--alignment-vertical.spinner--size-small .spinner__container{height:var(--size-inner-small);width:var(--size-inner-small)}.spinner.spinner--alignment-vertical.spinner--size-large .spinner__container{height:var(--size-outer-large);width:var(--size-outer-large)}.spinner.spinner--alignment-horizontal.spinner--size-small .spinner__container{height:var(--size-inner-small);width:var(--size-inner-small);text-align:left}.spinner.spinner--alignment-horizontal.spinner--size-large .spinner__container{height:var(--size-outer-large);width:var(--size-outer-large);text-align:left}.spinner .spinner__container{align-items:center;display:inline-flex}.spinner .spinner__container .spinner__circle{animation:rotate 2s linear infinite;z-index:2;position:absolute;width:var(--size-inner-small);height:var(--size-inner-small)}.spinner .spinner__container .spinner__circle-background{animation:rotate 2s linear infinite;position:absolute;width:var(--size-outer-small);height:var(--size-outer-small)}.spinner.spinner--size-large .spinner__container .spinner__circle-background{width:var(--size-outer-large);height:var(--size-outer-large)}.spinner.spinner--size-large .spinner__container .spinner__circle{width:var(--size-inner-large);height:var(--size-inner-large)}.spinner.spinner--variant-white .spinner__container .spinner__circle-background .path{stroke:var(--color-circle-white-inner)}.spinner .spinner__container .spinner__circle-background .path{stroke:var(--color-circle-primary-inner)}.spinner.spinner--variant-white .spinner__container .spinner__circle .path{stroke:white}.spinner .spinner__container .spinner__circle .path{animation:dash 1.5s ease-in-out infinite;stroke:var(--color-circle-primary)}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1, 150;stroke-dashoffset:0}50%{stroke-dasharray:90, 150;stroke-dashoffset:-35}100%{stroke-dasharray:90, 150;stroke-dashoffset:-124}}@media screen and (forced-colors: active), (-ms-high-contrast: active){.spinner .spinner__container .spinner__circle-background .path{stroke:none}.spinner .spinner__container .spinner__circle .path{stroke:white}.spinner.spinner--variant-white .spinner__container .spinner__circle-background .path{stroke:none}.spinner.spinner--variant-white .spinner__container .spinner__circle .path{stroke:white}}"; + +let i = 0; +const LoadingSpinner = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + // todo the variant white should be renamed for dark mode + this.variant = 'primary'; + this.alignment = 'horizontal'; + this.size = 'small'; + } + componentWillLoad() { + i++; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: this.getBasePartMap(), class: this.getCssClassMap() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "container", class: "spinner__container" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", { class: "spinner__circle", viewBox: "0 0 50 50", "aria-hidden": "true" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("circle", { class: "path", cx: "25", cy: "25", r: "22.5", fill: "none", "stroke-width": "4" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", { class: "spinner__circle-background", viewBox: "0 0 50 50", "aria-hidden": "true" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("circle", { class: "path", cx: "25", cy: "25", r: "22.5", fill: "none", "stroke-width": "4" }))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "sr-only", "aria-live": "polite", id: `spinner-label-${i}` }, this.accessibilityTitle + ? this.accessibilityTitle + : this.text || 'Loading'), this.text ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "text", class: "spinner__text", "aria-hidden": "true" }, this.text)) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", null))))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const name = 'spinner'; + const prefix = mode === 'basePart' ? '' : `${name}--`; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)(name, this.alignment && `${prefix}alignment-${this.alignment}`, this.variant && `${prefix}variant-${this.variant}`, this.size && `${prefix}size-${this.size}`, this.text && `${prefix}text`); + } +}; +LoadingSpinner.style = loadingSpinnerCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/29597891.193e2b29.js b/pr-preview/pr-186/assets/js/29597891.193e2b29.js new file mode 100644 index 000000000..ce0c367ab --- /dev/null +++ b/pr-preview/pr-186/assets/js/29597891.193e2b29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[28361],{9479:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var t=n(74848),i=n(28453);const o={id:"by-use-case",title:"By Use Case",sidebar_position:2},r="By Use Case",a={id:"blueprints/by-use-case/by-use-case",title:"By Use Case",description:"Here you can find guidance for implementing solutions on Open Telekom Cloud based on a wide range of use cases. Topics include containerized applications and orchestration with tools like Kubernetes, microservices architectures for building scalable and resilient systems, and DevOps practices for automating workflows and streamlining collaboration between development and operations teams.",source:"@site/docs/blueprints/by-use-case/index.md",sourceDirName:"blueprints/by-use-case",slug:"/blueprints/by-use-case/",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-use-case/index.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{id:"by-use-case",title:"By Use Case",sidebar_position:2},sidebar:"blueprintsSidebar",previous:{title:"Blueprints",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/"},next:{title:"Analytics",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/"}},c={},l=[];function d(e){const s={h1:"h1",p:"p",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"by-use-case",children:"By Use Case"}),"\n",(0,t.jsx)(s.p,{children:"Here you can find guidance for implementing solutions on Open Telekom Cloud based on a wide range of use cases. Topics include containerized applications and orchestration with tools like Kubernetes, microservices architectures for building scalable and resilient systems, and DevOps practices for automating workflows and streamlining collaboration between development and operations teams."}),"\n",(0,t.jsx)(s.p,{children:"Additional topics cover disaster recovery strategies to ensure business continuity, big data processing for handling large-scale data analysis, AI and machine learning workloads for building intelligent applications, high-performance computing for resource-intensive tasks, serverless architectures for event-driven computing, and automation to optimize resource management and deployment processes. Here are also provided reference architectures, step-by-step guides, and real-world case studies to help organizations efficiently design, deploy, and scale cloud solutions tailored to their unique operational needs and business objectives."})]})}function u(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},28453:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>a});var t=n(96540);const i={},o=t.createContext(i);function r(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/29666.2e16e313.js b/pr-preview/pr-186/assets/js/29666.2e16e313.js new file mode 100644 index 000000000..7ddd1eaeb --- /dev/null +++ b/pr-preview/pr-186/assets/js/29666.2e16e313.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[29666],{29666:(s,t,e)=>{e.r(t),e.d(t,{scale_icon_user_file_bussines_users:()=>i});var l=e(90936);const i=class{constructor(s){(0,l.r)(this,s),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const s=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},s,t),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M11.285 15.695a.884.884 0 011.354-.09l.076.09.975 1.345a2.42 2.42 0 01-.814.737l-.151.073.545 1.81 2.875-4.16h1.215a4.737 4.737 0 014.643 3.75l.042.22.17 1.03H1.78l.175-1.03a4.737 4.737 0 014.46-3.965l.225-.005h1.215l2.875 4.16.545-1.81a2.308 2.308 0 01-.842-.652l-.123-.158.975-1.345zM12 1c3.475 0 6 2.525 6 6 0 3.38-2.41 7-6 7s-6-3.62-6-7c0-3.475 2.525-6 6-6z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M11.285 15.695a.884.884 0 011.354-.09l.076.09.975 1.345a2.42 2.42 0 01-.814.737l-.151.073.545 1.81 2.875-4.16h1.215a4.737 4.737 0 014.643 3.75l.042.22.17 1.03H1.78l.175-1.03a4.737 4.737 0 014.46-3.965l.225-.005h1.215l2.875 4.16.545-1.81a2.308 2.308 0 01-.842-.652l-.123-.158.975-1.345zM12 1c3.475 0 6 2.525 6 6 0 3.38-2.41 7-6 7s-6-3.62-6-7c0-3.475 2.525-6 6-6zm0 1.5C9.395 2.5 7.5 4.395 7.5 7c0 2.655 1.81 5.5 4.5 5.5s4.5-2.845 4.5-5.5c0-2.605-1.895-4.5-4.5-4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/298.2add059d.js b/pr-preview/pr-186/assets/js/298.2add059d.js new file mode 100644 index 000000000..d8a8ad0af --- /dev/null +++ b/pr-preview/pr-186/assets/js/298.2add059d.js @@ -0,0 +1,517 @@ +"use strict"; +exports.id = 298; +exports.ids = [298]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 40298: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_menu: () => (/* binding */ ActionMenu), +/* harmony export */ scale_telekom_header: () => (/* binding */ TelekomHeader), +/* harmony export */ scale_telekom_mega_menu: () => (/* binding */ TelekomMegaMenu), +/* harmony export */ scale_telekom_mega_menu_column: () => (/* binding */ TelekomMegaMenuColumn), +/* harmony export */ scale_telekom_mobile_menu: () => (/* binding */ TelekomMobileMenu), +/* harmony export */ scale_telekom_mobile_menu_item: () => (/* binding */ TelekomMobileMenuItem), +/* harmony export */ scale_telekom_nav_list: () => (/* binding */ TelekomNavList) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91779); + + + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionMenu = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.335 16.055a1.25 1.25 0 01.128 2.494l-.128.006H4.75a1.25 1.25 0 01-.128-2.494l.128-.006h9.585zM19.25 10.5a1.25 1.25 0 01.128 2.494L19.25 13H4.75a1.25 1.25 0 01-.128-2.494l.128-.006h14.5zm0-5.5a1.25 1.25 0 01.128 2.494l-.128.006H4.75a1.25 1.25 0 01-.128-2.494L4.75 5h14.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.75 16.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L14.75 18H4.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743l.099-.007h10.5zm5-5.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743l-.099.007H4.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L4.25 11h15.5zm0-5.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L19.75 7H4.25c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L4.25 5.5h15.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionMenu.style = iconCss; + +const telekomHeaderCss = ":host{--shadow:0px 2px 9px rgba(0, 0, 0, 0.15);--background:var(--telekom-color-background-surface);--background-logo:var(--telekom-color-primary-standard);--transition-common-scrolled:height var(--telekom-motion-duration-immediate)\n var(--telekom-motion-easing-standard),\n width var(--telekom-motion-duration-immediate),\n margin var(--telekom-motion-duration-immediate);--font-size-app-name:var(--telekom-typography-font-size-body);--line-height-app-name:var(--telekom-typography-line-spacing-tight);--font-weight-app-name:var(--telekom-typography-font-weight-extra-bold);--_height:60px;--_base-height:60px;--_height-logo-svg:36px;--_height-bottom-bar:60px;--_height-top-bar:0;--_display-bottom-app-name:none;--_display-top-app-name:none;--_display-main-nav:none;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_max-width-container:none;--_spacing-x-container:var(--telekom-spacing-composition-space-06);--_column-gap-container:var(--telekom-spacing-composition-space-10);--_grid-template-columns-container:auto;--_grid-column-body:auto;--_spacing-left-body:0;--_spacing-right-top-app-name:var(--telekom-spacing-composition-space-10);--_spacing-right-bottom-app-name:var(--telekom-spacing-composition-space-10);--_left-logo:0;--_justify-content-bottom-body:end;--_animation-name:toggle;--scl-telekom-header-height:var(--_height)}@media screen and (min-width: 640px){:host{--_display-bottom-app-name:block;--_spacing-left-body:74px}}@media screen and (min-width: 1040px){:host,:host([scrolled-back]){--_height:84px;--_base-height:84px;--_height-logo-svg:44px;--_height-top-bar:30px;--_height-bottom-bar:54px;--_display-main-nav:block;--_display-meta-nav:block;--_display-meta-nav-external:block;--_display-lang-switcher:block;--_display-top-app-name:block;--_display-bottom-app-name:none;--_grid-template-columns-container:repeat(16, minmax(0, 1fr));--_grid-column-body:3 / span 14;--_spacing-left-body:0;--_spacing-right-bottom-app-name:52px;--_spacing-x-container:var(--telekom-spacing-composition-space-08);--_justify-content-bottom-body:space-between;--scl-telekom-header-height:var(--_height)}:host([type='slim']){--_animation-name:none;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-07\n )}:host([type='slim'][scrolled]){--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-07\n )}:host([type='slim']),:host([scrolled]){--_height:72px;--_height-logo-svg:40px;--_height-top-bar:0;--_height-bottom-bar:72px;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_display-top-app-name:none;--_display-bottom-app-name:block;--_spacing-left-body:var(--telekom-spacing-composition-space-06);--scl-telekom-header-height:var(--_height)}:host([scrolled]){--_spacing-left-body:0}:host([type='slim']),:host([scrolled][app-name]){--_grid-column-body:2 / span 15}}@media screen and (min-width: 1296px){:host,:host([scrolled-back]){--_height:96px;--_base-height:96px;--_height-logo-svg:48px;--_height-top-bar:30px;--_height-bottom-bar:66px;--scl-telekom-header-height:var(--_height)}:host([type='slim']){--_height:84px;--_base-height:84px;--_height-logo-svg:44px;--_height-top-bar:0;--_height-bottom-bar:84px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-14\n );--_spacing-left-body:4px}:host([type='slim'][scrolled]){--_height:72px;--_height-logo-svg:40px;--_height-top-bar:0;--_height-bottom-bar:72px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-15\n );--_spacing-left-body:0}}@media screen and (min-width: 1680px){:host,:host([scrolled-back]){--_height:120px;--_base-height:120px;--_height-logo-svg:60px;--_height-top-bar:30px;--_height-bottom-bar:90px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-12\n );--_left-logo:var(--_spacing-x-container);--scl-telekom-header-height:var(--_height)}:host{--_max-width-container:var(--scl-grid-max-width, 1504px)}:host([type='slim']){--_height:96px;--_base-height:96px;--_height-logo-svg:48px;--_height-top-bar:0;--_height-bottom-bar:96px;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_display-top-app-name:none;--_display-bottom-app-name:block;--_spacing-left-body:24px;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-14\n );--scl-telekom-header-height:var(--_height);--scl-telekom-header-bottom-spacing:36px}:host([type='slim'][scrolled]){--_height:72px;--_height-logo-svg:40px;--_height-top-bar:0;--_height-bottom-bar:72px;--_display-meta-nav:none;--_display-meta-nav-external:none;--_display-lang-switcher:none;--_display-top-app-name:none;--_display-bottom-app-name:block;--_spacing-right-bottom-app-name:var(\n --telekom-spacing-composition-space-12\n );--scl-telekom-header-height:var(--_height)}}:host([type='subtle']){--shadow:none;--background:transparent}slot[name='logo']{position:absolute;top:0;left:var(--_left-logo);display:flex;align-items:center;justify-content:center;height:var(--_height);width:var(--_height);background:var(--background-logo);transition:var(--transition-common-scrolled)}[part~='meta-nav-external']{display:var(--_display-meta-nav-external);flex:1}[part~='meta-nav']{display:var(--_display-meta-nav);}[part~='lang-switcher']{display:var(--_display-lang-switcher);}slot[name='main-nav']{display:var(--_display-main-nav);flex:1}slot[name='functions']{display:block;}@media screen and (min-width: 1040px){slot[name='main-nav'],slot[name='functions']{padding-top:var(--telekom-spacing-composition-space-06)}}@media screen and (min-width: 1296px){slot[name='main-nav'],slot[name='functions']{padding-top:var(--telekom-spacing-composition-space-07)}}@media screen and (min-width: 1680px){slot[name='main-nav'],slot[name='functions']{padding-top:var(--telekom-spacing-composition-space-10)}:host([scrolled]) slot[name='functions'],:host([scrolled]) slot[name='main-nav']{padding-top:var(--telekom-spacing-composition-space-02)}}[part~='base']{height:var(--_base-height);width:100%;transition:var(--transition-common-scrolled)}[part~='fixed-wrapper']{position:fixed;z-index:99;width:100%;height:var(--_height);background-color:var(--background);box-shadow:var(--shadow);transition:var(--transition-common-scrolled)}[part~='container']{box-sizing:content-box;display:grid;grid-template-columns:var(--_grid-template-columns-container);column-gap:var(--_column-gap-container);position:relative;max-width:var(--_max-width-container);margin-left:auto;margin-right:auto;padding-left:var(--_spacing-x-container);padding-right:var(--_spacing-x-container);transition:var(--transition-common-scrolled)}[part~='app-logo']{height:var(--_height);width:var(--_height);display:flex;align-items:center;justify-content:center;transition:var(--transition-common-scrolled)}:host::part(logo-svg){height:var(--_height-logo-svg);transition:var(--transition-common-scrolled);margin-top:4px}:host::part(logo){height:calc(var(--_height) - 6px);width:calc(var(--_height) - 6px);display:flex;align-items:center;justify-content:center;transition:var(--transition-common-scrolled)}[part~='body']{display:block;grid-column:var(--_grid-column-body);flex:1;margin-left:var(--_spacing-left-body);transition:var(--transition-common-scrolled)}[part~='top-bar']{height:var(--_height-top-bar);display:flex;align-items:end;width:100%;transition:var(--transition-common-scrolled)}[part~='top-app-name']{display:var(--_display-top-app-name);margin-right:var(--_spacing-right-top-app-name)}[part~='top-body']{display:inline-flex;flex:1;transition:var(--transition-common-scrolled)}[part~='bottom-bar']{display:flex;justify-content:space-between;align-items:center;transition:var(--transition-common-scrolled)}[part~='bottom-app-name']{display:var(--_display-bottom-app-name);margin-right:var(--_spacing-right-bottom-app-name);animation-duration:var(--telekom-motion-duration-animation);min-width:108px}@media screen and (min-width: 1040px){:host([scrolled]) [part~='bottom-app-name']{animation-name:var(--_animation-name);animation-timing-function:var(--telekom-motion-easing-enter)}:host([scrolled-back]) [part~=' bottom-app-name']{animation-name:var(--_animation-name);animation-direction:reverse;animation-timing-function:var(--telekom-motion-easing-exit)}}[part~='bottom-body'],[part~='main-nav']{justify-content:var(--_justify-content-bottom-body);height:var(--_height-bottom-bar);display:inline-flex;flex:1;transition:var(--transition-common-scrolled)}[part~='app-name-text']{font-size:var(--font-size-app-name);font-weight:var(--font-weight-app-name);line-height:var(--line-height-app-name);color:var(--telekom-color-text-and-icon-primary-standard);letter-spacing:0.02em;text-decoration:none}@media screen and (min-width: 1040px){:host{--font-size-app-name:var(--telekom-typography-font-size-small)}}[part~='app-name-text']:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}[part~='app-name-text']:active{color:var(--telekom-color-text-and-icon-primary-pressed)}@keyframes toggle{from{opacity:0;transform:translate3d(\n var(--translate-x),\n var(--translate-y),\n var(--translate-z)\n )}}"; + +const TelekomHeader = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.type = ''; + this.metaNavAriaLabel = 'Meta navigation'; + this.metaNavExternalAriaLabel = 'External meta navigation'; + this.langSwitcherAriaLabel = 'Language switcher'; + this.mainNavAriaLabel = 'Main navigation'; + this.scrolledBack = false; + this.pageYOffset = 0; + } + onScroll() { + // 48px is the height of the header, set scrolled when the user scrolls past it + // todo: calculate this value dynamically (for slim header, smaller viewports, etc) + this.scrolled = window.pageYOffset > 48; + this.scrolledBack = + this.pageYOffset !== window.pageYOffset && window.pageYOffset <= 0; + this.pageYOffset = pageYOffset; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { scrolled: this.type !== 'subtle' && this.scrolled, "scrolled-back": this.type !== 'subtle' && this.scrolledBack }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("header", { part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', this.type, { + scrolled: this.type !== 'subtle' && this.scrolled, + 'scrolled-back': this.type !== 'subtle' && this.scrolledBack, + }) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "fixed-wrapper" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "container" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "logo" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-logo", { part: "app-logo", variant: "white", href: this.logoHref, logoTitle: this.logoTitle, logoHideTitle: this.logoHideTitle, focusable: this.logoHref ? true : false })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "top-bar" }, this.appName ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "top-app-name" }, this.appNameLink ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("a", { part: "app-name-text", onClick: this.appNameClick, href: this.appNameLink }, this.appName)) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "app-name-text" }, this.appName)))) : null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "top-body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", { part: "meta-nav-external", "aria-label": this.metaNavExternalAriaLabel }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "meta-nav-external" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", { part: "meta-nav", "aria-label": this.metaNavAriaLabel }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "meta-nav" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", { part: "lang-switcher", "aria-label": this.langSwitcherAriaLabel }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "lang-switcher" })))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "bottom-bar" }, this.appName ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "bottom-app-name" }, this.appNameLink ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("a", { part: "app-name-text", onClick: this.appNameClick, href: this.appNameLink }, this.appName)) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "app-name-text" }, this.appName)))) : null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "bottom-body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", { part: "main-nav", "aria-label": this.mainNavAriaLabel }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "main-nav" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "functions" }))))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomHeader.style = telekomHeaderCss; + +const telekomMegaMenuCss = ".scale-telekom-mega-menu{--spacing-y:var(--telekom-spacing-composition-space-18);--column-gap:var(--telekom-spacing-composition-space-10);--max-width-container:var(--scl-grid-max-width, 1504px);--spacing-x:var(--telekom-spacing-composition-space-08);--grid-template-columns:repeat(16, minmax(0, 1fr));display:block;padding-left:var(--spacing-x);padding-right:var(--spacing-x);margin-left:auto;margin-right:auto;max-width:var(--max-width-container)}.scale-telekom-mega-menu-container{box-sizing:border-box;display:grid;grid-template-columns:var(--grid-template-columns);grid-column:auto;column-gap:var(--column-gap);padding-top:var(--spacing-y);padding-bottom:var(--spacing-y);font-size:var(--telekom-typography-font-size-body);line-height:var(--telekom-typography-line-spacing-standard)}.scale-telekom-mega-menu :where(ul,ol){list-style:none;margin:0;padding:0}.scale-telekom-mega-menu :where(a){display:inline-block;color:var(--telekom-color-text-and-icon-standard);text-decoration:none}.scale-telekom-mega-menu :where(ul a){width:100%}.scale-telekom-mega-menu .scale-icon{width:20px;height:20px}.scale-telekom-mega-menu :where(a):hover{color:var(--telekom-color-text-and-icon-primary-hovered)}.scale-telekom-mega-menu :where(a):active{color:var(--telekom-color-text-and-icon-primary-pressed)}.scale-telekom-mega-menu :where(a):focus-visible{outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);outline-offset:1px;border-radius:var(--telekom-radius-small)}.scale-telekom-mega-menu :where(li+li){margin-top:var(--telekom-spacing-composition-space-07)}@media screen and (min-width: 1040px){.scale-telekom-mega-menu{--spacing-x:var(--telekom-spacing-composition-space-08)}}.scale-telekom-mega-menu[children-too-many] scale-telekom-mega-menu-column:first-child{grid-column:2 / span 3}@media screen and (min-width: 1680px){.scale-telekom-mega-menu[children-too-many] scale-telekom-mega-menu-column:first-child{grid-column:1 / span 3}}"; + +const TelekomMegaMenu = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** :) */ + this.childrenTooMany = false; + } + connectedCallback() { + if (this.hostElement.children.length > 4) { + this.childrenTooMany = true; + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { class: "scale-telekom-mega-menu", "children-too-many": this.childrenTooMany }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "scale-telekom-mega-menu-container" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomMegaMenu.style = telekomMegaMenuCss; + +const telekomMegaMenuColumnCss = ":host{--spacing-x-icon:1ch;grid-column:auto / span 3}:host(:first-child){grid-column:3 / span 3}[part~='base']{display:flex;flex-direction:column}[part~='icon']{transform:translateY(-0.125ch)}@media screen and (min-width: 1296px){[part~='base']{flex-direction:row}[part~='icon'] ::slotted(*){padding-right:var(--spacing-x-icon)}}[part~='heading']{display:flex;align-items:flex-start;height:calc(var(--telekom-typography-line-spacing-standard) * 2rem);font-weight:var(--telekom-typography-font-weight-bold);line-height:var(--telekom-typography-line-spacing-tight)}[part~='heading-has-link'] [part~='heading']:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}[part~='heading-has-link'] [part~='heading']:active{color:var(--telekom-color-text-and-icon-primary-pressed)}[part~='icon-arrow-right']{margin-top:0.5ch;margin-left:0.5ch}"; + +const TelekomMegaMenuColumn = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.headingLevel = 2; + this.headingHasLink = false; + } + connectedCallback() { + if (this.hostElement.querySelector('a[slot="heading"]')) { + this.headingHasLink = true; + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)({ + base: true, + 'heading-has-link': this.headingHasLink, + }) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "icon", "aria-hidden": "true" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "icon" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "body" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "heading", role: "heading", "aria-level": this.headingLevel }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "heading" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-right", { part: "icon-arrow-right", size: 11, selected: true })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomMegaMenuColumn.style = telekomMegaMenuColumnCss; + +const telekomMobileMenuCss = ":host{--spacing:var(--telekom-spacing-composition-space-06);--background:var(--telekom-color-background-surface);--max-width:572px;--spacing-close-button:var(--telekom-spacing-composition-space-04);--radius-close-button:var(--telekom-radius-standard);--transition-close-button:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--box-shadow-close-button-focus:0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard);--color:var(--telekom-color-text-and-icon-standard);--color-hover:var(--telekom-color-primary-hovered);--color-active:var(--telekom-color-primary-pressed)}:host::part(base){margin:0 auto;background:var(--background);display:flex;justify-content:center;flex-direction:column;max-width:var(--max-width)}:host::part(back-button){display:flex;align-items:center;border:none;background:transparent;color:var(--color);font:var(--telekom-text-style-lead-text);width:100%;height:72px;cursor:pointer;padding:0}scale-icon-navigation-left{margin-right:12px}:host::part(nav){padding:var(--spacing) 0;max-width:var(--max-width);width:100%}:host::part(links-top){display:flex}[part~='app-name']>*{font-size:var(--font-size-app-name);font-weight:var(--font-weight-app-name);line-height:var(--line-height-app-name);color:var(--telekom-color-text-and-icon-primary-standard);letter-spacing:0.02em;text-decoration:none}[part~='app-name']>*:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}[part~='app-name']>*:active{color:var(--telekom-color-text-and-icon-primary-pressed)}"; + +function elementDepth(el) { + let depth = 0; + while (null !== el.parentElement) { + el = el.parentElement; + depth++; + } + return depth; +} +const TelekomMobileMenu = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleCloseNavFlyout = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-close-nav-flyout", 7); + this.backButtonTitle = 'Back'; + this.setLevelAttributeForAllItems = () => { + const offset = Math.min(...Array.from(this.menuItems).map((x) => elementDepth(x))); + Array.from(this.menuItems).forEach((item) => { + const level = elementDepth(item) - offset; + item.setAttribute('level', String(level)); + }); + }; + this.back = () => { + Array.from(this.openItems).forEach((element) => { + if (element.getAttribute('level') === String(+this.currentLevel - 1)) { + element.setAttribute('active', ''); + // @ts-ignore + element.open = false; + return element.removeAttribute('open'); + } + }); + this.currentLevel = String(+this.currentLevel - 1); + Array.from(this.menuItems).forEach((element) => { + element.setAttribute('current-level', this.currentLevel); + }); + }; + } + handleSetMenuItemActive(e) { + this.menuItems.forEach((element) => element.removeAttribute('active')); + e.target.setAttribute('active', ''); + if (e.target.parentElement.tagName === 'SCALE-TELEKOM-MOBILE-MENU-ITEM') { + e.target.parentElement.setAttribute('active', ''); + } + } + handleSetMenuItemOpen(e) { + e.target.setAttribute('open', ''); + this.currentLevel = String(+e.target.getAttribute('level') + 1); + Array.from(this.menuItems).forEach((element) => { + element.setAttribute('current-level', this.currentLevel); + }); + } + connectedCallback() { + this.setLevelAttributeForAllItems(); + this.currentLevel = this.activeItem + ? String(+this.activeItem.getAttribute('level')) + : '0'; + Array.from(this.menuItems).forEach((element) => { + element.setAttribute('current-level', this.currentLevel); + }); + } + componentWillRender() { } + get menuItems() { + return this.hostElement.querySelectorAll('scale-telekom-mobile-menu-item'); + } + get activeItem() { + return Array.from(this.menuItems).find((element) => + // @ts-ignore + element.hasAttribute('active') || element.active); + } + get openItems() { + return Array.from(this.menuItems).filter((element) => + // @ts-ignore + element.hasAttribute('open') || element.open); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "base" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", { part: "nav" }, +this.currentLevel > 0 ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", { part: "back-button", onClick: () => { + this.back(); + } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-left", { size: 20 }), this.backButtonTitle)) : null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomMobileMenu.style = telekomMobileMenuCss; + +const telekomMobileMenuItemCss = ":host{--height:72px;--max-width:572px;--font-bold:var(--telekom-text-style-heading-5);--font-thin:var(--telekom-text-style-lead-text);--color:var(--telekom-color-text-and-icon-standard);--color-active:var(--telekom-color-primary-standard);--border-color:var(--telekom-color-ui-faint);--_box-shadow-active:none;--_spacing-level:0px;--_font:var(--font-thin);--_color:var(--color);position:relative}:host::part(level-0){--_spacing-level:0px;--_font:var(--font-bold)}:host::part(level-0 active){--_spacing-level:0px}:host::part(level-0 open){--_spacing-level:36px}:host::part(level-1),:host::part(level-2),:host::part(level-3),:host::part(level-4){--_spacing-level:36px}:host::part(level-1 current-level-2),:host::part(level-2 current-level-3),:host::part(level-3 current-level-4){--_font:var(--font-bold)}:host::part(active),:host::part(level-0 current-level-0 active),:host::part(level-1 current-level-1 active),:host::part(level-2 current-level-2 active),:host::part(level-3 current-level-3 active){--_color:var(--color-active);--_box-shadow-active:2px 0px 0px 0px var(--color-active) inset}:host::part(level-0 current-level-1),:host::part(level-1 current-level-2),:host::part(level-2 current-level-3),:host::part(level-3 current-level-4){--_color:var(--color)}:host::part(active-indicator){box-shadow:var(--_box-shadow-active);min-height:28px;min-width:2px}:host::part(base){font:var(--_font);max-width:var(--max-width)}::slotted(a){position:relative;display:flex;align-items:center;height:var(--height);width:calc(100% - var(--_spacing-level));max-width:572px;padding-left:var(--_spacing-level);color:var(--_color);text-decoration:none}:host::part(header){height:var(--height);border-style:solid;border-width:0 0 1px 0;border-color:var(--border-color);display:flex;width:100%;align-items:center;justify-content:flex-end;border-style:solid;border-width:0 0 1px 0;border-color:var(--border-color)}:host::part(hidden){display:none}:host::part(icon-right-container){display:flex;align-items:center;position:absolute}"; + +const TelekomMobileMenuItem = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleSetMenuItemActive = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-set-menu-item-active", 7); + this.scaleSetMenuItemOpen = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-set-menu-item-open", 7); + this.scaleCloseNavFlyout = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-close-nav-flyout", 7); + this.open = false; + this.active = false; + this.level = '0'; + this.currentLevel = '0'; + this.handleClick = (e) => { + e.stopImmediatePropagation(); + const hasLink = !(e.target.getAttribute('href') || '').includes('javascript:void(0)'); + const hasLinkNoChildren = hasLink && !this.children.length; + if (hasLinkNoChildren) { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleCloseNavFlyout', e); + return (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleSetMenuItemActive', e.detail); + } + const hasLinkAndChildrenAndOpen = hasLink && this.children.length && this.open; + if (hasLinkAndChildrenAndOpen) { + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleCloseNavFlyout', e); + return (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleSetMenuItemActive', e.detail); + } + // EITHER hos link and children - ready to expand children without firing the link click + // OR no link but has children + e.preventDefault(); + this.toggleChildrenVisibility(true); + return (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleSetMenuItemOpen', e.detail); + }; + } + openChanged(newValue) { + this.toggleChildrenVisibility(newValue); + } + toggleChildrenVisibility(show) { + this.children.forEach((element) => { + show && element.getAttribute('level') === String(+this.level + 1) + ? element.removeAttribute('hidden') + : element.setAttribute('hidden', ''); + }); + } + get children() { + return this.hostElement.querySelectorAll('scale-telekom-mobile-menu-item'); + } + get openChildren() { + return Array.from(this.hostElement.querySelectorAll('scale-telekom-mobile-menu-item')).filter((element) => element.hasAttribute('open') || element.open); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { onClick: this.handleClick }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("nav", { part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', `level-${this.level}`, `current-level-${this.currentLevel}`, { + open: this.open, + active: this.active, + hidden: !this.open && this.level !== this.currentLevel, + }) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('header', { + hidden: !!this.openChildren.length, + }) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "icon-right-container" }, !!this.children.length && !this.open && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-right", { size: 20, color: this.active + ? 'var(--telekom-color-primary-standard)' + : 'var(--telekom-color-text-and-icon-standard)' })))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "children" })))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "open": ["openChanged"] + }; } +}; +TelekomMobileMenuItem.style = telekomMobileMenuItemCss; + +const telekomNavListCss = ".scale-telekom-nav-list{--width:100%;--height:100%;--spacing-x-start:0;--flex-direction:row;--_spacing-x-slotted:var(--_spacing-x-slotted-main-nav, 24px);--_spacing-x-slotted-meta-nav-external:var(\n --telekom-spacing-composition-space-07\n );--_spacing-x-slotted-meta-nav:var(--telekom-spacing-composition-space-07);--_spacing-x-slotted-lang-switcher:var(\n --telekom-spacing-composition-space-04\n );--_spacing-x-slotted-main-nav:var(--telekom-spacing-composition-space-10);--_spacing-x-slotted-functions:var(--telekom-spacing-composition-space-08);display:flex;align-items:stretch;flex-direction:var(--flex-direction);width:var(--width);height:var(--height);margin-inline-start:var(--spacing-x-start)}.scale-telekom-nav-list[debug]{border:1px dotted gold}@media screen and (min-width: 1296px){.scale-telekom-nav-list{--_spacing-x-slotted-main-nav:var(--telekom-spacing-composition-space-14);--_spacing-x-slotted-meta-nav:var(--telekom-spacing-composition-space-07);--_spacing-x-slotted-meta-nav-external:var(\n --telekom-spacing-composition-space-07\n )}.scale-telekom-nav-list[debug]{border:1px dotted cyan}}@media screen and (min-width: 1680px){.scale-telekom-nav-list{--_spacing-x-slotted-main-nav:var(--telekom-spacing-composition-space-16)}.scale-telekom-nav-list[debug]{border:1px dotted magenta}}.scale-telekom-nav-list[variant='meta-nav-external']{--_spacing-x-slotted:var(--_spacing-x-slotted-meta-nav-external)}.scale-telekom-nav-list[variant='meta-nav']{--_spacing-x-slotted:var(--_spacing-x-slotted-meta-nav)}.scale-telekom-nav-list[variant='lang-switcher']{--_spacing-x-slotted:var(--telekom-spacing-composition-space-08)}@media screen and (min-width: 1040px){.scale-telekom-nav-list[variant='lang-switcher']{--_spacing-x-slotted:var(--telekom-spacing-composition-space-04)}}.scale-telekom-nav-list[variant='main-nav']{--_spacing-x-slotted:var(--_spacing-x-slotted-main-nav)}.scale-telekom-nav-list[variant='functions']{--_spacing-x-slotted:var(--_spacing-x-slotted-functions)}.scale-telekom-nav-list[alignment='left']{justify-content:flex-start}.scale-telekom-nav-list[alignment='right']{justify-content:flex-end}.scale-telekom-nav-list[alignment='center']{justify-content:center}.scale-telekom-nav-list[alignment='left']:not([variant='main-nav'])>.scale-telekom-nav-item button,.scale-telekom-nav-list[alignment='left']:not([variant='main-nav'])>.scale-telekom-nav-item a{margin-inline-end:var(--_spacing-x-slotted)}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item{position:relative;left:calc(-1 * var(--telekom-spacing-composition-space-06));margin-inline-end:0}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item button,.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item a{padding-inline-start:var(--telekom-spacing-composition-space-06)}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item button,.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item a{padding-inline-end:calc(\n var(--_spacing-x-slotted) - var(--telekom-spacing-composition-space-06)\n )}.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item button::after,.scale-telekom-nav-list[variant='main-nav']>.scale-telekom-nav-item a::after{margin-inline-start:var(--telekom-spacing-composition-space-06);width:calc(100% - var(--_spacing-x-slotted))}.scale-telekom-nav-list[alignment='right']:not([variant='main-nav'])>*:not(:first-child){margin-inline-start:var(--_spacing-x-slotted)}.scale-telekom-nav-list[slot='mobile-meta-nav'],.scale-telekom-nav-list[slot='mobile-meta-nav-external']{--flex-direction:column}"; + +const isDirectChild = (parent, child) => [...parent.children].includes(child); +const TelekomNavList = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.role = 'menu'; + this.alignment = 'left'; + this.variant = 'main-nav'; + } + handleScaleExpanded(event) { + if (event.detail.expanded) { + this.closeExpandedFlyoutSiblings(event.target); + } + } + closeExpandedFlyoutSiblings(target) { + const siblingItems = [...this.hostElement.children].filter((x) => !x.contains(target)); + siblingItems.forEach((item) => { + const flyout = item.querySelector('scale-telekom-nav-flyout'); + if (isDirectChild(item, flyout) && flyout.expanded) { + flyout.expanded = false; + } + }); + } + connectedCallback() { + [...this.hostElement.children].forEach((el) => { + el.setAttribute('variant', this.variant); + }); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { class: "scale-telekom-nav-list" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomNavList.style = telekomNavListCss; + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2995.b576cd8b.js b/pr-preview/pr-186/assets/js/2995.b576cd8b.js new file mode 100644 index 000000000..ca4c17e93 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2995.b576cd8b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 2995; +exports.ids = [2995]; +exports.modules = { + +/***/ 72995: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_close: () => (/* binding */ ActionClose) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionClose = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13.768 12l4.116-4.116a1.25 1.25 0 00-1.767-1.768L12 10.232 7.884 6.116a1.25 1.25 0 10-1.767 1.768L10.233 12l-4.116 4.116a1.249 1.249 0 101.767 1.768L12 13.768l4.117 4.116a1.246 1.246 0 001.767 0 1.25 1.25 0 000-1.768L13.768 12z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.93 12.402l4.47-4.47a.749.749 0 10-1.062-1.06l-4.47 4.47L7.4 6.871a.749.749 0 10-1.06 1.06l4.47 4.47-4.47 4.47a.75.75 0 001.06 1.061l4.47-4.47 4.47 4.47a.747.747 0 001.06 0 .75.75 0 000-1.06l-4.47-4.47z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionClose.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/29b4b38f.5f78ba34.js b/pr-preview/pr-186/assets/js/29b4b38f.5f78ba34.js new file mode 100644 index 000000000..43aca7883 --- /dev/null +++ b/pr-preview/pr-186/assets/js/29b4b38f.5f78ba34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[71213],{22754:e=>{e.exports=JSON.parse('{"tag":{"label":"federation","permalink":"/docs-next/pr-preview/pr-186/docs/tags/federation","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"blueprints/by-use-case/security/authentik/identity-federation-github","title":"Identity Federation with GitHub","description":"Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-github"},{"id":"blueprints/by-use-case/security/keycloak/identity-federation-github","title":"Identity Federation with GitHub","description":"Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant\'s IAM.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-github"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2c7cc5eb.ea72a82f.js b/pr-preview/pr-186/assets/js/2c7cc5eb.ea72a82f.js new file mode 100644 index 000000000..99bd7f6d6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2c7cc5eb.ea72a82f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[76197],{66807:e=>{e.exports=JSON.parse('{"tag":{"label":"keepalived","permalink":"/docs-next/pr-preview/pr-186/docs/tags/keepalived","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived","title":"Building Highly Available Web Server Clusters with Keepalived","description":"Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2d9ee500.ba92fb4d.js b/pr-preview/pr-186/assets/js/2d9ee500.ba92fb4d.js new file mode 100644 index 000000000..3b513d22f --- /dev/null +++ b/pr-preview/pr-186/assets/js/2d9ee500.ba92fb4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[55081],{35389:e=>{e.exports=JSON.parse('{"tag":{"label":"migration","permalink":"/docs-next/pr-preview/pr-186/docs/tags/migration","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":12,"items":[{"id":"best-practices/containers/cloud-container-engine/backup-kubernetes-objects","title":"Backing Up Kubernetes Objects of other Clusters","description":"1. To back up a WordPress application with PV data, add an annotation","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects"},{"id":"best-practices/containers/cloud-container-engine/debugging-and-starting-the-application","title":"Debugging and Starting the Application","description":"Application Verification","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-application"},{"id":"best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds","title":"From ECS-hosted MongoDB to DDS","description":"DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds"},{"id":"best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds","title":"From On-Premises MongoDB to DDS","description":"DRS helps you migrate data from on-premises MongoDB databases to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds"},{"id":"best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds","title":"From Other Cloud MongoDB to DDS","description":"DRS helps you migrate MongoDB databases from other cloud platforms to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds"},{"id":"best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting","title":"How Do Replica Sets Achieve High Availability and Read/Write Splitting?","description":"DDS replica set instances can store multiple duplicates to ensure data high availability and support the automatic switch of private IP addresses to ensure service high availability. To enhance the read and write performance of your client for connecting to the instance, you can use your client to read different data copies. You need to connect to replica set instances using HA connection addresses. You can also configure read/write splitting. Otherwise, the high availability and high read performance of replica set instances cannot be guaranteed.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting"},{"id":"best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce","title":"Migrating Clusters from Other Clouds to CCE","description":"Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce"},{"id":"best-practices/containers/software-repository/migrating-container-images","title":"Migrating Container Images","description":"Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-images"},{"id":"best-practices/application-services/distributed-message-service/migrating-kafka-services","title":"Migrating Kafka Services","description":"This solution will demonstrate how you can migrate Kafka services to connect message producers and consumers to a new Kafka instance and can even migrate persisted message data to a new Kafka instance.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/application-services/distributed-message-service/migrating-kafka-services"},{"id":"best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks","title":"Migrating Service Data Across Accounts (Data Disks)","description":"Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks"},{"id":"best-practices/containers/cloud-container-engine/restore-kubernetes-objects","title":"Restoring Kubernetes Objects in a CCE Cluster","description":"In this example, the WordPress application uses Azure SSD persistent data volumes, which need to be replaced with Open Telekom Cloud SSDs.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects"},{"id":"best-practices/containers/cloud-container-engine/updating-resources","title":"Updating Resources Accordingly","description":"Updating Images","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2e632ceb.5fc34bde.js b/pr-preview/pr-186/assets/js/2e632ceb.5fc34bde.js new file mode 100644 index 000000000..012f37218 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2e632ceb.5fc34bde.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[97157],{41894:e=>{e.exports=JSON.parse('{"tag":{"label":"harbor","permalink":"/docs-next/pr-preview/pr-186/docs/tags/harbor","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/containers/software-repository/migrating-container-images","title":"Migrating Container Images","description":"Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-images"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/2f596971.662556e9.js b/pr-preview/pr-186/assets/js/2f596971.662556e9.js new file mode 100644 index 000000000..84735e983 --- /dev/null +++ b/pr-preview/pr-186/assets/js/2f596971.662556e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[74362],{13125:(e,o,l)=>{l.r(o),l.d(o,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>a});var s=l(74848),n=l(28453);const t={id:"google-deploy",title:"How to deploy your application on Google Cloud",tags:["multi-cloud","google","gcp","cloud-create"]},i="How to deploy your application on Google Cloud",r={id:"best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy",title:"How to deploy your application on Google Cloud",description:"Prerequisites",source:"@site/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy.md",sourceDirName:"best-practices/management-and-deployment/cloud-create/google-cloud",slug:"/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy.md",tags:[{inline:!0,label:"multi-cloud",permalink:"/docs-next/pr-preview/pr-186/docs/tags/multi-cloud"},{inline:!0,label:"google",permalink:"/docs-next/pr-preview/pr-186/docs/tags/google"},{inline:!0,label:"gcp",permalink:"/docs-next/pr-preview/pr-186/docs/tags/gcp"},{inline:!0,label:"cloud-create",permalink:"/docs-next/pr-preview/pr-186/docs/tags/cloud-create"}],version:"current",frontMatter:{id:"google-deploy",title:"How to deploy your application on Google Cloud",tags:["multi-cloud","google","gcp","cloud-create"]},sidebar:"bestPracticesSidebar",previous:{title:"Multicloud Google Cloud",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google"},next:{title:"Design with static subnets in multiple regions",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-region"}},c={},a=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"How to assign a role to a principal",id:"how-to-assign-a-role-to-a-principal",level:3},{value:"How to enable an API on Google Cloud",id:"how-to-enable-an-api-on-google-cloud",level:3},{value:"How to deploy",id:"how-to-deploy",level:2},{value:"Choose the Google Cloud location",id:"choose-the-google-cloud-location",level:3},{value:"Authenticate for the first time",id:"authenticate-for-the-first-time",level:3},{value:"Choose a Google project to deploy",id:"choose-a-google-project-to-deploy",level:3},{value:"Choose an availability zone and keypair (optional)",id:"choose-an-availability-zone-and-keypair-optional",level:3},{value:"Deploy",id:"deploy",level:3},{value:"How to revoke access",id:"how-to-revoke-access",level:2}];function d(e){const o={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.h1,{id:"how-to-deploy-your-application-on-google-cloud",children:"How to deploy your application on Google Cloud"}),"\n",(0,s.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(o.p,{children:"To deploy on Google Cloud, you need to:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:"Have a Google Cloud account."}),"\n",(0,s.jsxs)(o.li,{children:["Your account has one of the following roles ",(0,s.jsx)(o.code,{children:"roles/compute.admin"}),", ",(0,s.jsx)(o.code,{children:"roles/editor"}),", or ",(0,s.jsx)(o.code,{children:"roles/owner"})," assigned to a Google project. This role allows you to create a compute resource in the given project."]}),"\n",(0,s.jsxs)(o.li,{children:["Your account has one of the following roles ",(0,s.jsx)(o.code,{children:"roles/browser"}),", ",(0,s.jsx)(o.code,{children:"roles/editor"}),", or ",(0,s.jsx)(o.code,{children:"roles/owner"}),". This role allows Telekom Cloud Create to read the ",(0,s.jsx)(o.a,{href:"https://cloud.google.com/resource-manager/docs/access-control-proj",children:"IAM access control policy"})," of the project to check for access permissions before a deployment can start."]}),"\n",(0,s.jsxs)(o.li,{children:["Enable the ",(0,s.jsx)(o.strong,{children:"Compute Engine API"})," and ",(0,s.jsx)(o.strong,{children:"Cloud Resource Manager API"})," in your google project."]}),"\n"]}),"\n",(0,s.jsx)(o.h3,{id:"how-to-assign-a-role-to-a-principal",children:"How to assign a role to a principal"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["Go to: ",(0,s.jsx)(o.strong,{children:"IAM & Admin"})," / ",(0,s.jsx)(o.strong,{children:"IAM"})]}),"\n",(0,s.jsxs)(o.li,{children:["Go to ",(0,s.jsx)(o.strong,{children:"Principal"}),", click ",(0,s.jsx)(o.strong,{children:"Edit"})," and assign roles. The following example assigns the role ",(0,s.jsx)(o.code,{children:"roles/browser"})," and ",(0,s.jsx)(o.code,{children:"roles/compute.admin"})," to a principal."]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/set-roles.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/set-roles.png",alt:"../_images/set-roles.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 1. Set IAM roles for a user"}),"\n",(0,s.jsx)(o.h3,{id:"how-to-enable-an-api-on-google-cloud",children:"How to enable an API on Google Cloud"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["Go to: ",(0,s.jsx)(o.strong,{children:"APIs & Services"})," / ",(0,s.jsx)(o.strong,{children:"Library"})]}),"\n",(0,s.jsxs)(o.li,{children:["Search for an API (e.g., ",(0,s.jsx)(o.code,{children:"Compute Engine"})," or ",(0,s.jsx)(o.code,{children:"Cloud Resource"}),")"]}),"\n",(0,s.jsxs)(o.li,{children:["Click ",(0,s.jsx)(o.strong,{children:"Enable"})]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/enable-api.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/enable-api.png",alt:"../_images/enable-api.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 2. Enable Compute Engine API"}),"\n",(0,s.jsx)(o.h2,{id:"how-to-deploy",children:"How to deploy"}),"\n",(0,s.jsx)(o.h3,{id:"choose-the-google-cloud-location",children:"Choose the Google Cloud location"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["Go to: ",(0,s.jsx)(o.strong,{children:"Deploy"})]}),"\n",(0,s.jsxs)(o.li,{children:["Choose ",(0,s.jsx)(o.strong,{children:"Google"})]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step1.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step1.png",alt:"../_images/deploy-step1.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 3. Choose Google Cloud location"}),"\n",(0,s.jsx)(o.h3,{id:"authenticate-for-the-first-time",children:"Authenticate for the first time"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:"The first time you deploy an application on Google Cloud, Cloud Create redirects you to Google Cloud to loggin."}),"\n",(0,s.jsxs)(o.li,{children:["After logging sucessfully, click on the ",(0,s.jsx)(o.strong,{children:"allow"})," button to grant the permissions for Cloud Create to manage compute resources on Google Cloud on your behalf."]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step2.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step2.png",alt:"../_images/deploy-step2.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 4. Authenticate and grant permissions"}),"\n",(0,s.jsxs)(o.admonition,{type:"important",children:[(0,s.jsx)(o.p,{children:"By clicking the allow button, you allow Cloud Create to access the following information:"}),(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsx)(o.li,{children:"Read your email address for authentication purpose."}),"\n",(0,s.jsx)(o.li,{children:"List your Google projects so you can choose a Google project to deploy."}),"\n",(0,s.jsx)(o.li,{children:"Manage compute resources on Google Cloud (e.g., to create and delete a VM)."}),"\n"]}),(0,s.jsx)(o.p,{children:"In particular, Cloud Create requests the following OAuth scopes:"}),(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.code,{children:"https://www.googleapis.com/auth/userinfo.email"})}),"\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.code,{children:"https://www.googleapis.com/auth/cloudplatformprojects.readonly"})}),"\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.code,{children:"https://www.googleapis.com/auth/compute"})}),"\n"]})]}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsxs)(o.p,{children:["You can revoke access any time later. See ",(0,s.jsx)(o.a,{href:"#how-to-revoke-access",children:"3. How to revoke access"}),"."]})}),"\n",(0,s.jsx)(o.h3,{id:"choose-a-google-project-to-deploy",children:"Choose a Google project to deploy"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:"Cloud Create displays a list of the Google projects, which you have the permissions to create a compute resource."}),"\n",(0,s.jsx)(o.li,{children:"Choose one Google project you want to deploy your app into."}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step3.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step3.png",alt:"../_images/deploy-step3.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 5. Choose a google project to deploy"}),"\n",(0,s.jsx)(o.admonition,{type:"note",children:(0,s.jsxs)(o.p,{children:["If no projects are dislayed, it means you do not have the roles mentioned in the ",(0,s.jsx)(o.a,{href:"#prerequisites",children:"1. Prerequisites"}),". In such a case, ask your Google administrators to assign a role in a Google project for you."]})}),"\n",(0,s.jsx)(o.h3,{id:"choose-an-availability-zone-and-keypair-optional",children:"Choose an availability zone and keypair (optional)"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["Click ",(0,s.jsx)(o.strong,{children:"Configure cloud provider"})]}),"\n",(0,s.jsxs)(o.li,{children:["Choose a ",(0,s.jsx)(o.strong,{children:"Compute"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:["Choose an availability ",(0,s.jsx)(o.strong,{children:"zone"})," from the dropbox. The default availability zone is ",(0,s.jsx)(o.code,{children:"europe-west1-c"})," if not set."]}),"\n",(0,s.jsxs)(o.li,{children:["Choose a ",(0,s.jsx)(o.strong,{children:"keypair"})," from the dropbox."]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step4.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-step4.png",alt:"../_images/deploy-step4.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 6. Choose a zone and keypair"}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsx)(o.p,{children:"If the keypair dropbox is empty, you can create a keypair from the Open Telekom Cloud console and refresh the page to display it."})}),"\n",(0,s.jsx)(o.h3,{id:"deploy",children:"Deploy"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["Click ",(0,s.jsx)(o.strong,{children:"Deploy"})," to start."]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"how-to-revoke-access",children:"How to revoke access"}),"\n",(0,s.jsx)(o.p,{children:"In step 2, you grant Cloud Create the permissions to manage compute resources on your behalf. You can revoke this access anytime."}),"\n",(0,s.jsx)(o.p,{children:"To revoke:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["Go to: 1. ",(0,s.jsx)(o.strong,{children:"Manage your Google account"})," / 2. ",(0,s.jsx)(o.strong,{children:"Security"})," / 3. ",(0,s.jsx)(o.strong,{children:"Third party apps with account access"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:["Click on ",(0,s.jsx)(o.strong,{children:"Revoke access"})," button."]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.a,{href:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-revoke.png",children:(0,s.jsx)(o.img,{src:"https://docs.otc.t-systems.com/cloud-create/umn/_images/deploy-revoke.png",alt:"../_images/deploy-revoke.png"})})}),"\n",(0,s.jsx)(o.p,{children:"Figure 7. Revoke token"}),"\n",(0,s.jsx)(o.p,{children:"After the access is revoked, if you deploy your app on Google Cloud again, Cloud Create will ask you to authenticate to Google Cloud again (i.e., it will repeat step 2)."})]})}function p(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},28453:(e,o,l)=>{l.d(o,{R:()=>i,x:()=>r});var s=l(96540);const n={},t=s.createContext(n);function i(e){const o=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function r(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(t.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30139.9e342df2.js b/pr-preview/pr-186/assets/js/30139.9e342df2.js new file mode 100644 index 000000000..d2c2de3f6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/30139.9e342df2.js @@ -0,0 +1,2 @@ +/*! For license information please see 30139.9e342df2.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30139],{88114:(o,e,t)=>{t.d(e,{c:()=>i});var n,r,a,i=(n=function(o){!function(){var e={}.hasOwnProperty;function t(){for(var o=[],n=0;n{t.r(e),t.d(e,{scale_dropdown:()=>d});var n=t(90936),r=t(88114),a=t(91779),i=t(94200);const d=class{constructor(o){(0,n.r)(this,o),this.scaleInput=(0,n.c)(this,"scale-input",7),this.scaleInputLegacy=(0,n.c)(this,"scaleInput",7),this.scaleChange=(0,n.c)(this,"scale-change",7),this.scaleChangeLegacy=(0,n.c)(this,"scaleChange",7),this.scaleFocus=(0,n.c)(this,"scale-focus",7),this.scaleFocusLegacy=(0,n.c)(this,"scaleFocus",7),this.scaleBlur=(0,n.c)(this,"scale-blur",7),this.scaleBlurLegacy=(0,n.c)(this,"scaleBlur",7),this.scaleKeyDown=(0,n.c)(this,"scale-keydown",7),this.scaleKeyDownLegacy=(0,n.c)(this,"scaleKeydown",7),this.name="",this.label="",this.helperText="",this.status="",this.invalid=!1,this.variant="informational",this.value="",this.controlled=!1,this.hideLabelVisually=!1,this.internalId=(0,a.g)(),this.handleSelectChange=o=>{const e=o.target;this.controlled?((0,a.e)(this,"scaleChange",{value:e.value}),this.selectElement.value=String(this.value),this.forceUpdate=String(Date.now())):(this.value=e.value||"",this.emitChange())},this.handleInput=o=>{const e=o.target;e&&(this.value=e.value||"",this.emitChange()),(0,a.e)(this,"scaleInput",o)},this.handleChange=o=>{const e=o.target;e&&(this.value=e.value||"",this.emitChange())},this.handleFocus=()=>{(0,a.e)(this,"scaleFocus")},this.handleBlur=()=>{(0,a.e)(this,"scaleBlur")},this.handleKeyDown=o=>{(0,a.e)(this,"scaleKeyDown",o)}}componentWillLoad(){this.hasSlotIcon=!!this.hostElement.querySelector('[slot="icon"]'),null==this.inputId&&(this.inputId="input-dropdown-"+this.internalId)}componentDidLoad(){const o=this.selectElement,e=o.selectedIndex>-1?o.options[o.selectedIndex].value:null;this.value?o.value=String(this.value):e&&(this.value=e),this.selectElement&&(this.mutationObserver=new MutationObserver((()=>{this.forceUpdate=String(Date.now())})),this.mutationObserver.observe(this.hostElement,{childList:!0,subtree:!0}))}componentDidUpdate(){this.hasSlotIcon=!!this.hostElement.querySelector('[slot="icon"]')}componentDidRender(){const o=null==this.value?"":this.value.toString();this.controlled&&this.selectElement.value.toString()!==o&&(this.selectElement.value=o),""!==this.status&&(0,i.s)({tag:"deprecated",message:'Property "status" is deprecated. Please use the "invalid" property!',type:"warn",source:this.hostElement}),this.size&&(0,i.s)({tag:"deprecated",message:'Property "size" is deprecated. Please use css overwrite!',type:"warn",source:this.hostElement})}disconnectedCallback(){this.mutationObserver&&this.mutationObserver.disconnect()}emitChange(){(0,a.e)(this,"scaleChange",{value:null==this.value?this.value:this.value.toString()})}render(){const o="error"===this.status||this.invalid?{"aria-invalid":"true"}:{},e={"aria-describedBy":`helper-message-${this.internalId}`};return(0,n.h)(n.a,null,(0,n.h)("div",{class:this.getCssClassMap()},(0,n.h)("label",{class:"input__label",htmlFor:this.inputId},this.label),(0,n.h)("div",{class:"input__dropdown-wrapper"},(0,n.h)("select",Object.assign({ref:o=>this.selectElement=o,class:"input__dropdown",value:this.value,onChange:this.handleSelectChange,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,disabled:this.disabled,required:this.required,multiple:this.multiple,id:this.inputId,name:this.name,size:this.visibleSize},o,this.helperText?e:{}),(0,n.h)("slot",null)),(0,n.h)("div",{class:"input__dropdown-icon"},this.hasSlotIcon?(0,n.h)("slot",{name:"icon"}):(0,n.h)("scale-icon-navigation-collapse-down",{size:20,decorative:!0}))),this.helperText&&(0,n.h)("scale-helper-text",{helperText:this.helperText,variant:this.invalid?"danger":this.variant})))}getCssClassMap(){return(0,r.c)("dropdown",this.disabled&&"dropdown--disabled",this.transparent&&"dropdown--transparent",this.status&&`dropdown--status-${this.status}`,this.helperText&&"dropdown--helper-text",this.variant&&`dropdown--variant-${this.invalid?"danger":this.variant}`,null!=this.value&&""!==this.value&&"animated",this.hideLabelVisually&&"dropdown--hide-label")}get hostElement(){return(0,n.g)(this)}};d.style="scale-dropdown{--font-weight:var(--telekom-typography-font-weight-bold);--height:var(--telekom-spacing-composition-space-13);--spacing-x:var(--telekom-spacing-composition-space-05);--spacing-dropdown:18px var(--telekom-spacing-composition-space-12) 5px\n calc(var(--spacing-x) - 1px);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--radius:var(--telekom-radius-standard);--border:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard);--border-danger:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard);--border-success:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-success-standard);--border-warning:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-warning-standard);--border-color-hover:var(--telekom-color-ui-border-hovered);--border-color-focus:var(--telekom-color-ui-border-hovered);--border-color-disabled:var(--telekom-color-ui-border-disabled);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--color-disabled:var(--telekom-color-text-and-icon-disabled);--background-disabled:none;--color:var(--telekom-color-text-and-icon-standard);--background-color:var(--telekom-color-ui-state-fill-standard);--margin-bottom-helper-text:var(--telekom-spacing-composition-space-03);--transition-input:var(--transition);--font-size-input:var(--telekom-typography-font-size-body);--spacing-y-meta:var(--telekom-spacing-composition-space-03);--color-meta:var(--telekom-color-text-and-icon-standard);--height-icon:var(--telekom-spacing-composition-space-07);--color-icon:var(--telekom-color-text-and-icon-standard);--color-icon-hover:var(--telekom-color-text-and-icon-standard);--color-icon-active:var(--telekom-color-text-and-icon-standard);--transition-icon:var(--transition);--color-label:var(--telekom-color-text-and-icon-additional);--z-index-label:var(--scl-z-index-10);--transition-label:var(--transition);--font-size-label:var(--telekom-typography-font-size-body);--font-weight-label:var(--telekom-typography-font-weight-medium);--font-size-label-focus:var(--telekom-typography-font-size-small);--font-weight-label-focus:var(--telekom-typography-font-weight-bold)}.dropdown{position:relative}.dropdown .input__dropdown{width:100%;height:var(--height);margin:0;display:flex;outline:none;padding:var(--spacing-dropdown);z-index:1;box-sizing:border-box;transition:var(--transition-input);font-family:inherit;font-size:var(--font-size-input);border-radius:var(--radius);border:var(--border);white-space:nowrap;line-height:var(--font-size-input);text-overflow:ellipsis;appearance:none;-webkit-appearance:none;background-color:var(--background-color);color:var(--color)}.dropdown--hide-label .input__dropdown{padding:5px var(--telekom-spacing-composition-space-12) 5px\n calc(var(--spacing-x) - 1px)}.dropdown--hide-label .input__label{visibility:hidden}.dropdown .input__dropdown-wrapper{position:relative}.dropdown.dropdown--helper-text .input__dropdown-wrapper{margin-bottom:var(--margin-bottom-helper-text)}.dropdown .input__meta{display:flex;justify-content:space-between;margin-top:var(--spacing-y-meta);color:var(--color-meta)}.dropdown.dropdown--disabled .input__dropdown-wrapper .input__dropdown-icon{color:var(--color-disabled)}.dropdown:not(.dropdown--disabled):hover .input__dropdown-icon{color:var(--color-icon-hover)}.dropdown:not(.dropdown--disabled):active .input__dropdown-icon{color:var(--color-icon-active)}.dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:hover{border-color:var(--border-color-hover);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:hover{border-color:var(--telekom-color-functional-danger-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-warning .input__dropdown:hover{border-color:var(--telekom-color-functional-warning-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-success .input__dropdown:hover{border-color:var(--telekom-color-functional-success-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:focus{border-color:var(--border-color-focus)}.dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:focus{border-color:var(--telekom-color-functional-danger-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-warning .input__dropdown:focus{border-color:var(--telekom-color-functional-warning-hovered)}.dropdown:not(.dropdown--disabled).dropdown--variant-success .input__dropdown:focus{border-color:var(--telekom-color-functional-success-hovered)}.dropdown:not(.dropdown--disabled) .input__dropdown:focus{outline:var(--focus-outline);outline-offset:1px}.dropdown .input__dropdown-wrapper .input__dropdown-icon{top:50%;right:var(--spacing-x);position:absolute;transform:translateY(-50%);pointer-events:none;height:var(--height-icon);color:var(--color-icon);transition:var(--transition-icon)}.input__label{top:-2px;color:var(--color-label);display:flex;z-index:var(--z-index-label);position:absolute;transition:var(--transition-label);pointer-events:none;font-size:var(--font-size-label);transform:translate(\n var(--spacing-x),\n calc(\n (var(--telekom-spacing-composition-space-14) - var(--font-size-label)) / 2\n )\n );font-weight:var(--font-weight-label)}.animated .input__label{transform:translate(\n var(--spacing-x),\n var(--telekom-spacing-composition-space-04)\n );font-size:var(--font-size-label-focus);font-weight:var(--font-weight-label-focus);line-height:var(--telekom-typography-font-size-small)}.dropdown--variant-danger .input__dropdown{border:var(--border-danger)}.dropdown--variant-warning .input__dropdown{border:var(--border-warning)}.dropdown--variant-success .input__dropdown{border:var(--border-success)}.dropdown--transparent .input__dropdown{background-color:transparent}.dropdown--disabled label,.dropdown--disabled .input__label,.dropdown--disabled input,.dropdown--disabled .input__dropdown{cursor:not-allowed;border-color:var(--border-color-disabled);color:var(--color-disabled);background:var(--background-disabled)}[data-mode='light'] .dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:hover{background-color:var(--telekom-color-ui-state-fill-hovered)}[data-mode='light'] .dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:hover{background-color:var(--telekom-color-ui-state-fill-hovered)}[data-mode='dark'] .dropdown .input__dropdown{background-color:var(--telekom-color-background-canvas)}[data-mode='dark'] .dropdown:not(.dropdown--disabled):not(.dropdown--variant-danger) .input__dropdown:hover{background-color:#1b1b1b}[data-mode='dark'] .dropdown:not(.dropdown--disabled).dropdown--variant-danger .input__dropdown:hover{background-color:#1b1b1b}[data-mode='dark'] .dropdown--disabled .input__dropdown{background-color:var(--telekom-color-background-canvas)}@media (prefers-color-scheme: dark){.dropdown .input__dropdown{background-color:var(--telekom-color-background-canvas)}.dropdown:not(.dropdown--disabled):not(.dropdown--status-error) .input__dropdown:hover{background-color:#1b1b1b}.dropdown:not(.dropdown--disabled).dropdown--status-error .input__dropdown:hover{background-color:#1b1b1b}.dropdown--disabled .input__dropdown{background-color:var(--telekom-color-background-canvas)}}"},94200:(o,e,t)=>{t.d(e,{s:()=>a});const n={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},r={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function a({tag:o="WIP",extraMessage:e=null,message:t=null,source:a=null,type:i="info"}){(0,console[i])(`%c scale \u2013 ${n[o]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${t||r[o]} ${e?"\n"+e:""}\n `,null!==a?"\nsource:":"","object"==typeof a?a:`${a}`,null!==a?"\n\n":"")}},91779:(o,e,t)=>{t.d(e,{a:()=>c,b:()=>i,c:()=>r,e:()=>a,g:()=>l,h:()=>n,i:()=>d});const n=o=>!!o.shadowRoot&&!!o.attachShadow,r=o=>{let e=document.styleSheets[0];if(!e){const o=document.createElement("style");document.head.appendChild(o),e=document.styleSheets[0],document.head.removeChild(o)}return function(){try{return/^:/.test(o)||(o=":"+o),e.insertRule("html"+o+"{}",0),e.deleteRule(0),!0}catch(t){return!1}}()};function a(o,e,t){const n=e+"Legacy",r=[];return void 0!==o[n]&&r.push(o[n].emit(t)),r.push(o[e].emit(t)),r}function i(o,e){let t=o.target;const n=null!=t.shadowRoot,r=n?o.composedPath():[];do{if(t===e)return!1;t=n?r.shift():t.parentNode}while(t);return!0}const d=o=>null!=o&&1===o.nodeType&&"SCALE-ICON"===o.nodeName.toUpperCase().substring(0,10);let s=0;function l(){return s++}const c=o=>Promise.all(o.getAnimations({subtree:!0}).map((o=>o.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30139.9e342df2.js.LICENSE.txt b/pr-preview/pr-186/assets/js/30139.9e342df2.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/30139.9e342df2.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/3028.265f853f.js b/pr-preview/pr-186/assets/js/3028.265f853f.js new file mode 100644 index 000000000..5bea3f0f8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3028.265f853f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3028; +exports.ids = [3028]; +exports.modules = { + +/***/ 93028: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_device_tv: () => (/* binding */ DeviceDeviceTv) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceDeviceTv = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M1 3.5V16a3 3 0 003 3h5.44l-.11.21A1.5 1.5 0 018 20H5.5v1.5h13V20H16a1.5 1.5 0 01-1.325-.79L14.56 19H20a3 3 0 003-3V3.5H1zm8.5 11.35v-7.2l5.5 3.6-5.5 3.6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23 3.5V16a3.01 3.01 0 01-2.824 2.995L20 19h-5.45l.2.2c.227.455.661.744 1.151.793l.149.007h2.5v1.5h-13V20h2.5c.5 0 .959-.248 1.226-.669l.074-.131.1-.2H4a3.01 3.01 0 01-2.995-2.824L1 16V3.5h22zM21.5 5h-19v11c0 .8.576 1.423 1.352 1.493L4 17.5h16c.8 0 1.423-.576 1.493-1.352L21.5 16V5zm-12 2.65l5.5 3.6-5.5 3.6v-7.2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceDeviceTv.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/302bd8a9.b674414c.js b/pr-preview/pr-186/assets/js/302bd8a9.b674414c.js new file mode 100644 index 000000000..c160ff814 --- /dev/null +++ b/pr-preview/pr-186/assets/js/302bd8a9.b674414c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[55484],{68171:s=>{s.exports=JSON.parse('{"tag":{"label":"ssh","permalink":"/docs-next/pr-preview/pr-186/docs/tags/ssh","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/databases/distributed-cache-service/using-ssh-tunneling-for-public-access-to-a-dcs-instance","title":"Using SSH Tunneling for Public Access to a DCS Instance","description":"VPCs are used to ensure network security of public cloud services, such as DCS. Your DCS instance can be accessed only by an ECS that is in the same VPC as the instance.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-ssh-tunneling-for-public-access-to-a-dcs-instance"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/303.6d6eb895.js b/pr-preview/pr-186/assets/js/303.6d6eb895.js new file mode 100644 index 000000000..72bb83e30 --- /dev/null +++ b/pr-preview/pr-186/assets/js/303.6d6eb895.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 303; +exports.ids = [303]; +exports.modules = { + +/***/ 70303: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_prepaid_activate: () => (/* binding */ ContentPrepaidActivate) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentPrepaidActivate = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.5 11a6.5 6.5 0 110 13 6.5 6.5 0 010-13zm0 1.5a5 5 0 100 10 5 5 0 000-10zM19 0v9.645a8.205 8.205 0 00-1.5-.145 7.94 7.94 0 00-2.57.43 2.5 2.5 0 00-2.257-1.924L12.5 8h-5a2.5 2.5 0 00-2.495 2.336L5 10.5v5a2.5 2.5 0 002.336 2.495L7.5 18h2.025a7.96 7.96 0 001.18 3.723l.18.277H4a3 3 0 01-2.995-2.824L1 19V6.5L7.5 0H19zm.655 15.215a.751.751 0 011.138.976l-.073.084-4 4-2.55-2.545a.751.751 0 01.98-1.133l.085.073 1.5 1.5 2.95-2.95-.03-.005zM12.5 9.5a1 1 0 01.993.883l.007.117v.08a8 8 0 00-3.889 5.635l-.041.285H7.5a1 1 0 01-.993-.883L6.5 15.5v-5a1 1 0 01.883-.993L7.5 9.5h5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75 11.5c3.45 0 6.25 2.8 6.25 6.25S21.2 24 17.75 24s-6.25-2.8-6.25-6.25 2.8-6.25 6.25-6.25zM19 0v10.1c-.3-.037-.6-.075-.921-.091L17.75 10h-.25V1.5H8.1L2.5 7.1V19c0 .8.576 1.423 1.352 1.493L4 20.5h6.5c.16.44.352.848.576 1.224l.174.276H4a3.01 3.01 0 01-2.995-2.824L1 19V6.5L7.5 0H19zm1.85 15.55a.722.722 0 00-.965-.074l-.085.074-2.8 2.8-1.4-1.4c-.3-.3-.75-.3-1.05 0a.722.722 0 00-.074.965l.074.085L17 20.5l3.9-3.9c.3-.3.25-.75-.05-1.05zM12.5 8a2.473 2.473 0 012.495 2.333L15 10.5l-.324.126a6.996 6.996 0 00-.9.45l-.276.174v-.75c0-.51-.388-.935-.884-.993L12.5 9.5h-5c-.51 0-.935.388-.993.884L6.5 10.5v5c0 .51.388.935.884.993l.116.007h2.6c-.037.3-.075.6-.091.921L10 17.75V18H7.5a2.473 2.473 0 01-2.495-2.333L5 15.5v-5a2.473 2.473 0 012.333-2.495L7.5 8h5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentPrepaidActivate.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30315.348ad92d.js b/pr-preview/pr-186/assets/js/30315.348ad92d.js new file mode 100644 index 000000000..d344fbe80 --- /dev/null +++ b/pr-preview/pr-186/assets/js/30315.348ad92d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30315],{30315:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_volume_up:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M13 3.5v17h-2l-4.5-4H5a3 3 0 01-2.995-2.824L2 13.5v-3a3 3 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm6 4.75a.75.75 0 01.743.648L19.75 9v2.25H22a.75.75 0 01.102 1.493L22 12.75h-2.25V15a.75.75 0 01-1.493.102L18.25 15v-2.25H16a.75.75 0 01-.102-1.493L16 11.25h2.25V9a.75.75 0 01.75-.75z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M13 3.5v17h-2l-4.5-4H5a3.003 3.003 0 01-2.995-2.824L2 13.5v-3a3.003 3.003 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm-1.5 1.56L7.07 9H5c-.776 0-1.42.598-1.493 1.356L3.5 10.5v3c0 .776.598 1.42 1.356 1.493L5 15h2.07l4.43 3.94V5.06zM19 8.25c.38 0 .694.281.743.648L19.75 9v2.25H22a.749.749 0 01.102 1.493L22 12.75h-2.25V15a.749.749 0 01-1.493.102L18.25 15v-2.25H16a.749.749 0 01-.102-1.493L16 11.25h2.25V9c0-.415.335-.75.75-.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30331.60a45fad.js b/pr-preview/pr-186/assets/js/30331.60a45fad.js new file mode 100644 index 000000000..ac202ff9c --- /dev/null +++ b/pr-preview/pr-186/assets/js/30331.60a45fad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30331],{30331:(l,a,t)=>{t.r(a),t.d(a,{scale_icon_weather_cloudy_snow:()=>i});var e=t(90936);const i=class{constructor(l){(0,e.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},a=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,a),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M7.08 18.622l1.04.6-.681 1.178h1.36v1.2H7.44l.68 1.178-1.04.6L6.4 22.2l-.68 1.178-1.04-.6.681-1.178H4v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm5.2-3.6l1.04.6-.681 1.178h1.36V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6L10.56 18H9.2v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.785-9.077a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753 4.24 4.24 0 01-2.698 3.952l-.191.069v-1.438a1 1 0 00-.402-.8l-.099-.066-2.5-1.443a1 1 0 00-.88-.059l-.12.059-2.498 1.438a1 1 0 00-.494.75l-.007.117v1.651h-.586l-.614-.355a1.002 1.002 0 00-.882-.059l-.119.059-.61.352h-.861A3.858 3.858 0 01.789 13.74c0-1.4.755-2.683 1.952-3.365.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.256zm9.251 4.601a.6.6 0 01.766-.069l.083.07.85.848a.601.601 0 01-.776.912l-.074-.063-.849-.849a.601.601 0 010-.849zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.45 5.45 0 00-1.344-1.24 6.769 6.769 0 00-2.628-2.996A3 3 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zM11.757 2.556a.6.6 0 01.765-.069l.083.07.85.848a.601.601 0 01-.776.912l-.074-.063-.848-.849a.6.6 0 010-.849zm8.839 0a.6.6 0 01.917.766l-.069.083-.849.849a.599.599 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zM16.6.55a.6.6 0 01.592.502l.008.098v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z","fill-rule":"evenodd"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M7.08 18.622l1.04.6-.68 1.178H8.8v1.2H7.44l.68 1.178-1.04.6L6.4 22.2l-.68 1.178-1.04-.6.68-1.178H4v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm5.2-3.6l1.04.6-.68 1.178H14V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6.68-1.178H9.2v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.78-9.04a5.577 5.577 0 015.242 3.638A4.246 4.246 0 0118 13.364a4.238 4.238 0 01-2.607 3.905l-.193.075v-1.306a3.039 3.039 0 001.6-2.674 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.5 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 13.727a2.676 2.676 0 002.504 2.668l.169.005H8v1.2H4.673A3.877 3.877 0 01.8 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 5.981zm9.246 4.564a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 010-.849zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-2.254-4.244a.6.6 0 01.917.766l-.069.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zm-8.84 0a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 010-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30433.6448bb3b.js b/pr-preview/pr-186/assets/js/30433.6448bb3b.js new file mode 100644 index 000000000..034043abf --- /dev/null +++ b/pr-preview/pr-186/assets/js/30433.6448bb3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30433],{30433:(l,t,h)=>{h.r(t),h.d(t,{scale_icon_communication_mms_incoming:()=>e});var i=h(90936);const e=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M19.5 3v8.406l-6.32 4.088a1.5 1.5 0 00-.68 1.255c0 .215.05.422.136.611l.071.139H10.62l-3.274 3.274a1.63 1.63 0 01-1.166.491c-.812 0-1.592-.597-1.672-1.514l-.007-.156V17.5H3.358a2.857 2.857 0 01-2.852-2.69l-.005-.168V3h19zm0 10.15v2.849h3.75a.75.75 0 01.102 1.493l-.102.007H19.5v2.85l-5.5-3.6 5.5-3.6zm-4.575-4.906c-.767 0-1.355.495-1.355 1.287 0 .48.221.923.776 1.13l.146.046.476.136c.322.086.495.216.495.476 0 .266-.18.464-.538.464-.27 0-.48-.107-.576-.374l-.03-.108h-.83c.075.816.582 1.262 1.436 1.262.779 0 1.391-.464 1.391-1.293 0-.548-.327-.975-.859-1.164l-.137-.043-.476-.13c-.229-.062-.42-.167-.42-.458 0-.29.216-.451.5-.451.286 0 .455.122.528.366l.023.098h.817c-.08-.761-.532-1.244-1.367-1.244zm-5.41.093h-.767v4.133h.835v-2.333h.037l1.009 1.82h.266l1.015-1.82h.037v2.333h.829V8.337h-.768l-1.225 2.29h-.037l-1.23-2.29zm-5.012 0h-.767v4.133h.835v-2.333h.037l1.01 1.82h.265l1.015-1.82h.037v2.333h.829V8.337h-.767l-1.225 2.29h-.038l-1.23-2.29z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M19.5 3v8.357l-1.5.982V4.5H2v10.143c0 .704.54 1.285 1.227 1.35l.13.007H6v3.596c0 .07.045.131.105.157.055.023.122.017.18-.04L9.998 16H12.5v1.5h-1.881l-3.274 3.274a1.63 1.63 0 01-1.167.491c-.81 0-1.591-.597-1.671-1.514l-.007-.155V17.5H3.357a2.857 2.857 0 01-2.852-2.69L.5 14.644V3h19zm0 10.15V16h3.75a.75.75 0 01.102 1.493l-.102.007H19.5v2.85l-5.5-3.6 5.5-3.6zm-4.576-4.905c.783 0 1.23.424 1.348 1.104l.02.14h-.818c-.056-.31-.229-.465-.55-.465-.285 0-.502.161-.502.452 0 .259.152.37.347.436l.075.022.476.13c.612.161.996.613.996 1.207 0 .829-.612 1.292-1.392 1.292-.8 0-1.296-.391-1.416-1.113l-.02-.148h.83c.075.346.303.482.606.482.359 0 .539-.198.539-.464 0-.228-.133-.355-.382-.442l-.114-.034-.476-.136c-.662-.18-.922-.656-.922-1.176 0-.792.588-1.287 1.355-1.287zm-5.41.093l1.232 2.289h.037l1.225-2.29h.767v4.133h-.829v-2.332h-.037l-1.015 1.819h-.266L9.62 10.138h-.037v2.332h-.836V8.337h.768zm-5.012 0l1.231 2.289h.038l1.224-2.29h.768v4.133h-.829v-2.332h-.037l-1.016 1.819h-.265l-1.009-1.819H4.57v2.332h-.836V8.337h.768z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};e.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30638.cc75f349.js b/pr-preview/pr-186/assets/js/30638.cc75f349.js new file mode 100644 index 000000000..ad50190b1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/30638.cc75f349.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30638],{30638:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_home_iot:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M15.25 10.5c.85 0 1.5.65 1.5 1.5 0 .825-.678 1.499-1.511 1.499l-.126-.005-.127-.016-.136-.028-3.6 3.6v3.15c.45.25.75.75.75 1.3 0 .85-.65 1.5-1.5 1.5S9 22.35 9 21.5c0-.45.2-.867.52-1.14l.11-.086.12-.074v-3.75l4.05-4.05c-.25-1 .5-1.9 1.45-1.9zm-.497-6.499A7.59 7.59 0 0120.1 10.4c2.1.45 3.65 2.3 3.65 4.55a4.587 4.587 0 01-4.174 4.58l-.215.015-.211.005h-6.411v-1.883l2.685-2.684A2.998 2.998 0 0018.24 12a2.958 2.958 0 00-3.332-2.968l-.168.025.01-5.051a.022.022 0 00.003-.005zM10.25 4l.01 3.083-3.964 3.964-.075-.001c-.786 0-1.525.305-2.082.858a2.998 2.998 0 00-.879 2.146 2.958 2.958 0 002.99 2.99c.667 0 1.314-.227 1.84-.636l.17-.143-.01 3.239h-2.4c-3.1 0-5.6-2.5-5.6-5.6 0-3 2.35-5.45 5.25-5.65a7.698 7.698 0 014.21-4.06l.268-.1.272-.09zM12.5.5c.85 0 1.5.65 1.5 1.5 0 .44-.192.848-.5 1.173l-.12.118-.13.109v5l-5.5 5.5c.1.9-.65 1.65-1.5 1.65s-1.5-.65-1.5-1.5c0-.887.682-1.514 1.47-1.514.1 0 .2.01.302.031l.153.039.125.044 4.95-4.95V3.3C11.3 3.05 11 2.55 11 2c0-.85.65-1.5 1.5-1.5z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M15.25 10.5c.85 0 1.5.65 1.5 1.5a1.51 1.51 0 01-1.764 1.478l-.136-.028-3.6 3.6v3.15c.45.25.75.75.75 1.3 0 .85-.65 1.5-1.5 1.5S9 22.35 9 21.5c0-.5.248-.959.631-1.226l.119-.074v-3.75l4.05-4.05c-.25-1 .5-1.9 1.45-1.9zm-.5-6.5c2.85.85 5 3.35 5.35 6.4 2.1.45 3.65 2.3 3.65 4.55a4.587 4.587 0 01-4.389 4.595l-.211.005h-6.4v-1.5h6.45c1.7 0 3.1-1.4 3.1-3.1 0-1.15-.6-2.1-1.5-2.65-.545-.327-1.012-.417-1.533-.46l-.617-.04-.003-.502A5.856 5.856 0 0018.4 9.6a6.192 6.192 0 00-3.414-3.9l-.236-.1V4zm-4.5 0v1.6c-1.4.55-2.5 1.55-3.2 2.9l-.08.185-.138.342-.283.772-.166-.016-.166-.008-.21-.002c-.038 0-.078 0-.12.002l-.262.014a4.463 4.463 0 00-1.225.261c-1.55.6-2.65 2.1-2.65 3.85 0 2.182 1.74 3.988 3.897 4.095L5.85 18h2.4v1.5h-2.4c-3.1 0-5.6-2.5-5.6-5.6 0-3 2.35-5.45 5.25-5.65a7.696 7.696 0 014.478-4.16L10.25 4zM12.5.5c.85 0 1.5.65 1.5 1.5 0 .495-.243.95-.62 1.29l-.13.11v5l-5.5 5.5c.1.9-.65 1.65-1.5 1.65s-1.5-.65-1.5-1.5c0-1.054.964-1.741 1.925-1.444l.125.044 4.95-4.95V3.3C11.3 3.05 11 2.55 11 2c0-.85.65-1.5 1.5-1.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30677.cbaaaaec.js b/pr-preview/pr-186/assets/js/30677.cbaaaaec.js new file mode 100644 index 000000000..908187623 --- /dev/null +++ b/pr-preview/pr-186/assets/js/30677.cbaaaaec.js @@ -0,0 +1,2 @@ +/*! For license information please see 30677.cbaaaaec.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30677],{88114:(e,t,o)=>{o.d(t,{c:()=>n});var s,a,i,n=(s=function(e){!function(){var t={}.hasOwnProperty;function o(){for(var e=[],s=0;s{o.r(t),o.d(t,{scale_modal:()=>p});var s=o(90936),a=o(88114),i=o(91779);function n(e,t,o,s=20,a=0){const i=[];if(a>=s)return i;const l=e=>{const i=e.assignedNodes().filter((e=>1===e.nodeType));if(i.length>0){return n(i[0].parentElement,t,o,s,a+1)}return[]},r=Array.from(e.children||[]);for(const c of r)t(c)||(o(c)&&i.push(c),null!=c.shadowRoot?i.push(...n(c.shadowRoot,t,o,s,a+1)):"SLOT"===c.tagName?i.push(...l(c)):i.push(...n(c,t,o,s,a+1)));return i}function l(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"false"!==e.getAttribute("aria-hidden")||"none"===e.style.display||"0"===e.style.opacity||"hidden"===e.style.visibility||"collapse"===e.style.visibility}function r(e){return"-1"!==e.getAttribute("tabindex")&&!l(e)&&!function(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&"false"!==e.getAttribute("aria-disabled")}(e)&&(e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement)}function c(e,t,o){const s=e.animate(t,Object.assign(Object.assign({},o),{fill:"both"}));return s.addEventListener("finish",(()=>{s.commitStyles(),s.cancel()})),s}const d={easing:"cubic-bezier(0.390, 0.575, 0.565, 1.000)"},h={fadeIn:[Object.assign(Object.assign({offset:0},d),{opacity:0}),Object.assign(Object.assign({offset:1},d),{opacity:1})],fadeOut:[Object.assign(Object.assign({offset:0},d),{opacity:1}),Object.assign(Object.assign({offset:1},d),{opacity:0})],fadeInTop:[Object.assign(Object.assign({offset:0},d),{opacity:0,top:"-3rem"}),Object.assign(Object.assign({offset:1},d),{opacity:1,top:0})]},m="ResizeObserver"in window,p=class{constructor(e){(0,s.r)(this,e),this.scaleOpen=(0,s.c)(this,"scale-open",7),this.scaleOpenLegacy=(0,s.c)(this,"scaleOpen",7),this.scaleBeforeClose=(0,s.c)(this,"scale-before-close",7),this.scaleBeforeCloseLegacy=(0,s.c)(this,"scaleBeforeClose",7),this.scaleClose=(0,s.c)(this,"scale-close",7),this.scaleCloseLegacy=(0,s.c)(this,"scaleClose",7),this.size="default",this.opened=!1,this.duration=200,this.closeButtonLabel="Close",this.closeButtonTitle="Close",this.omitCloseButton=!1,this.alignActions="right",this.allowInjectingStyleToBody=!1,this.isOpen=this.opened||!1,this.hasActionsSlot=!1,this.hasBody=!1,this.hasScroll=!1,this.bodyOverflowValue="",this.focusableElements=[],this.handleKeypress=e=>{this.isOpen&&"Escape"===e.key&&this.emitBeforeClose("ESCAPE_KEY")},this.handleTopFocus=()=>{this.attemptFocus(this.getLastFocusableElement())},this.handleBottomFocus=()=>{this.attemptFocus(this.getFirstFocusableElement())}}disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect()}componentWillRender(){const e=this.hostElement.querySelectorAll('[slot="action"]'),t=Array.from(this.hostElement.shadowRoot.querySelectorAll("slot")).find((e=>!e.name));this.hasActionsSlot=e.length>0,null!=t&&(this.hasBody=t.assignedElements().length>0)}emitBeforeClose(e){(0,i.e)(this,"scaleBeforeClose",{trigger:e}).some((e=>e.defaultPrevented))||(this.opened=!1)}componentDidLoad(){this.focusableElements=n(this.hostElement.shadowRoot,(e=>l(e)||e.matches("[data-focus-trap-edge]")),r),m&&(this.resizeObserver=new ResizeObserver((()=>{this.setHasScroll()})),this.resizeObserver.observe(this.modalBody)),this.setHasScroll()}setHasScroll(){const e=this.modalBody;this.hasScroll=e.scrollHeight>e.clientHeight}getFirstFocusableElement(){return this.focusableElements[0]}getLastFocusableElement(){return this.focusableElements[this.focusableElements.length-1]}attemptFocus(e){null!=e?e.focus():this.closeButton.focus()}openedChanged(e){!0===e?(this.open(),this.allowInjectingStyleToBody&&(this.bodyOverflowValue=document.body.style.overflow,document.body.style.setProperty("overflow","hidden"))):(this.close(),this.allowInjectingStyleToBody&&document.body.style.setProperty("overflow",this.bodyOverflowValue))}open(){this.isOpen=!0;try{c(this.modalWindow,h.fadeInTop,{duration:this.duration,delay:.5*this.duration});c(this.modalContainer,h.fadeIn,{duration:this.duration}).addEventListener("finish",(()=>{this.attemptFocus(this.getFirstFocusableElement()),(0,i.e)(this,"scaleOpen")})),this.hostElement.addEventListener("keydown",this.handleKeypress)}catch(e){(0,i.e)(this,"scaleOpen")}}close(){try{c(this.modalContainer,h.fadeOut,{duration:this.duration}).addEventListener("finish",(()=>{this.isOpen=!1,(0,i.e)(this,"scaleClose")})),this.hostElement.removeEventListener("keydown",this.handleKeypress)}catch(e){this.isOpen=!1,(0,i.e)(this,"scaleClose")}}render(){return(0,s.h)(s.a,null,this.styles&&(0,s.h)("style",null,this.styles),(0,s.h)("div",{ref:e=>this.modalContainer=e,class:this.getCssClassMap(),part:(0,a.c)("base",this.isOpen&&"open")},(0,s.h)("div",{class:"modal__backdrop",part:"backdrop",onClick:()=>this.emitBeforeClose("BACKDROP")}),(0,s.h)("div",{"data-focus-trap-edge":!0,onFocus:this.handleTopFocus,tabindex:"0"}),(0,s.h)("div",{class:"modal__window",part:(0,a.c)("window",this.size&&`size-${this.size}`),ref:e=>this.modalWindow=e,role:"dialog","aria-modal":"true","aria-label":this.heading},(0,s.h)("div",{class:"modal__header",part:(0,a.c)("header",this.hasScroll&&"has-scroll")},(0,s.h)("h2",{class:"modal__heading",part:"heading"},this.heading),!this.omitCloseButton&&(0,s.h)("button",{ref:e=>this.closeButton=e,class:"modal__close-button",part:"close-button",onClick:()=>this.emitBeforeClose("CLOSE_BUTTON"),"aria-label":this.closeButtonLabel,title:this.closeButtonTitle},(0,s.h)("slot",{name:"close-icon"},(0,s.h)("scale-icon-action-circle-close",{decorative:!0})))),(0,s.h)("div",{ref:e=>this.modalBody=e,class:"modal__body-wrapper",part:(0,a.c)("body-wrapper",this.hasBody&&"has-body")},(0,s.h)("div",{class:"modal__body",part:(0,a.c)("body",this.hasBody&&"has-body")},(0,s.h)("slot",null))),(0,s.h)("div",{class:"modal__actions",part:(0,a.c)("actions",`align-${this.alignActions}`,this.hasActionsSlot&&"has-actions",this.hasScroll&&"has-scroll")},(0,s.h)("slot",{name:"action"}))),(0,s.h)("div",{"data-focus-trap-edge":!0,onFocus:this.handleBottomFocus,tabindex:"0"})))}getCssClassMap(){return(0,a.c)("modal",this.isOpen&&"modal--is-open",this.hasActionsSlot&&"modal--has-actions",`modal--align-actions-${this.alignActions}`,this.hasScroll&&"modal--has-scroll",this.hasBody&&"modal--has-body",this.size&&`modal--size-${this.size}`)}get hostElement(){return(0,s.g)(this)}static get watchers(){return{opened:["openedChanged"]}}};p.style=":host{--spacing-x:var(--telekom-spacing-composition-space-06);--background-overlay:var(\n --telekom-color-background-backdrop,\n rgba(108, 108, 108, 0.7)\n );--max-height-window:calc(\n 100vh - (2 * var(--telekom-spacing-composition-space-19))\n );--radius-window:var(--telekom-radius-large);--box-shadow-window:var(--telekom-shadow-top);--background-window:var(--telekom-color-background-surface);--color-window:var(--telekom-color-text-and-icon-standard);--size-window-small:calc(\n (6 * var(--telekom-spacing-unit-x14, 3.5rem)) +\n (5 * var(--telekom-spacing-composition-space-10))\n );--size-window-default:calc(\n (8 * var(--telekom-spacing-unit-x14, 3.5rem)) +\n (7 * var(--telekom-spacing-composition-space-10))\n );--size-window-large:calc(\n (12 * var(--telekom-spacing-unit-x14, 3.5rem)) +\n (11 * var(--telekom-spacing-composition-space-10))\n );--spacing-x-header:var(--telekom-spacing-composition-space-08);--spacing-y-header:var(--telekom-spacing-composition-space-08);--border-bottom-header-has-scroll:var(--telekom-line-weight-standard) solid\n var(--telekom-color-ui-subtle);--font-family-heading:var(--telekom-typography-font-family-sans);--font-size-heading:var(--telekom-typography-font-size-callout);--font-weight-heading:var(--telekom-typography-font-weight-extra-bold);--spacing-close-button:var(--telekom-spacing-composition-space-04);--radius-close-button:var(--telekom-radius-standard);--transition-close-button:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--box-shadow-close-button-focus:0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard);--color-close-button:var(--telekom-color-text-and-icon-standard);--color-close-button-hover:var(--telekom-color-primary-hovered);--color-close-button-active:var(--telekom-color-primary-pressed);--spacing-x-body-wrapper:var(--telekom-spacing-composition-space-08);--spacing-y-body:var(--telekom-spacing-composition-space-08);--spacing-actions:var(--telekom-spacing-composition-space-06)\n var(--telekom-spacing-composition-space-08)\n var(--telekom-spacing-composition-space-08);--spacing-x-actions-slotted:var(--telekom-spacing-composition-space-04);--background-actions-has-scroll:var(\n --telekom-color-background-surface-subtle\n )}.modal{top:0;left:0;width:100%;bottom:0;display:none;z-index:100;position:fixed;background:var(--background-overlay);box-sizing:border-box;align-items:center;justify-content:center;padding-left:var(--spacing-x);padding-right:var(--spacing-x)}.modal.modal--is-open{display:flex}.modal__backdrop{top:0;left:0;width:100%;height:100%;z-index:0;position:absolute}.modal__window{width:100%;height:auto;display:flex;z-index:1;position:relative;overflow-y:auto;flex-direction:column;background-color:var(--background-window);color:var(--color-window);max-height:var(--max-height-window);min-height:var(--min-height-window);border-radius:var(--radius-window);box-shadow:var(--box-shadow-window)}.modal__window .modal__body-wrapper{overflow-y:auto;flex-shrink:1;flex-grow:1}.modal--size-small .modal__window{max-width:var(--size-window-small)}.modal--size-default .modal__window{max-width:var(--size-window-default)}.modal--size-large .modal__window{max-width:var(--size-window-large)}@media (max-height: 30em){.modal__window{max-height:calc(100vh - var(--telekom-spacing-composition-space-08))}}.modal__window:after{top:0;left:0;width:100%;border:1px solid transparent;height:100%;content:'';display:block;position:absolute;box-sizing:border-box;pointer-events:none;border-radius:var(--radius-window)}.modal__header{display:flex;align-items:flex-start;flex-shrink:0;justify-content:space-between;margin-left:var(--spacing-x-header);margin-right:var(--spacing-x-header);padding-top:var(--spacing-y-header);padding-bottom:var(--spacing-y-header)}.modal--has-scroll .modal__header{border-bottom:var(--border-bottom-header-has-scroll)}.modal__heading{margin:0;font-family:var(--font-family-heading);font-size:var(--font-size-heading);font-weight:var(--font-weight-heading)}.modal__close-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-close-button);margin-bottom:calc(-2 * var(--spacing-close-button));border:0;border-radius:var(--radius-close-button);outline:none;color:var(--color-close-button);background:transparent;transition:var(--transition-close-button);transform:translate(\n var(--spacing-close-button),\n calc(-1 * var(--spacing-close-button))\n );appearance:none;cursor:pointer;user-select:none}.modal__close-button:focus{box-shadow:var(--box-shadow-close-button-focus)}.modal__close-button:hover{color:var(--color-close-button-hover)}.modal__close-button:active{color:var(--color-close-button-active)}.modal__body-wrapper{padding-left:var(--spacing-x-body-wrapper);padding-right:var(--spacing-x-body-wrapper)}.modal--has-body .modal__body-wrapper{min-height:var(--telekom-spacing-related-lg)}.modal--has-body .modal__body{margin-top:0;margin-bottom:0}.modal--has-body:not(.modal--has-actions) .modal__body{margin-bottom:var(--spacing-y-body)}.modal--has-scroll.modal--has-body .modal__body{margin-top:var(--spacing-y-body);margin-bottom:var(--spacing-y-body)}.modal--has-body .modal__body ::slotted(*){font:var(--telekom-text-style-body)}.modal--has-body .modal__body ::slotted(*:not([slot]):first-child){margin-top:0}.modal--has-body .modal__body ::slotted(*:not([slot]):last-of-type){margin-bottom:0}.modal__actions{display:none;flex-shrink:0;justify-content:flex-end;padding:var(--spacing-actions)}.modal__actions ::slotted(*){margin-left:var(--spacing-x-actions-slotted)}.modal--has-actions .modal__actions{display:flex}.modal--align-actions-left .modal__actions{justify-content:flex-start}.modal--has-scroll .modal__actions{background-color:var(--background-actions-has-scroll)}"},91779:(e,t,o)=>{o.d(t,{a:()=>d,b:()=>n,c:()=>a,e:()=>i,g:()=>c,h:()=>s,i:()=>l});const s=e=>!!e.shadowRoot&&!!e.attachShadow,a=e=>{let t=document.styleSheets[0];if(!t){const e=document.createElement("style");document.head.appendChild(e),t=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),t.insertRule("html"+e+"{}",0),t.deleteRule(0),!0}catch(o){return!1}}()};function i(e,t,o){const s=t+"Legacy",a=[];return void 0!==e[s]&&a.push(e[s].emit(o)),a.push(e[t].emit(o)),a}function n(e,t){let o=e.target;const s=null!=o.shadowRoot,a=s?e.composedPath():[];do{if(o===t)return!1;o=s?a.shift():o.parentNode}while(o);return!0}const l=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let r=0;function c(){return r++}const d=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/30677.cbaaaaec.js.LICENSE.txt b/pr-preview/pr-186/assets/js/30677.cbaaaaec.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/30677.cbaaaaec.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/30702.8c6eb43e.js b/pr-preview/pr-186/assets/js/30702.8c6eb43e.js new file mode 100644 index 000000000..a96b97cfe --- /dev/null +++ b/pr-preview/pr-186/assets/js/30702.8c6eb43e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[30702],{30702:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_no_camera:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M4.396 2.255a.75.75 0 01.66.145l.074.07 18 18a.745.745 0 010 1.06.75.75 0 01-.976.073l-.084-.073-18-18a.75.75 0 01.326-1.275zM3.42 5l14.76 14.76a3 3 0 01-.937.23L17 20H5a3 3 0 01-2.995-2.824L2 17v-6.5H.5v-4H2V5h1.42zM20 5v3.785L21.78 7h1.72v10h-1.72L20 15.215v.005L9.78 5H20z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M4.1 2.45a.722.722 0 01.965-.074l.085.074 18.05 18c.3.3.3.75 0 1.05-.15.15-.35.2-.55.2a.798.798 0 01-.471-.133L22.1 21.5l-18-18c-.3-.3-.3-.75 0-1.05zM3.4 5l1.5 1.5H3.5V17c0 .8.576 1.423 1.352 1.493L5 18.5h11.9l1.3 1.25c-.32.12-.64.208-.96.238L17 20H5a3.01 3.01 0 01-2.995-2.824L2 17v-6.5H.5v-4H2V5h1.4zM20 5v3.8L21.8 7h1.7v10h-1.7l-3.3-3.3V6.5h-7.2L9.8 5H20zm2 3.9l-2 2v2.2l2 2V8.9z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3072.1c3c4370.js b/pr-preview/pr-186/assets/js/3072.1c3c4370.js new file mode 100644 index 000000000..888d6a4c3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3072.1c3c4370.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3072; +exports.ids = [3072]; +exports.modules = { + +/***/ 93072: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_moon_sleet: () => (/* binding */ WeatherMoonSleet) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherMoonSleet = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.199 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.954-.149-1.337-1.29-.713-1.985l.087-.088 2.238-2.05zm-3.72-3.348l1.039.6-.68 1.178h1.36v1.2h-1.36l.68 1.179-1.04.6-.68-1.179-.68 1.179-1.04-.6.68-1.179h-1.36v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm5.997-2.008a.12.12 0 01.197.062l.002.044-.522 3.334a1.301 1.301 0 01-1.487 1.085c-1.034-.162-1.448-1.403-.769-2.154l.091-.091 2.488-2.28zm-3.37-7.865a5.56 5.56 0 015.234 3.674 4.25 4.25 0 012.26 3.753c0 2.013-1.403 3.7-3.276 4.128l.015-.065.521-3.333a1.32 1.32 0 00-2.083-1.269l-.108.089-2.491 2.283a2.35 2.35 0 00-.268.292l-.114.158-2.498-1.443a1 1 0 00-.88-.06l-.12.06-2.7 1.554a1 1 0 00-.493.749l-.007.118v.79A3.862 3.862 0 01.4 13.746c0-1.4.755-2.684 1.952-3.366.102-1.822 1.607-3.273 3.443-3.273.27 0 .54.033.805.098a5.53 5.53 0 013.506-1.255zM18.178.505a5.37 5.37 0 012.621-.03 4.548 4.548 0 003.057 8.515 5.377 5.377 0 01-2.933 1.969 5.37 5.37 0 01-2.685.015A5.424 5.424 0 0016.3 8.79a6.749 6.749 0 00-2.137-2.676A5.403 5.403 0 0118.177.505z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.198 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.953-.149-1.336-1.29-.713-1.985l.087-.087 2.238-2.05zm-3.718-3.35l1.04.6-.68 1.179H9.2v1.2H7.84l.68 1.178-1.04.6L6.8 19.4l-.68 1.178-1.04-.6.68-1.178H4.4v-1.2h1.36l-.68-1.178 1.04-.6L6.8 17l.68-1.178zm5.995-2.006a.12.12 0 01.198.062l.001.045-.522 3.333a1.301 1.301 0 01-1.354 1.099l-.132-.014-.126-.026c-.942-.238-1.295-1.408-.643-2.128l.09-.091 2.488-2.28zM10.1 5.981a5.577 5.577 0 015.242 3.639 4.245 4.245 0 012.258 3.744 4.24 4.24 0 01-3.273 4.12l.011-.043.2-1.278a3.04 3.04 0 001.862-2.8 3.044 3.044 0 00-1.613-2.68l-.178-.087-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44c0 1.028.584 1.921 1.437 2.368l.163.079v1.272a3.877 3.877 0 01-2.8-3.719c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.176.505a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherMoonSleet.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3074.55b5623d.js b/pr-preview/pr-186/assets/js/3074.55b5623d.js new file mode 100644 index 000000000..d5fc0d31a --- /dev/null +++ b/pr-preview/pr-186/assets/js/3074.55b5623d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3074; +exports.ids = [3074]; +exports.modules = { + +/***/ 93074: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_zoom_in: () => (/* binding */ ActionZoomIn) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionZoomIn = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.385 19.615l-4.92-4.915a8 8 0 10-1.765 1.765l4.915 4.92c.49.487 1.28.487 1.77 0a1.26 1.26 0 000-1.77zM10.75 13a.75.75 0 11-1.5 0v-2.25H7a.75.75 0 110-1.5h2.25V7a.75.75 0 011.5 0v2.25H13a.75.75 0 110 1.5h-2.25V13z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10 2c4.42 0 8 3.58 8 8 0 1.65-.505 3.177-1.36 4.445l-.175.25 4.92 4.92c.485.49.485 1.28.005 1.77a1.245 1.245 0 01-.885.365c-.274 0-.549-.088-.776-.268l-.109-.097-4.92-4.92A7.961 7.961 0 0110 18c-4.42 0-8-3.58-8-8s3.58-8 8-8zm0 1.5A6.506 6.506 0 003.5 10c0 3.585 2.915 6.5 6.5 6.5s6.5-2.915 6.5-6.5-2.915-6.5-6.5-6.5zm0 2.75c.38 0 .694.281.743.648L10.75 7v2.25H13a.749.749 0 01.102 1.493L13 10.75h-2.25V13a.749.749 0 01-1.493.102L9.25 13v-2.25H7a.749.749 0 01-.102-1.493L7 9.25h2.25V7c0-.415.335-.75.75-.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionZoomIn.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3090.65963c5a.js b/pr-preview/pr-186/assets/js/3090.65963c5a.js new file mode 100644 index 000000000..00dfb5b5f --- /dev/null +++ b/pr-preview/pr-186/assets/js/3090.65963c5a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3090; +exports.ids = [3090]; +exports.modules = { + +/***/ 83090: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_smile: () => (/* binding */ ContentSmile) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentSmile = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm3.5 6.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-7 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm8.77 8.87c-1.305 1.99-3.225 3.13-5.27 3.13-2.045 0-3.965-1.14-5.27-3.13A.757.757 0 018 15.545C9 17.105 10.5 18 12 18s3-.895 4-2.455a.75.75 0 011.255.825h.015z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.1 0 11 4.9 11 11s-4.9 11-11 11S1 18.1 1 12 5.95 1 12 1zm0 1.5c-5.25 0-9.5 4.25-9.5 9.5s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5-4.25-9.5-9.5-9.5zM6.95 15.35c.35-.25.8-.15 1.05.2C9 17.1 10.5 18 12 18s3-.9 4-2.45c.25-.35.7-.45 1.05-.2.35.2.45.65.2 1.05-1.3 2-3.25 3.15-5.25 3.15S8.05 18.4 6.75 16.4c-.25-.35-.15-.8.2-1.05zM8.5 7.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm7 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentSmile.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31186.e75153ca.js b/pr-preview/pr-186/assets/js/31186.e75153ca.js new file mode 100644 index 000000000..85d976830 --- /dev/null +++ b/pr-preview/pr-186/assets/js/31186.e75153ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[31186],{31186:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_navigation_left:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M15.5 18.756c-.27 0-.544-.088-.773-.269l-8.224-6.484 8.224-6.486a1.249 1.249 0 111.549 1.963l-5.734 4.523 5.734 4.522a1.249 1.249 0 01-.775 2.231","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M15.949 16.911l-6.222-4.91 6.221-4.913a.75.75 0 10-.929-1.178L7.306 12l7.713 6.088a.746.746 0 001.054-.124.75.75 0 00-.124-1.053","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3122.cba98fd2.js b/pr-preview/pr-186/assets/js/3122.cba98fd2.js new file mode 100644 index 000000000..06a5c4136 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3122.cba98fd2.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3122; +exports.ids = [3122]; +exports.modules = { + +/***/ 3122: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_power: () => (/* binding */ ActionPower) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPower = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.286 4.4v2.648A7.01 7.01 0 005 13.5c0 3.86 3.14 7 7 7s7-3.14 7-7a7.004 7.004 0 00-3.977-6.31l-.237-.108V4.419C18.67 5.612 21.5 9.23 21.5 13.499c0 5.239-4.262 9.5-9.5 9.5s-9.5-4.261-9.5-9.5c0-4.199 2.741-7.766 6.526-9.017l.26-.082zm2.75-2.9c.647 0 1.18.492 1.244 1.122l.006.128v9.5a1.25 1.25 0 01-2.493.128l-.007-.128v-9.5c0-.69.56-1.25 1.25-1.25z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.25 4.796C18.125 5.8 21 9.315 21 13.5c0 4.963-4.038 9-9 9-4.963 0-9-4.037-9-9 0-4.092 2.75-7.544 6.493-8.633l.257-.071v1.55C6.71 7.304 4.5 10.148 4.5 13.5c0 4.136 3.364 7.5 7.5 7.5 4.135 0 7.5-3.364 7.5-7.5 0-3.261-2.092-6.042-5.005-7.072l-.245-.082v-1.55zM12 1.5a.75.75 0 01.743.648l.007.102v10.5a.75.75 0 01-1.493.102l-.007-.102V2.25A.75.75 0 0112 1.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPower.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3122.e79edd82.js b/pr-preview/pr-186/assets/js/3122.e79edd82.js new file mode 100644 index 000000000..3eb07b1d1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3122.e79edd82.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[3122],{3122:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_power:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M9.286 4.4v2.648A7.01 7.01 0 005 13.5c0 3.86 3.14 7 7 7s7-3.14 7-7a7.004 7.004 0 00-3.977-6.31l-.237-.108V4.419C18.67 5.612 21.5 9.23 21.5 13.499c0 5.239-4.262 9.5-9.5 9.5s-9.5-4.261-9.5-9.5c0-4.199 2.741-7.766 6.526-9.017l.26-.082zm2.75-2.9c.647 0 1.18.492 1.244 1.122l.006.128v9.5a1.25 1.25 0 01-2.493.128l-.007-.128v-9.5c0-.69.56-1.25 1.25-1.25z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M14.25 4.796C18.125 5.8 21 9.315 21 13.5c0 4.963-4.038 9-9 9-4.963 0-9-4.037-9-9 0-4.092 2.75-7.544 6.493-8.633l.257-.071v1.55C6.71 7.304 4.5 10.148 4.5 13.5c0 4.136 3.364 7.5 7.5 7.5 4.135 0 7.5-3.364 7.5-7.5 0-3.261-2.092-6.042-5.005-7.072l-.245-.082v-1.55zM12 1.5a.75.75 0 01.743.648l.007.102v10.5a.75.75 0 01-1.493.102l-.007-.102V2.25A.75.75 0 0112 1.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31346f16.668d499f.js b/pr-preview/pr-186/assets/js/31346f16.668d499f.js new file mode 100644 index 000000000..6f13a7eb7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/31346f16.668d499f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[47455],{28701:e=>{e.exports=JSON.parse('{"tag":{"label":"telecommunications","permalink":"/docs-next/pr-preview/pr-186/docs/tags/telecommunications","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-industry/telecoms/fiber-factory","title":"Fiber-Factory: Accelerated Grid Expansion","description":"More than 33 million households in Germany can access speeds of over 50 MBit/s, thanks to Telekom\'s fiber optic expansion. This enables people to work from home, streaming, and business line connectivity. Now Telekom is planning to expand the network for up to two million more households each year starting in 2021. This involved extensive construction measures. In order to plan these more efficiently, secure resources from the Open Telekom Cloud are providing support.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/fiber-factory"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3145.2028551f.js b/pr-preview/pr-186/assets/js/3145.2028551f.js new file mode 100644 index 000000000..5bd2bf6ff --- /dev/null +++ b/pr-preview/pr-186/assets/js/3145.2028551f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3145; +exports.ids = [3145]; +exports.modules = { + +/***/ 33145: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_rain: () => (/* binding */ WeatherRain) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherRain = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.959 17.134a.177.177 0 01.294.105l-.001.053-.599 3.828A1.534 1.534 0 019.9 22.398c-1.224-.19-1.711-1.666-.895-2.55l.096-.095 2.857-2.619zm-1.563-5.199c.11-.1.277-.028.294.105v.053l-.662 4.233a1.676 1.676 0 01-1.917 1.397c-1.341-.21-1.874-1.827-.976-2.793l.102-.1 3.159-2.895zm6.168-1.63a.177.177 0 01.294.105l-.001.053-.77 4.919a1.92 1.92 0 01-2.194 1.6c-1.539-.24-2.148-2.1-1.11-3.205l.11-.108 3.67-3.364zm-3.05-9.74a7.596 7.596 0 017.149 5.019 5.805 5.805 0 013.089 5.127c0 3.118-2.46 5.668-5.53 5.785l-.22.004-.928-.001a3.41 3.41 0 00.25-.675l.048-.241.77-4.92a1.475 1.475 0 00-2.336-1.416l-.122.1-3.67 3.364-.124.12.084-.537a1.478 1.478 0 00-2.334-1.418l-.121.1-3.16 2.895a2.948 2.948 0 00-.958 2.421l.022.193h-.2c-2.765-.146-4.971-2.45-4.971-5.27a5.299 5.299 0 012.667-4.598c.14-2.489 2.196-4.471 4.704-4.471.37 0 .737.045 1.1.134a7.558 7.558 0 014.79-1.715z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.957 17.134a.177.177 0 01.294.105l-.001.053-.599 3.828a1.534 1.534 0 01-1.752 1.278c-1.225-.19-1.712-1.666-.896-2.55l.097-.095 2.857-2.619zm-1.563-5.199c.11-.1.277-.028.294.105v.053l-.663 4.233a1.676 1.676 0 01-1.916 1.397c-1.341-.21-1.874-1.827-.976-2.793l.102-.1 3.159-2.895zm6.167-1.63c.11-.1.277-.028.295.105l-.001.053-.77 4.919a1.92 1.92 0 01-2.194 1.6c-1.539-.24-2.148-2.1-1.11-3.205l.11-.108 3.67-3.364zm-3.05-9.74a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.127c0 3.118-2.46 5.668-5.53 5.785L18 16.5h-.695c.093-.207.167-.426.218-.655l.044-.232.096-.613H18c2.343 0 4.25-1.924 4.25-4.289A4.3 4.3 0 0019.936 6.9l-.195-.096-.303-.138-.101-.317c-.816-2.562-3.157-4.284-5.825-4.284A6.07 6.07 0 009.624 3.48l-.216.188-.328.302-.422-.146a3.178 3.178 0 00-1.036-.176A3.214 3.214 0 004.747 5.44c-.313.631-.345 1.15-.33 1.634l.025.476-.466.209a3.791 3.791 0 00-2.226 3.456c0 2.046 1.619 3.714 3.631 3.777a3.14 3.14 0 00-.16 1.492C2.456 16.34.25 14.035.25 11.215a5.299 5.299 0 012.667-4.598c.14-2.489 2.197-4.471 4.705-4.471.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherRain.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/315.fd635469.js b/pr-preview/pr-186/assets/js/315.fd635469.js new file mode 100644 index 000000000..77fb0cde5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/315.fd635469.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 315; +exports.ids = [315]; +exports.modules = { + +/***/ 30315: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_volume_up: () => (/* binding */ ActionVolumeUp) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionVolumeUp = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13 3.5v17h-2l-4.5-4H5a3 3 0 01-2.995-2.824L2 13.5v-3a3 3 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm6 4.75a.75.75 0 01.743.648L19.75 9v2.25H22a.75.75 0 01.102 1.493L22 12.75h-2.25V15a.75.75 0 01-1.493.102L18.25 15v-2.25H16a.75.75 0 01-.102-1.493L16 11.25h2.25V9a.75.75 0 01.75-.75z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13 3.5v17h-2l-4.5-4H5a3.003 3.003 0 01-2.995-2.824L2 13.5v-3a3.003 3.003 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm-1.5 1.56L7.07 9H5c-.776 0-1.42.598-1.493 1.356L3.5 10.5v3c0 .776.598 1.42 1.356 1.493L5 15h2.07l4.43 3.94V5.06zM19 8.25c.38 0 .694.281.743.648L19.75 9v2.25H22a.749.749 0 01.102 1.493L22 12.75h-2.25V15a.749.749 0 01-1.493.102L18.25 15v-2.25H16a.749.749 0 01-.102-1.493L16 11.25h2.25V9c0-.415.335-.75.75-.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionVolumeUp.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31599.4296b95b.js b/pr-preview/pr-186/assets/js/31599.4296b95b.js new file mode 100644 index 000000000..7f0cb2efb --- /dev/null +++ b/pr-preview/pr-186/assets/js/31599.4296b95b.js @@ -0,0 +1,2 @@ +/*! For license information please see 31599.4296b95b.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[31599],{88114:(e,t,o)=>{o.d(t,{c:()=>i});var r,a,n,i=(r=function(e){!function(){var t={}.hasOwnProperty;function o(){for(var e=[],r=0;r{o.r(t),o.d(t,{scale_toggle_button:()=>c});var r=o(90936),a=o(88114),n=o(91779),i=o(94200);var s;!function(e){e.xs="12",e.small="16",e.regular="22",e.large="24"}(s||(s={}));let l=0;const c=class{constructor(e){(0,r.r)(this,e),this.scaleClick=(0,r.c)(this,"scale-click",7),this.scaleClickLegacy=(0,r.c)(this,"scaleClick",7),this.size="regular",this.background="white",this.colorScheme="color",this.variant="color",this.disabled=!1,this.selected=!1,this.iconOnly=!1,this.iconPosition="before",this.radius=null,this.ariaLangSelected="selected",this.ariaLangDeselected="deselected",this.ariaDescriptionTranslation="$selected",this.hasScaleIcon=!1,this.handleClick=e=>{e.preventDefault(),this.selected=!this.selected,this.handleIconShape(),this.scaleClick.emit({id:this.toggleButtonId,selected:this.selected}),(0,n.e)(this,"scaleClick",{id:this.toggleButtonId,selected:this.selected})},this.handleIconShape=()=>{this.hasScaleIcon&&Array.from(this.hostElement.children).forEach((e=>{"SCALE-ICON"===e.nodeName.substr(0,10)&&(this.selected?e.setAttribute("selected","true"):e.removeAttribute("selected"))}))}}async setFocus(){this.focusableElement.focus()}connectedCallback(){this.setIconPositionProp(),this.handleIconShape()}componentDidLoad(){this.handleIconSize()}componentDidRender(){this.handleIconSize(),this.hostElement.hasAttribute("aria-label")&&(0,i.s)({tag:"deprecated",message:'Property "ariaLabel" is deprecated. Please use the "ariaLabelToggleButton" property!',type:"warn",source:this.hostElement})}componentWillLoad(){null==this.toggleButtonId&&(this.toggleButtonId="toggle-button-"+l++)}getAriaDescriptionTranslation(){const e=this.selected?this.ariaLangSelected:this.ariaLangDeselected;return this.ariaDescriptionTranslation.replace(/\$position/g,`${this.position}`).replace(/\$selected/g,`${e}`)}handleIconSize(){Array.from(this.hostElement.children).forEach((e=>{"SCALE-ICON"===e.tagName.substr(0,10)&&e.setAttribute("size",s[this.size])}))}setIconPositionProp(){const e=Array.from(this.hostElement.childNodes).filter((e=>("SCALE-ICON"===e.nodeName.substr(0,10)&&(this.hasScaleIcon=!0),!(3===e.nodeType&&""===e.nodeValue.trim()))));!this.iconOnly&&e&&e.length&&e[e.length-1]&&"SCALE-ICON"===e[e.length-1].nodeName.substr(0,10)&&(this.iconPosition="after")}render(){return(0,r.h)(r.a,null,this.styles&&(0,r.h)("style",null,this.styles),(0,r.h)("button",{ref:e=>this.focusableElement=e,class:this.getCssClassMap(),id:this.toggleButtonId,onClick:this.handleClick,disabled:this.disabled,type:"button","aria-label":this.ariaLabelToggleButton,"aria-pressed":this.selected,part:this.getBasePartMap(),"aria-description":this.getAriaDescriptionTranslation()},(0,r.h)("slot",null)))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(e){const t="basePart"===e?"":"toggle-button--";return(0,a.c)("toggle-button",this.size&&`${t}${this.size}`,this.background&&`${t}${"grey"===this.background?"primary":"secondary"}`,!this.iconOnly&&this.iconPosition&&`toggle-button--icon-${this.iconPosition}`,this.iconOnly&&`${t}icon-only`,!this.disabled&&this.selected&&`${t}selected`,this.radius&&`${t}${this.radius}`,this.colorScheme&&`${t}${this.colorScheme}`,this.variant&&`${t}${this.variant}`,!this.hideBorder&&`${t}border`)}get hostElement(){return(0,r.g)(this)}};c.style=":host{--width:auto;--spacing-x:var(--telekom-spacing-composition-space-08);--spacing-x-icon-only:var(--telekom-spacing-composition-space-04);--min-height:var(--telekom-spacing-composition-space-08);--height-xs:var(--telekom-spacing-composition-space-08);--height-small:var(--telekom-spacing-composition-space-10);--height-regular:var(--telekom-spacing-composition-space-12);--height-large:var(--telekom-spacing-composition-space-14);--radius:var(--telekom-radius-small);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard),\n border-radius var(--telekom-motion-duration-instant);--box-shadow-focus:inset 0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard);--font-weight:var(--telekom-typography-font-weight-bold);--font-size-large:var(--telekom-typography-font-size-body);--font-size-small:var(--telekom-typography-font-size-caption);--font-size-xs:var(--telekom-typography-font-size-small);--line-height:var(--telekom-spacing-composition-space-04);--spacing-icon-x:var(--telekom-spacing-composition-space-04);--vertical-align:middle;--border-color:var(--telekom-color-ui-border-standard);--border-color-disabled:var(--telekom-color-ui-border-disabled);--color-disabled:var(--telekom-color-text-and-icon-disabled);--font-size-small:var(--telekom-typography-font-size-small);--line-height-small:var(--telekom-typography-line-spacing-standard);--min-height-small:var(--telekom-spacing-composition-space-10);--radius-primary:var(--radius);--background-primary:var(--telekom-color-ui-subtle);--background-primary-disabled:var(--telekom-color-ui-disabled);--color-primary:var(--telekom-color-ui-extra-strong);--color-primary-hover:var(--telekom-color-primary-hovered);--color-primary-active:var(--telekom-color-primary-pressed);--background-secondary:transparent;--color-secondary:var(--telekom-color-text-and-icon-standard);--background-secondary-hover:var(--telekom-color-ui-state-fill-hovered);--background-secondary-active:var(--telekom-color-ui-state-fill-pressed);--background-secondary-disabled:none;--border-secondary:var(--telekom-color-ui-border-standard);--border-secondary-hover:var(--telekom-color-ui-border-hovered);--border-secondary-active:var(--telekom-color-ui-border-pressed);--border-secondary-focus:var(--telekom-color-functional-focus-standard);--color-selected:var(--telekom-color-text-and-icon-white-standard);--background-selected-light:var(--telekom-color-primary-standard);--background-selected-hover-light:var(--telekom-color-primary-hovered);--background-selected-active-light:var(--telekom-color-primary-pressed);--background-selected-dark:var(--telekom-color-ui-extra-strong);--background-selected-hover-dark:var(--telekom-color-ui-strong);--background-selected-active-dark:var(--telekom-color-ui-strong);--color-high-contrast:var(--telekom-color-text-and-icon-white-standard)}.toggle-button{box-sizing:border-box;display:inline-flex;align-items:center;position:relative;border:0;outline:none;cursor:pointer;user-select:none;font-family:inherit;word-spacing:inherit;letter-spacing:inherit;justify-content:center;text-decoration:none;font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);min-height:var(--min-height);width:var(--width);padding-left:var(--spacing-x);padding-right:var(--spacing-x);vertical-align:var(--vertical-align);transition:var(--transition);margin:0;color:var(--color-primary)}.toggle-button--primary{background:var(--background-primary)}.toggle-button--secondary{color:var(--color-secondary);background:var(--background-secondary)}.toggle-button--icon-before ::slotted(*){margin-right:var(--spacing-icon-x);pointer-events:none}.toggle-button--icon-after ::slotted(*){margin-left:var(--spacing-icon-x);pointer-events:none}.toggle-button--icon-only ::slotted(*){pointer-events:none}.toggle-button--xs{height:var(--height-xs);font-size:var(--font-size-xs)}.toggle-button--small{height:var(--height-small);font-size:var(--font-size-small)}.toggle-button--regular{height:var(--height-regular);font-size:var(--font-size-large)}.toggle-button--large{height:var(--height-large);font-size:var(--font-size-large)}.toggle-button:not(.button--disabled):focus{box-shadow:var(--box-shadow-focus)}.toggle-button:not(.button--disabled):hover{color:var(--color-secondary-hover);background-color:var(--background-secondary-hover)}.toggle-button:not(.button--disabled):active{color:var(--color-secondary-active);background-color:var(--background-secondary-active)}.toggle-button:disabled{color:var(--color-disabled);pointer-events:none;border:1px solid var(--border-color-disabled)}.toggle-button:disabled.toggle-button--primary{background:var(--background-primary-disabled)}.toggle-button--selected.toggle-button--color{color:var(--color-selected);background:var(--background-selected-light)}.toggle-button--selected:not(.button--disabled).toggle-button--color:hover{color:var(--color-selected);background:var(--background-selected-hover-light)}.toggle-button--selected:not(.button--disabled).toggle-button--color:active{color:var(--color-selected);background:var(--background-selected-active-light)}.toggle-button--selected.toggle-button--monochrome{color:var(--telekom-color-text-and-icon-inverted-standard);background:var(--background-selected-dark)}.toggle-button--selected:not(.button--disabled).toggle-button--monochrome:hover{color:var(--color-selected);background:var(--background-selected-hover-dark)}.toggle-button--selected:not(.button--disabled).toggle-button--monochrome:active{color:var(--color-selected);background:var(--background-selected-active-dark)}.toggle-button--border{border:1px solid var(--border-color)}.toggle-button--left,.toggle-button--left:disabled{border-right:0;border-radius:var(--radius-primary) 0 0 var(--radius-primary)}.toggle-button--right,.toggle-button--right:disabled{border-left:0;border-radius:0 var(--radius-primary) var(--radius-primary) 0}.toggle-button--both,.toggle-button--both:disabled{border-radius:var(--radius-primary)}.toggle-button--all,.toggle-button--all:disabled{border-radius:var(--radius-primary)}.toggle-button--neither,.toggle-button--neither:disabled{border-right:0;border-left:0;border-radius:0}@media screen and (forced-colors: active), (-ms-high-contrast: active){.toggle-button{color:var(--color-high-contrast)}}"},94200:(e,t,o)=>{o.d(t,{s:()=>n});const r={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},a={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function n({tag:e="WIP",extraMessage:t=null,message:o=null,source:n=null,type:i="info"}){(0,console[i])(`%c scale \u2013 ${r[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${o||a[e]} ${t?"\n"+t:""}\n `,null!==n?"\nsource:":"","object"==typeof n?n:`${n}`,null!==n?"\n\n":"")}},91779:(e,t,o)=>{o.d(t,{a:()=>d,b:()=>i,c:()=>a,e:()=>n,g:()=>c,h:()=>r,i:()=>s});const r=e=>!!e.shadowRoot&&!!e.attachShadow,a=e=>{let t=document.styleSheets[0];if(!t){const e=document.createElement("style");document.head.appendChild(e),t=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),t.insertRule("html"+e+"{}",0),t.deleteRule(0),!0}catch(o){return!1}}()};function n(e,t,o){const r=t+"Legacy",a=[];return void 0!==e[r]&&a.push(e[r].emit(o)),a.push(e[t].emit(o)),a}function i(e,t){let o=e.target;const r=null!=o.shadowRoot,a=r?e.composedPath():[];do{if(o===t)return!1;o=r?a.shift():o.parentNode}while(o);return!0}const s=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let l=0;function c(){return l++}const d=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31599.4296b95b.js.LICENSE.txt b/pr-preview/pr-186/assets/js/31599.4296b95b.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/31599.4296b95b.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/31684.419f1b3a.js b/pr-preview/pr-186/assets/js/31684.419f1b3a.js new file mode 100644 index 000000000..a4db86437 --- /dev/null +++ b/pr-preview/pr-186/assets/js/31684.419f1b3a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[31684],{31684:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_content_loyalty:()=>s});var c=e(90936);const s=class{constructor(l){(0,c.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,c.h)(c.a,null,(0,c.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,c.h)("title",null,this.accessibilityTitle),(0,c.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,c.h)("g",null,(0,c.h)("path",{d:"M15.153.84c.156 0 .307.02.454.068.554.18.942.693 1.306 1.246l.271.416c.271.416.55.811.896 1.064.35.254.814.4 1.293.53l.48.13c.638.177 1.243.385 1.583.852.336.462.347 1.099.318 1.759l-.024.497c-.022.497-.026.985.109 1.401.13.402.42.785.73 1.17l.312.385c.413.517.782 1.049.782 1.642 0 .594-.37 1.125-.782 1.642l-.312.386c-.31.384-.599.767-.729 1.168-.135.417-.13.905-.109 1.402l.024.497c.029.66.018 1.298-.318 1.76-.34.466-.945.674-1.583.85l-.48.13c-.48.132-.943.277-1.293.531-.289.21-.53.52-.76.858l-.407.622c-.364.553-.752 1.066-1.307 1.247a1.457 1.457 0 01-.452.067c-.394 0-.813-.13-1.24-.288l-.643-.243c-.43-.157-.859-.289-1.269-.289-.41 0-.839.132-1.27.29l-.643.242c-.427.157-.845.288-1.239.288a1.47 1.47 0 01-.453-.067c-.554-.18-.942-.694-1.306-1.247l-.408-.622c-.229-.338-.47-.648-.759-.858-.35-.254-.814-.4-1.293-.53l-.48-.13c-.638-.177-1.244-.385-1.583-.851-.336-.463-.347-1.1-.318-1.76l.024-.497c.022-.497.026-.985-.109-1.401-.13-.402-.42-.785-.73-1.17l-.312-.385C.71 13.125.342 12.593.342 12s.37-1.125.782-1.642l.465-.578c.25-.32.468-.642.577-.976.135-.417.13-.905.108-1.402l-.024-.497c-.028-.66-.018-1.298.318-1.76.34-.466.946-.674 1.583-.85l.48-.13c.48-.132.944-.277 1.293-.531.347-.253.625-.648.896-1.064l.271-.416c.365-.553.752-1.066 1.307-1.246.146-.048.297-.069.453-.069.393 0 .812.132 1.238.29l.644.242c.43.157.859.288 1.269.288.41 0 .839-.13 1.27-.288l.643-.243c.427-.157.846-.288 1.239-.288zm-4.81 7.562a2.461 2.461 0 00-2.896.928 2.467 2.467 0 00.045 2.836l.12.153 3.742 4.376a.854.854 0 001.214.084l.084-.084 3.74-4.376c.724-.845.791-2.07.166-2.99a2.464 2.464 0 00-2.991-.89c-.672.277-1 .709-1.262 1.191l-.152.295-.15.301-.22-.44c-.296-.574-.634-1.09-1.44-1.384z","fill-rule":"evenodd"})):(0,c.h)("g",null,(0,c.h)("path",{d:"M23.66 12c0-1.187-1.476-2.126-1.823-3.197-.361-1.109.268-2.734-.404-3.658-.678-.932-2.422-.832-3.355-1.511-.924-.673-1.364-2.366-2.474-2.726a1.455 1.455 0 00-.453-.069c-.982 0-2.127.82-3.152.82-1.024 0-2.168-.82-3.15-.82a1.45 1.45 0 00-.454.069c-1.109.36-1.55 2.053-2.473 2.725-.933.68-2.677.58-3.356 1.513-.672.923-.043 2.548-.403 3.657C1.816 9.874.34 10.813.34 12c0 1.187 1.475 2.126 1.823 3.197.361 1.109-.268 2.733.404 3.658.678.933 2.422.832 3.356 1.511.923.672 1.364 2.366 2.473 2.727.146.047.297.067.453.067.982 0 2.127-.82 3.152-.82 1.024 0 2.168.82 3.151.82.155 0 .307-.02.453-.067 1.11-.361 1.55-2.054 2.473-2.727.934-.678 2.678-.578 3.357-1.511.672-.924.043-2.549.402-3.659.348-1.07 1.823-2.009 1.823-3.196zm-2.134.93c-.413.508-.882 1.083-1.116 1.803-.241.743-.203 1.5-.169 2.168.017.337.045.893-.023 1.071-.148.123-.694.269-1.023.357-.643.173-1.373.369-2 .825-.62.451-1.027 1.081-1.386 1.637-.193.299-.517.799-.657.87-.21 0-.652-.17-1.008-.306-.633-.241-1.35-.515-2.144-.515s-1.511.274-2.143.515c-.348.133-.778.297-1.005.305-.166-.105-.474-.582-.66-.87-.36-.555-.766-1.185-1.387-1.636-.627-.456-1.356-.652-2-.825-.33-.088-.875-.235-1.022-.358-.069-.178-.041-.733-.024-1.07.034-.668.072-1.425-.169-2.168-.234-.72-.702-1.296-1.116-1.804-.23-.283-.615-.755-.635-.925.02-.179.405-.652.635-.934.413-.508.882-1.084 1.116-1.804.241-.742.203-1.5.169-2.168-.017-.336-.045-.892.024-1.07.147-.123.693-.27 1.022-.358.644-.173 1.373-.368 2-.824.62-.452 1.027-1.082 1.386-1.637.188-.289.496-.767.661-.87.211.002.651.17 1.005.305.632.242 1.349.516 2.143.516.794 0 1.511-.274 2.143-.515.348-.132.778-.297 1.005-.304.166.105.474.581.66.87.36.555.767 1.185 1.387 1.636.627.456 1.357.652 2 .824.33.089.875.235 1.023.358.068.178.04.734.023 1.07-.034.668-.072 1.426.169 2.168.234.721.703 1.296 1.116 1.805.23.282.614.755.634.925-.02.178-.404.65-.634.933zm-7.961-4.492c-.941.389-1.207 1.08-1.565 1.788-.376-.743-.652-1.456-1.659-1.824a2.461 2.461 0 00-2.896.928 2.466 2.466 0 00.165 2.99l3.741 4.375a.854.854 0 001.298 0l3.741-4.376c.723-.845.79-2.07.165-2.99a2.464 2.464 0 00-2.99-.89z","fill-rule":"evenodd"})))))}get hostElement(){return(0,c.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31724.9fa1dae1.js b/pr-preview/pr-186/assets/js/31724.9fa1dae1.js new file mode 100644 index 000000000..5205faf2b --- /dev/null +++ b/pr-preview/pr-186/assets/js/31724.9fa1dae1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[31724],{31724:(e,t,i)=>{i.r(t),i.d(t,{scale_icon_device_device_phone:()=>l});var s=i(90936);const l=class{constructor(e){(0,s.r)(this,e),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const e=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},e,t),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M16 .5a3 3 0 012.995 2.824L19 3.5v17a3 3 0 01-2.824 2.995L16 23.5H8a3 3 0 01-2.995-2.824L5 20.5v-17A3 3 0 017.824.505L8 .5h8zm-4 17.75a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0 .5a1 1 0 110 2 1 1 0 010-2zm2-16.5h-4v1h4v-1z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M16 .5a3.01 3.01 0 012.995 2.824L19 3.5v17a3.01 3.01 0 01-2.824 2.995L16 23.5H8a3.01 3.01 0 01-2.995-2.824L5 20.5v-17A3.01 3.01 0 017.824.505L8 .5h8zM10 2H8c-.8 0-1.423.576-1.493 1.352L6.5 3.5v17c0 .8.576 1.423 1.352 1.493L8 22h8c.8 0 1.423-.576 1.493-1.352l.007-.148v-17c0-.8-.576-1.423-1.352-1.493L16 2h-2v1.5h-4V2zm2 16.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31803.cf250352.js b/pr-preview/pr-186/assets/js/31803.cf250352.js new file mode 100644 index 000000000..d2a8c3d06 --- /dev/null +++ b/pr-preview/pr-186/assets/js/31803.cf250352.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[31803],{31803:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_content_half_rating:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M11.997 1.501c.652 0 1.237.362 1.53.934l.062.136 2.064 5.062 5.452.398c.7.052 1.293.516 1.51 1.184.2.616.04 1.28-.408 1.735l-.118.11-4.175 3.527 1.304 5.308a1.715 1.715 0 01-.659 1.802 1.712 1.712 0 01-1.777.149l-.14-.079-4.645-2.881-4.646 2.881a1.716 1.716 0 01-2.604-1.725l.03-.146 1.304-5.309-4.176-3.527a1.714 1.714 0 01-.526-1.845 1.712 1.712 0 011.362-1.166l.148-.018 5.452-.399 2.064-5.061c.265-.65.89-1.07 1.592-1.07zm0 1.5a.205.205 0 00-.171.079l-.033.058L9.378 9.06l-6.38.468a.206.206 0 00-.193.151.206.206 0 00.023.186l.045.049 4.886 4.127-1.527 6.212c-.029.119.03.19.084.23.044.032.107.06.184.037l.06-.028 5.436-3.372V3.002z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M22.613 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.064-5.061a1.713 1.713 0 00-1.592-1.07c-.703 0-1.327.42-1.593 1.07L8.34 7.633l-5.452.398c-.7.052-1.292.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.304 5.308a1.715 1.715 0 00.658 1.802c.568.413 1.321.44 1.918.07l4.644-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.176-3.527a1.714 1.714 0 00.526-1.845zm-1.494.699l-4.886 4.127 1.527 6.212c.03.119-.03.19-.084.23a.203.203 0 01-.244.009l-5.436-3.372V3.002c.067 0 .156.024.203.137l2.416 5.922 6.38.468a.206.206 0 01.192.151.206.206 0 01-.068.235z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/31be8862.edd51403.js b/pr-preview/pr-186/assets/js/31be8862.edd51403.js new file mode 100644 index 000000000..9ac031386 --- /dev/null +++ b/pr-preview/pr-186/assets/js/31be8862.edd51403.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[76956],{38044:e=>{e.exports=JSON.parse('{"tag":{"label":"cd","permalink":"/docs-next/pr-preview/pr-186/docs/tags/cd","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/devops/ci-devtron-swr-cce","title":"Build a CI/CD Pipeline with Devtron, SWR and CCE","description":"This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3224.53f1ed32.js b/pr-preview/pr-186/assets/js/3224.53f1ed32.js new file mode 100644 index 000000000..583677605 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3224.53f1ed32.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3224; +exports.ids = [3224]; +exports.modules = { + +/***/ 13224: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_disabled_microphone: () => (/* binding */ ActionDisabledMicrophone) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionDisabledMicrophone = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.25 9.5a.75.75 0 01.743.648L6 10.25V12a6 6 0 008.097 5.622l.243-.097 1.125 1.12a7.5 7.5 0 01-2.36.77l-.355.045v4.04h-1.5v-4.04a7.5 7.5 0 01-6.746-7.21L4.5 12v-1.75a.75.75 0 01.75-.75zM2.863 2.863a.75.75 0 01.949-.092l.093.074 17.25 17.25a.745.745 0 010 1.06.75.75 0 01-.976.073l-.084-.073-17.25-17.25a.75.75 0 01.018-1.042zM7.5 10.68l5.66 5.665A4.67 4.67 0 0112 16.5a4.5 4.5 0 01-4.495-4.288L7.5 12v-1.32zM18.75 9.5a.75.75 0 01.743.648l.007.102V12a7.435 7.435 0 01-.731 3.171l-.149.294-1.12-1.125a6 6 0 00.49-2.038L18 12v-1.75a.75.75 0 01.75-.75zM12.104.539l.212.01a4.5 4.5 0 014.177 4.239L16.5 5v7a4.67 4.67 0 01-.089.874l-.066.286L7.55 4.37A4.5 4.5 0 0112.104.539z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.25 9.5c.367 0 .691.294.743.651L6 10.25V12c0 3.3 2.7 6 6 6 .744 0 1.41-.115 2.069-.378l.281-.122 1.1 1.15c-.7.35-1.515.623-2.344.753l-.356.047v4.05h-1.5v-4.05c-3.72-.343-6.624-3.415-6.746-7.202L4.5 12v-1.75c0-.4.35-.75.75-.75zm-2.4-6.65a.722.722 0 01.965-.074l.085.074L21.15 20.1c.3.3.3.75 0 1.05a.722.722 0 01-.965.074l-.085-.074L2.85 3.9c-.3-.3-.3-.75 0-1.05zM7.5 10.7L9 12.2a3.012 3.012 0 002.621 2.783L11.8 15l1.35 1.35c-.35.1-.75.15-1.15.15a4.48 4.48 0 01-4.495-4.287L7.5 12v-1.3zm11.25-1.2c.367 0 .691.294.743.651l.007.099V12c0 1.146-.252 2.25-.756 3.196l-.144.254-1.1-1.1a5.26 5.26 0 00.493-2.036L18 12v-1.75c0-.4.35-.75.75-.75zM12 .5a4.48 4.48 0 014.495 4.287L16.5 5v7c0 .32-.032.64-.096.934l-.054.216L15 11.8V5c0-1.65-1.35-3-3-3a3.01 3.01 0 00-2.995 2.824L9 5v.8L7.55 4.35C7.85 2.2 9.75.5 12 .5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionDisabledMicrophone.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/32294.f8069261.js b/pr-preview/pr-186/assets/js/32294.f8069261.js new file mode 100644 index 000000000..00d606203 --- /dev/null +++ b/pr-preview/pr-186/assets/js/32294.f8069261.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[32294],{32294:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_move:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M23.5 12L18 8.4v2.35h-4.75V6h2.35L12 .5 8.4 6h2.35v4.75H6V8.4L.5 12 6 15.6v-2.35h4.75V18H8.4l3.6 5.5 3.6-5.5h-2.35v-4.75H18v2.35z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M23.5 12L18 8.4v2.85h-5.25V6h2.85L12 .5 8.4 6h2.85v5.25H6V8.4L.5 12 6 15.6v-2.85h5.25V18H8.4l3.6 5.5 3.6-5.5h-2.85v-5.25H18v2.85z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3259.4d8a9172.js b/pr-preview/pr-186/assets/js/3259.4d8a9172.js new file mode 100644 index 000000000..95cd6cdd6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3259.4d8a9172.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3259; +exports.ids = [3259]; +exports.modules = { + +/***/ 75640: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_message_outgoing: () => (/* binding */ CommunicationMessageOutgoing) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationMessageOutgoing = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.506 3v6.697l-.841-.551a1.195 1.195 0 00-1.227-.052 1.2 1.2 0 00-.623.925l-.007.131v1.65h-2.55c-1.075 0-1.95.875-1.95 1.95 0 1.026.797 1.87 1.805 1.945l.145.005h2.55v1.65l.008.076.012.074h-6.203l-3.274 3.274a1.63 1.63 0 01-1.167.491c-.81 0-1.591-.597-1.671-1.514l-.007-.155V17.5H3.363a2.857 2.857 0 01-2.852-2.69l-.005-.167V3h19zm-1.498 7.15l5.5 3.6-5.5 3.6V14.5h-3.75a.75.75 0 01-.102-1.493l.102-.007h3.75v-2.85z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 3v6.339L18 8.357V4.5H2v10.143c0 .704.54 1.285 1.227 1.35l.13.007H6v3.596c0 .134.165.237.285.117L9.998 16H16.5v1.5h-5.881l-3.274 3.274a1.63 1.63 0 01-1.167.491c-.81 0-1.591-.597-1.671-1.514l-.007-.155V17.5H3.357a2.857 2.857 0 01-2.852-2.69L.5 14.644V3h19zM18 10.15l5.5 3.6-5.5 3.6V14.5h-3.75a.75.75 0 01-.102-1.493L14.25 13H18v-2.85z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationMessageOutgoing.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3265.40b11d41.js b/pr-preview/pr-186/assets/js/3265.40b11d41.js new file mode 100644 index 000000000..17bbb41ab --- /dev/null +++ b/pr-preview/pr-186/assets/js/3265.40b11d41.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3265; +exports.ids = [3265]; +exports.modules = { + +/***/ 23265: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_moon_thunder_snow: () => (/* binding */ WeatherMoonThunderSnow) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherMoonThunderSnow = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.41 15.2l-2.562 3.6h2.487L3.29 22.878c-.128.103-.296-.029-.254-.166l.023-.046L4.863 20H2.951l2.662-4.8H8.41zm3.471-.178l1.04.6-.681 1.178h1.36V18h-1.36l.68 1.179-1.039.6-.68-1.179-.68 1.179-1.04-.6.68-1.179h-1.36v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zM10.107 5.98a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.26 3.753 4.239 4.239 0 01-2.606 3.913l-.193.075V15.9a.998.998 0 00-.401-.801l-.099-.065-2.6-1.504a1 1 0 00-.882-.059l-.12.06-.779.45L4.906 14l-1.902 3.431A3.864 3.864 0 01.4 13.777c0-1.4.755-2.683 1.952-3.365.102-1.822 1.607-3.273 3.443-3.273.27 0 .54.033.805.098a5.53 5.53 0 013.506-1.256zm8.07-5.476a5.377 5.377 0 012.621-.03 4.548 4.548 0 003.057 8.515 5.377 5.377 0 01-2.933 1.969 5.37 5.37 0 01-2.685.015A5.421 5.421 0 0016.3 8.79a6.749 6.749 0 00-2.137-2.676A5.404 5.404 0 0118.177.505z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M8.41 15.2l-2.562 3.6h2.487l-5.047 4.078c-.127.103-.295-.029-.253-.166l.022-.046L4.863 20H2.95l2.661-4.8H8.41zm3.47-.178l1.04.6-.68 1.178h1.36V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6.68-1.178H8.8v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.78-9.04a5.577 5.577 0 015.242 3.638 4.245 4.245 0 012.258 3.744 4.238 4.238 0 01-2.607 3.905l-.193.075v-1.306a3.039 3.039 0 001.6-2.674 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44c0 1.19.781 2.197 1.857 2.542l.164.047-.595 1.074A3.876 3.876 0 01.4 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.176.504a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherMoonThunderSnow.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3270.22a27edb.js b/pr-preview/pr-186/assets/js/3270.22a27edb.js new file mode 100644 index 000000000..8072513c6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3270.22a27edb.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3270; +exports.ids = [3270]; +exports.modules = { + +/***/ 83270: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_handshake: () => (/* binding */ UserFileHandshake) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileHandshake = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.424 7.2c0-.366-.48-.624-.864-.528l-2.4.672c-.48.096-1.008 0-1.44-.336l-1.344-1.056a4.26 4.26 0 00-2.592-.912c-.912 0-1.776.288-2.544.864-1.2-1.008-3.024-1.104-4.32-.24L6.336 6.72c-.768.48-1.68.672-2.592.48l-2.4-.48a.79.79 0 00-.864.576.79.79 0 00.576.864l2.4.48c.336.048.624.096.96.096.96 0 1.92-.288 2.736-.816l1.536-1.056c.72-.48 1.68-.48 2.352 0L8.304 9.168c-.912.816-1.008 2.208-.192 3.072a2.12 2.12 0 002.736.384L14.4 10.56c.336-.192.72-.096.96.192 0 0 2.496 3.264 3.072 4.032.528.72.288 1.536-.144 1.776-.288.192-1.008.144-1.008.144s-.096.864-.528 1.104c-.384.24-1.248 0-1.248 0s-.24.672-.528.864c-.48.336-1.344-.048-1.344-.048s-.336.576-.528.72c-.24.144-.576.192-.912.048.528-1.104.384-2.352-.432-3.024a1.826 1.826 0 00-.816-.384c-.144-.24-.288-.384-.48-.576-.24-.192-.48-.288-.768-.384-.144-.24-.288-.48-.528-.672-.192-.144-.384-.24-.576-.336-.144-.288-.336-.576-.576-.768-1.008-.816-2.496-.48-3.552.672l-3.024-.912c-.384-.144-.768.096-.912.48-.144.384.096.768.48.912l2.784.912c-.336 1.008-.096 2.016.624 2.592.192.144.384.24.576.336.144.288.336.576.576.768.24.192.48.288.768.384.144.24.288.48.528.672.24.192.528.336.816.384.144.24.288.384.48.576.384.288.816.432 1.296.432.624 0 1.344-.288 1.92-.768.432.24.864.336 1.296.336.432 0 .912-.144 1.296-.384.144-.096.24-.192.384-.288.528.048 1.056-.048 1.536-.384.192-.144.384-.288.528-.48a2.38 2.38 0 001.248-.384c.384-.24.624-.576.816-.96.24-.048.48-.144.672-.288.576-.384.96-1.008 1.056-1.776.048-.24 0-.48 0-.72l2.684-.803c.384-.096.532-.449.532-.98V7.2z", id: "a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.608 13.008l-3.024.912-3.12-4.08a2.16 2.16 0 00-2.832-.528l-3.504 2.112a.68.68 0 01-.912-.144c-.288-.288-.24-.768.048-1.056l3.6-3.12a2.853 2.853 0 011.824-.672c.624 0 1.248.192 1.728.576l1.344 1.056c.768.576 1.728.816 2.64.576l2.496-.576a.716.716 0 10-.336-1.392l-2.4.672c-.48.096-1.008 0-1.44-.336l-1.344-1.056a4.26 4.26 0 00-2.592-.912c-.912 0-1.776.288-2.544.864-1.2-1.008-3.024-1.104-4.32-.24L6.336 6.72c-.768.48-1.68.672-2.592.48l-2.4-.48a.79.79 0 00-.864.576.79.79 0 00.576.864l2.4.48c.336.048.624.096.96.096.96 0 1.92-.288 2.736-.816l1.536-1.056c.72-.48 1.68-.48 2.352 0L8.304 9.168c-.912.816-1.008 2.208-.192 3.072a2.12 2.12 0 002.736.384L14.4 10.56c.336-.192.72-.096.96.192 0 0 2.496 3.264 3.072 4.032.528.72.288 1.536-.144 1.776-.288.192-1.008.144-1.008.144s-.096.864-.528 1.104c-.384.24-1.248 0-1.248 0s-.24.672-.528.864c-.48.336-1.344-.048-1.344-.048s-.336.576-.528.72c-.24.144-.576.192-.912.048.528-1.104.384-2.352-.432-3.024a1.826 1.826 0 00-.816-.384c-.144-.24-.288-.384-.48-.576-.24-.192-.48-.288-.768-.384-.144-.24-.288-.48-.528-.672-.192-.144-.384-.24-.576-.336-.144-.288-.336-.576-.576-.768-1.008-.816-2.496-.48-3.552.672l-3.024-.912c-.384-.144-.768.096-.912.48-.144.384.096.768.48.912l2.784.912c-.336 1.008-.096 2.016.624 2.592.192.144.384.24.576.336.144.288.336.576.576.768.24.192.48.288.768.384.144.24.288.48.528.672.24.192.528.336.816.384.144.24.288.384.48.576.384.288.816.432 1.296.432.624 0 1.344-.288 1.92-.768.432.24.864.336 1.296.336.432 0 .912-.144 1.296-.384.144-.096.24-.192.384-.288.528.048 1.056-.048 1.536-.384.192-.144.384-.288.528-.48a2.38 2.38 0 001.248-.384c.384-.24.624-.576.816-.96.24-.048.48-.144.672-.288.576-.384.96-1.008 1.056-1.776.048-.24 0-.48 0-.72l2.928-.864c.384-.096.576-.528.48-.912-.24-.48-.624-.672-1.008-.576zm-11.952 6.24c-.528.672-1.296.816-1.632.576-.24-.192-.336-.864-.336-.864s-.672.144-.96-.096c-.288-.24-.336-.912-.336-.912s-.672.144-.96-.096c-.288-.24-.288-.912-.288-.912s-.576.048-.864-.144c-.336-.288-.336-1.056.24-1.728.528-.672 1.296-.864 1.632-.576.336.288.288.912.288.912s.624-.048.864.192c.288.288.288.912.288.912s.624-.144.96.096c.336.24.336.864.336.864s.624-.144.96.096c.336.24.336 1.008-.192 1.68z", id: "a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileHandshake.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/32885.57b434d9.js b/pr-preview/pr-186/assets/js/32885.57b434d9.js new file mode 100644 index 000000000..b30a9b068 --- /dev/null +++ b/pr-preview/pr-186/assets/js/32885.57b434d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[32885],{32885:(l,a,t)=>{t.r(a),t.d(a,{scale_icon_weather_cloudy_sleet:()=>i});var e=t(90936);const i=class{constructor(l){(0,e.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},a=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,a),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M11.599 19.171a.138.138 0 01.23.077v.046l-.47 3a1.2 1.2 0 01-1.372 1c-.954-.149-1.337-1.29-.713-1.985l.087-.088 2.238-2.05zm-5.079-3.35L7.201 17l.68-1.179 1.04.6-.68 1.178H9.6v1.2H8.24l.68 1.178-1.04.6L7.2 19.4l-.68 1.179-1.04-.6.681-1.18h-1.36V17.6h1.36l-.68-1.18 1.04-.6zm7.356-2.006a.12.12 0 01.197.062l.002.045-.522 3.333a1.302 1.302 0 11-2.256-1.068l.091-.092 2.488-2.28zM10.507 5.95a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753 4.236 4.236 0 01-3.168 4.1l.004-.02.522-3.334a1.42 1.42 0 00-2.243-1.363l-.117.096-2.49 2.281a2.626 2.626 0 00-.283.303l-.12.165L7.7 14.21a1 1 0 00-.881-.06l-.12.058-2.698 1.552a.999.999 0 00-.494.748l-.007.118v.802a3.861 3.861 0 01-2.7-3.683c0-1.4.755-2.684 1.952-3.366.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.255zm9.24 4.596a.6.6 0 01.765-.069l.083.07.85.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zM16.601 4.4c1.654 0 3 1.345 3 3 0 1.132-.63 2.118-1.558 2.63a5.43 5.43 0 00-1.344-1.24 6.768 6.768 0 00-2.628-2.996 2.997 2.997 0 012.53-1.394zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.098-1.192l.098-.008h1.2zM11.757 2.556a.6.6 0 01.765-.069l.084.07.849.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zm8.84 0a.6.6 0 01.917.766l-.07.083-.848.848a.596.596 0 01-.849 0 .6.6 0 01-.07-.765l.07-.083.85-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.193.097L16 2.35v-1.2a.6.6 0 01.6-.6z","fill-rule":"evenodd"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M11.828 19.294l-.47 3a1.201 1.201 0 01-1.25 1.013l-.122-.013c-.995-.155-1.368-1.392-.626-2.072l2.238-2.05a.138.138 0 01.23.122zM6.52 15.821l.68 1.18.681-1.179 1.04.6L8.24 17.6H9.6v1.2H8.239l.68 1.178-1.039.6L7.2 19.4l-.68 1.18-1.04-.601.681-1.179H4.8v-1.2h1.361l-.68-1.179 1.039-.6zm7.554-1.899l-.522 3.334a1.302 1.302 0 01-1.354 1.098l-.132-.014c-1.078-.168-1.483-1.508-.678-2.245l2.487-2.28a.12.12 0 01.199.107zM10.5 5.982a5.577 5.577 0 015.242 3.638A4.246 4.246 0 0118 13.364a4.24 4.24 0 01-3.273 4.121l.011-.044.2-1.278a3.04 3.04 0 001.862-2.8 3.044 3.044 0 00-1.613-2.68l-.178-.087-.243-.11-.082-.253A4.381 4.381 0 0010.5 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 13.727c0 1.028.584 1.921 1.437 2.368l.163.079v1.272a3.877 3.877 0 01-2.8-3.719c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 5.981zm10.012 4.495l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 01.766-.918zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-1.406-4.244a.6.6 0 01.07.766l-.07.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849a.6.6 0 01.848 0zm-8.922-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 01.765-.918zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};i.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3291.08ee8735.js b/pr-preview/pr-186/assets/js/3291.08ee8735.js new file mode 100644 index 000000000..23c149449 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3291.08ee8735.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3291; +exports.ids = [3291]; +exports.modules = { + +/***/ 83291: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_voice_message: () => (/* binding */ CommunicationVoiceMessage) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationVoiceMessage = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.45 3v12.55a3.01 3.01 0 01-2.824 2.995l-.176.005h-7l-3.5 3.5c-.35.35-.75.5-1.2.5-.855 0-1.665-.632-1.744-1.595L6 20.8v-2.3H4.5a3.01 3.01 0 01-2.995-2.824L1.5 15.5V3h20.95zm-11.7 4c.367 0 .691.294.743.651l.007.099v6c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L10 13.75v-6c0-.4.35-.75.75-.75zm3 1c.367 0 .691.294.743.651l.007.099v4c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L13 12.75v-4c0-.4.35-.75.75-.75zm-6 1c.367 0 .691.294.743.651l.007.099v2c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L7 11.75v-2c0-.4.35-.75.75-.75zm9 0c.367 0 .691.294.743.651l.007.099v2c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L16 11.75v-2c0-.4.35-.75.75-.75z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.45 3v12.55a3.01 3.01 0 01-2.824 2.995l-.176.005h-7l-3.5 3.5c-.35.35-.75.5-1.2.5-.855 0-1.665-.632-1.744-1.595L6 20.8v-2.3H4.5a3.01 3.01 0 01-2.995-2.824L1.5 15.5V3h20.95zM21 4.5H3v11c0 .8.576 1.423 1.352 1.493L4.5 17h3v3.8c0 .182.207.322.394.196l.056-.046L11.9 17h7.6c.8 0 1.423-.576 1.493-1.352L21 15.5v-11zM10.75 7c.367 0 .691.294.743.651l.007.099v6c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L10 13.75v-6c0-.4.35-.75.75-.75zm3 1c.367 0 .691.294.743.651l.007.099v4c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L13 12.75v-4c0-.4.35-.75.75-.75zm-6 1c.367 0 .691.294.743.651l.007.099v2c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L7 11.75v-2c0-.4.35-.75.75-.75zm9 0c.367 0 .691.294.743.651l.007.099v2c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L16 11.75v-2c0-.4.35-.75.75-.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationVoiceMessage.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/32910ddf.609be27f.js b/pr-preview/pr-186/assets/js/32910ddf.609be27f.js new file mode 100644 index 000000000..6968e1f38 --- /dev/null +++ b/pr-preview/pr-186/assets/js/32910ddf.609be27f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[9100],{87301:e=>{e.exports=JSON.parse('{"tag":{"label":"failover","permalink":"/docs-next/pr-preview/pr-186/docs/tags/failover","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/storage/zone-redundant-nfs","title":"Zone-redundant NFS Server","description":"The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/storage/zone-redundant-nfs"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/32e0de25.a310c2e5.js b/pr-preview/pr-186/assets/js/32e0de25.a310c2e5.js new file mode 100644 index 000000000..cbfbe2078 --- /dev/null +++ b/pr-preview/pr-186/assets/js/32e0de25.a310c2e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[94133],{30972:e=>{e.exports=JSON.parse('{"tag":{"label":"bundesmessenger","permalink":"/docs-next/pr-preview/pr-186/docs/tags/bundesmessenger","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger","title":"Sovereign Digitalization for the City of Kirchheim unter Teck","description":"The City of Kirchheim unter Teck uses the BundesMessenger from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/331.a406bb3b.js b/pr-preview/pr-186/assets/js/331.a406bb3b.js new file mode 100644 index 000000000..902b4e921 --- /dev/null +++ b/pr-preview/pr-186/assets/js/331.a406bb3b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 331; +exports.ids = [331]; +exports.modules = { + +/***/ 30331: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_cloudy_snow: () => (/* binding */ WeatherCloudySnow) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherCloudySnow = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.08 18.622l1.04.6-.681 1.178h1.36v1.2H7.44l.68 1.178-1.04.6L6.4 22.2l-.68 1.178-1.04-.6.681-1.178H4v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm5.2-3.6l1.04.6-.681 1.178h1.36V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6L10.56 18H9.2v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.785-9.077a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753 4.24 4.24 0 01-2.698 3.952l-.191.069v-1.438a1 1 0 00-.402-.8l-.099-.066-2.5-1.443a1 1 0 00-.88-.059l-.12.059-2.498 1.438a1 1 0 00-.494.75l-.007.117v1.651h-.586l-.614-.355a1.002 1.002 0 00-.882-.059l-.119.059-.61.352h-.861A3.858 3.858 0 01.789 13.74c0-1.4.755-2.683 1.952-3.365.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.256zm9.251 4.601a.6.6 0 01.766-.069l.083.07.85.848a.601.601 0 01-.776.912l-.074-.063-.849-.849a.601.601 0 010-.849zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.45 5.45 0 00-1.344-1.24 6.769 6.769 0 00-2.628-2.996A3 3 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zM11.757 2.556a.6.6 0 01.765-.069l.083.07.85.848a.601.601 0 01-.776.912l-.074-.063-.848-.849a.6.6 0 010-.849zm8.839 0a.6.6 0 01.917.766l-.069.083-.849.849a.599.599 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zM16.6.55a.6.6 0 01.592.502l.008.098v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.08 18.622l1.04.6-.68 1.178H8.8v1.2H7.44l.68 1.178-1.04.6L6.4 22.2l-.68 1.178-1.04-.6.68-1.178H4v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm5.2-3.6l1.04.6-.68 1.178H14V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6.68-1.178H9.2v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.78-9.04a5.577 5.577 0 015.242 3.638A4.246 4.246 0 0118 13.364a4.238 4.238 0 01-2.607 3.905l-.193.075v-1.306a3.039 3.039 0 001.6-2.674 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.5 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 13.727a2.676 2.676 0 002.504 2.668l.169.005H8v1.2H4.673A3.877 3.877 0 01.8 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 5.981zm9.246 4.564a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 010-.849zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-2.254-4.244a.6.6 0 01.917.766l-.069.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zm-8.84 0a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 010-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherCloudySnow.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3312.e0e882c7.js b/pr-preview/pr-186/assets/js/3312.e0e882c7.js new file mode 100644 index 000000000..0ce0dacde --- /dev/null +++ b/pr-preview/pr-186/assets/js/3312.e0e882c7.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3312; +exports.ids = [3312]; +exports.modules = { + +/***/ 73312: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_service_manual: () => (/* binding */ ServiceManual) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ServiceManual = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 17.5L15.5 23v-4a1.5 1.5 0 011.355-1.493L17 17.5h4zM21 1v15.5h-4a2.5 2.5 0 00-2.495 2.335L14.5 19v4H6a3 3 0 01-2.995-2.824L3 20V1h18zm-7.228 5.316c-.428 0-.856.098-1.254.306-1.151.602-1.693 1.933-1.427 3.239l.043.186-3.43 3.429A1.567 1.567 0 009.8 15.798l.119-.107 3.331-3.331c.304.104.62.158.937.158.427 0 .855-.1 1.252-.306 1.103-.577 1.638-1.824 1.448-3.075l-.034-.188-2.081 1.088-.785-.623-.063-1.001 2.086-1.09c-.603-.643-1.419-1.007-2.238-1.007z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.92 15.691l3.33-3.33a2.78 2.78 0 002.19-.149c1.157-.606 1.69-1.95 1.412-3.262l-2.08 1.087-.785-.623-.064-1 2.081-1.088c-.919-.979-2.328-1.31-3.486-.703-1.206.63-1.744 2.061-1.385 3.423l-3.429 3.43a1.567 1.567 0 002.215 2.215zm9.58 1.31h-3a1.5 1.5 0 00-1.5 1.5v3H6c-.827 0-1.5-.674-1.5-1.5V2.5h15V17zM3 1v19a3 3 0 003 3h10l5-5V1H3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ServiceManual.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/33145.b410bd44.js b/pr-preview/pr-186/assets/js/33145.b410bd44.js new file mode 100644 index 000000000..3e9bdc224 --- /dev/null +++ b/pr-preview/pr-186/assets/js/33145.b410bd44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[33145],{33145:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_weather_rain:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M11.959 17.134a.177.177 0 01.294.105l-.001.053-.599 3.828A1.534 1.534 0 019.9 22.398c-1.224-.19-1.711-1.666-.895-2.55l.096-.095 2.857-2.619zm-1.563-5.199c.11-.1.277-.028.294.105v.053l-.662 4.233a1.676 1.676 0 01-1.917 1.397c-1.341-.21-1.874-1.827-.976-2.793l.102-.1 3.159-2.895zm6.168-1.63a.177.177 0 01.294.105l-.001.053-.77 4.919a1.92 1.92 0 01-2.194 1.6c-1.539-.24-2.148-2.1-1.11-3.205l.11-.108 3.67-3.364zm-3.05-9.74a7.596 7.596 0 017.149 5.019 5.805 5.805 0 013.089 5.127c0 3.118-2.46 5.668-5.53 5.785l-.22.004-.928-.001a3.41 3.41 0 00.25-.675l.048-.241.77-4.92a1.475 1.475 0 00-2.336-1.416l-.122.1-3.67 3.364-.124.12.084-.537a1.478 1.478 0 00-2.334-1.418l-.121.1-3.16 2.895a2.948 2.948 0 00-.958 2.421l.022.193h-.2c-2.765-.146-4.971-2.45-4.971-5.27a5.299 5.299 0 012.667-4.598c.14-2.489 2.196-4.471 4.704-4.471.37 0 .737.045 1.1.134a7.558 7.558 0 014.79-1.715z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M11.957 17.134a.177.177 0 01.294.105l-.001.053-.599 3.828a1.534 1.534 0 01-1.752 1.278c-1.225-.19-1.712-1.666-.896-2.55l.097-.095 2.857-2.619zm-1.563-5.199c.11-.1.277-.028.294.105v.053l-.663 4.233a1.676 1.676 0 01-1.916 1.397c-1.341-.21-1.874-1.827-.976-2.793l.102-.1 3.159-2.895zm6.167-1.63c.11-.1.277-.028.295.105l-.001.053-.77 4.919a1.92 1.92 0 01-2.194 1.6c-1.539-.24-2.148-2.1-1.11-3.205l.11-.108 3.67-3.364zm-3.05-9.74a7.596 7.596 0 017.15 5.019 5.805 5.805 0 013.089 5.127c0 3.118-2.46 5.668-5.53 5.785L18 16.5h-.695c.093-.207.167-.426.218-.655l.044-.232.096-.613H18c2.343 0 4.25-1.924 4.25-4.289A4.3 4.3 0 0019.936 6.9l-.195-.096-.303-.138-.101-.317c-.816-2.562-3.157-4.284-5.825-4.284A6.07 6.07 0 009.624 3.48l-.216.188-.328.302-.422-.146a3.178 3.178 0 00-1.036-.176A3.214 3.214 0 004.747 5.44c-.313.631-.345 1.15-.33 1.634l.025.476-.466.209a3.791 3.791 0 00-2.226 3.456c0 2.046 1.619 3.714 3.631 3.777a3.14 3.14 0 00-.16 1.492C2.456 16.34.25 14.035.25 11.215a5.299 5.299 0 012.667-4.598c.14-2.489 2.197-4.471 4.705-4.471.369 0 .736.045 1.1.134a7.558 7.558 0 014.79-1.715z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/33414.1a5d416a.js b/pr-preview/pr-186/assets/js/33414.1a5d416a.js new file mode 100644 index 000000000..ef3c34488 --- /dev/null +++ b/pr-preview/pr-186/assets/js/33414.1a5d416a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[33414],{33414:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_user_file_switch_users:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M18 18.65v1.85h2.75c.4 0 .75.35.75.75a.772.772 0 01-.651.743L20.75 22H18v1.85l-4-2.6 4-2.6zM7.1 15.5l2.9 2.9 2.85-2.9h2c-.3.45-.45 1.05-.3 1.7.089.489.375.899.719 1.23l.131.12L13.15 20H.6l.15-.8a4.402 4.402 0 014.136-3.695L5.1 15.5h2zm12.4-1.35l4 2.6-4 2.6V17.5h-2.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L16.75 16h2.75v-1.85zM10 2.25c3.2 0 5.55 2.35 5.55 5.55 0 3.1-2.25 6.45-5.55 6.45S4.45 10.9 4.45 7.8c0-3.2 2.35-5.55 5.55-5.55z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M18 18.65v1.85h2.75c.4 0 .75.35.75.75a.772.772 0 01-.651.743L20.75 22H18v1.85l-4-2.6 4-2.6zM7.1 15.5l2.9 2.9 2.85-2.9h2c-.3.45-.45 1.05-.3 1.7.089.489.375.899.719 1.23l.131.12L13.15 20H.6l.15-.8a4.402 4.402 0 014.136-3.695L5.1 15.5h2zm12.4-1.35l4 2.6-4 2.6V17.5h-2.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L16.75 16h2.75v-1.85zM10 2.25c3.2 0 5.55 2.35 5.55 5.55 0 3.1-2.25 6.45-5.55 6.45S4.45 10.9 4.45 7.8c0-3.2 2.35-5.55 5.55-5.55zm0 1.5c-2.35 0-4.05 1.7-4.05 4.05 0 2.4 1.65 4.95 4.05 4.95s4.05-2.55 4.05-4.95c0-2.35-1.7-4.05-4.05-4.05z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/33429.3aa86846.js b/pr-preview/pr-186/assets/js/33429.3aa86846.js new file mode 100644 index 000000000..ed9178b3d --- /dev/null +++ b/pr-preview/pr-186/assets/js/33429.3aa86846.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[33429],{33429:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_home_power_socket:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 19a7 7 0 110-14 7 7 0 010 14zM2 2v17a3 3 0 003 3h14a3 3 0 003-3V2H2zm12.5 11.25a1.25 1.25 0 11.001-2.5 1.25 1.25 0 010 2.5zm-5 0a1.25 1.25 0 11.001-2.5 1.25 1.25 0 010 2.5zm3.25-6.693V8.5h-1.5V6.557C8.573 6.925 6.5 9.223 6.5 12c0 2.777 2.072 5.075 4.75 5.443V15.5h1.5v1.943c2.678-.368 4.75-2.666 4.75-5.443 0-2.777-2.072-5.075-4.75-5.443z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M14.5 13.25a1.25 1.25 0 100-2.5 1.25 1.25 0 000 2.5zm-5 0a1.25 1.25 0 100-2.5 1.25 1.25 0 000 2.5zm1.75-6.693V8.5h1.5V6.557c2.678.368 4.75 2.666 4.75 5.443 0 2.777-2.072 5.075-4.75 5.443V15.5h-1.5v1.943C8.573 17.075 6.5 14.777 6.5 12c0-2.777 2.072-5.075 4.75-5.443zM12 19a7 7 0 100-14 7 7 0 000 14zm8.5 0c0 .827-.672 1.5-1.5 1.5H5c-.827 0-1.5-.673-1.5-1.5V3.5h17V19zM2 2v17a3 3 0 003 3h14a3 3 0 003-3V2H2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/33812.62d9a5ad.js b/pr-preview/pr-186/assets/js/33812.62d9a5ad.js new file mode 100644 index 000000000..c0017841c --- /dev/null +++ b/pr-preview/pr-186/assets/js/33812.62d9a5ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[33812],{33812:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_t_product_seamless_connectivity:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21.005 5.102a4.195 4.195 0 00-4.651.922l-.927.926-8.64 8.64-.921.922a2.227 2.227 0 01-3.807-1.574V9.043a2.203 2.203 0 011.378-2.059c.277-.114.574-.173.873-.173.586 0 1.148.237 1.556.658l3.724 3.725 1.44-1.44-3.724-3.725a4.205 4.205 0 00-4.656-.922A4.196 4.196 0 000 9.043v5.914a4.21 4.21 0 002.635 3.945 4.214 4.214 0 004.656-.926l.922-.926 8.64-8.64.921-.922A2.227 2.227 0 0121.6 9.043v5.914a2.227 2.227 0 01-3.806 1.574l-3.725-3.725-1.44 1.44 3.73 3.73a4.214 4.214 0 002.99 1.262 4.32 4.32 0 001.66-.336 4.21 4.21 0 002.636-3.945V9.043a4.195 4.195 0 00-2.64-3.94z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21.45 5.1c-1.6-.65-3.3-.3-4.5.9L6 16.95c-.9.9-2.1.9-2.85.55-.8-.3-1.65-1.1-1.65-2.4V8.9c0-1.3.85-2.1 1.65-2.45.9-.4 2.05-.25 2.85.55l3.9 3.9 1.05-1.05L7.05 6c-1.2-1.2-2.95-1.55-4.5-.9C1 5.75 0 7.2 0 8.9v6.15c0 1.7 1 3.15 2.55 3.8 1.55.65 3.3.3 4.5-.9L18 7.05c.9-.9 2.1-.9 2.85-.55.8.35 1.65 1.15 1.65 2.45v6.15c0 1.3-.85 2.1-1.65 2.45-.8.35-1.95.35-2.85-.55l-3.9-3.9-1.05 1.05 3.9 3.9c1.2 1.2 2.95 1.55 4.5.9C23 18.3 24 16.85 24 15.15V8.9c0-1.7-1-3.15-2.55-3.8z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3392.38de895d.js b/pr-preview/pr-186/assets/js/3392.38de895d.js new file mode 100644 index 000000000..6adf3cd11 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3392.38de895d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3392; +exports.ids = [3392]; +exports.modules = { + +/***/ 43392: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_notification: () => (/* binding */ ActionNotification) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionNotification = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22 16.95c-2.35-2.35-2.7-4.65-2.8-5.8L19 9.4c-.25-3.15-2.55-5.6-5.5-6.25V3c0-.85-.65-1.5-1.5-1.5s-1.5.65-1.5 1.5v.15C7.55 3.8 5.25 6.25 5 9.4l-.15 1.75c-.15 1.1-.5 3.4-2.85 5.8v3.55h7.05C9.3 21.9 10.5 23 12 23c1.5 0 2.7-1.1 2.95-2.5H22v-3.55z" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22 16.95c-2.35-2.35-2.7-4.65-2.8-5.8L19 9.4c-.25-3.15-2.55-5.6-5.5-6.25V3c0-.85-.65-1.5-1.5-1.5s-1.5.65-1.5 1.5v.15C7.55 3.8 5.25 6.25 5 9.4l-.15 1.75c-.15 1.1-.5 3.4-2.85 5.8v3.55h7.05C9.3 21.9 10.5 23 12 23c1.5 0 2.7-1.1 2.95-2.5H22v-3.55zM20.5 19h-17v-1.45c1.6-1.7 2.6-3.9 2.8-6.25l.15-1.75C6.75 6.65 9.1 4.5 12 4.5s5.25 2.15 5.5 5.05l.15 1.75c.2 2.35 1.2 4.55 2.8 6.25V19h.05z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionNotification.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/34032.c69e5ce0.js b/pr-preview/pr-186/assets/js/34032.c69e5ce0.js new file mode 100644 index 000000000..b515f474e --- /dev/null +++ b/pr-preview/pr-186/assets/js/34032.c69e5ce0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[34032],{34032:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_biometric:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M12.1 9.95c1.1 0 2.25.4 3.3 1.15.28.2.528.432.744.67l.156.18c.311.356.622.711 1.144 1.067l.206.133c.85.6 1.95 1 3.25 1.35.45.15.65.55.55.95-.1.4-.5.65-.9.55-1.5-.4-2.7-.9-3.7-1.55a8.522 8.522 0 01-1.127-.925L15.2 13l-.282-.294c-.09-.093-.18-.18-.273-.255l-.145-.101c-.75-.55-1.6-.85-2.4-.85-.85 0-1.65.3-2.3.85-1.55 1.3-1.75 3.5-.5 5.25.55.75 1.5 1.7 2.45 2.45.7.55 1.5 1.05 2.35 1.5.35.2.5.65.3 1s-.65.5-1 .3c-.95-.45-1.8-1-2.6-1.65-1.1-.8-2.1-1.85-2.75-2.75C6.3 16 6.6 13 8.8 11.15c.95-.75 2.1-1.2 3.3-1.2zm0-2.95c1.45 0 2.9.4 4.25 1.15a7.53 7.53 0 011.527 1.177l.838.835.243.226c.536.476 1.164.86 2.392 1.112.4.1.65.5.65.85-.1.4-.5.7-.9.6-1.76-.368-2.648-1.004-3.351-1.689l-.229-.23-.22-.231c-.5-.5-.95-.95-1.7-1.4-1.1-.6-2.35-.95-3.5-.95-1.55 0-3.05.55-4.25 1.55-2.683 2.293-3.13 6.06-1.153 9.075l.153.225c.394.613.94 1.225 1.574 1.837l.276.263c.3.25.35.75.05 1.05-.3.3-.75.35-1.05.05-.8-.75-1.5-1.55-2.05-2.3C3 16.55 3.5 11.75 6.9 8.9 8.35 7.7 10.2 7 12.1 7zm-1.35 6.5c.95-.85 2.3-.65 3.25.45.45.55.8.95 1.4 1.4 1.35 1 2.8 1.55 4.35 2 .4.15.65.55.55.95-.15.4-.55.6-.95.5l-.94-.295-.432-.146A12.556 12.556 0 0114.6 16.6l-.506-.438c-.113-.1-.228-.205-.352-.324l-.192-.188-.403-.47-.247-.296-.1-.134c-.25-.3-.75-.4-1.1-.1-.3.3-.35.75-.1 1.05.525.656 1.05 1.236 1.709 1.773l.291.227c.93.75 1.95 1.284 2.768 1.645l.391.167.35.138.541.2c.35.15.6.55.45.95-.15.35-.55.6-.95.45l-.234-.08-.29-.107-.338-.131-.185-.076-.398-.17-.43-.198A14.686 14.686 0 0112.65 18.9c-.85-.65-1.65-1.5-2.15-2.15-.85-1.15-.75-2.4.25-3.25zM12.1 4c3.35 0 6.55 1.5 8.85 4.15.25.3.2.8-.1 1.05-.3.25-.8.2-1.05-.1-2-2.3-4.75-3.6-7.65-3.6-2.138 0-4.23.767-5.934 2.087L5.95 7.8c-.6.45-1.1 1-1.55 1.6-.23.275-.668.382-.971.167L3.35 9.5c-.35-.25-.4-.7-.15-1.05.5-.65 1.1-1.3 1.75-1.85C6.95 4.9 9.5 4 12.1 4zm0-3c2.3 0 4.55.55 6.65 1.65.35.2.5.65.3 1-.183.32-.577.474-.91.343l-.09-.043C16.2 3 14.2 2.5 12.15 2.5 10.05 2.5 8 3 6.2 4c-.4.15-.85.05-1.05-.35-.2-.35-.05-.8.3-1C7.5 1.55 9.8 1 12.1 1z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/34130.2722bb21.js b/pr-preview/pr-186/assets/js/34130.2722bb21.js new file mode 100644 index 000000000..1ebdcc798 --- /dev/null +++ b/pr-preview/pr-186/assets/js/34130.2722bb21.js @@ -0,0 +1,2 @@ +/*! For license information please see 34130.2722bb21.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[34130],{34130:(e,o,t)=>{t.r(o),t.d(o,{scale_checkbox:()=>i,scale_icon_action_minus:()=>n});var r=t(90936),a=t(91779),c=t(94200);const i=class{constructor(e){(0,r.r)(this,e),this.scaleChange=(0,r.c)(this,"scale-change",7),this.scaleChangeLegacy=(0,r.c)(this,"scaleChange",7),this.label="",this.hideLabel=!1,this.status="",this.invalid=!1,this.disabled=!1,this.checked=!1,this.indeterminate=!1,this.value="",this.internalId=(0,a.g)(),this.handleChange=e=>{this.indeterminate?(this.indeterminate=!1,this.checked=!0,e.target.checked=!0):this.checked=e.target.checked;const{checked:o,indeterminate:t,value:r,disabled:c}=this;(0,a.e)(this,"scaleChange",{checked:o,indeterminate:t,value:r,disabled:c})}}componentDidRender(){""!==this.status&&(0,c.s)({tag:"deprecated",message:'Property "status" is deprecated. Please use the "invalid" property!',type:"warn",source:this.host}),this.host.hasAttribute("aria-label")&&(0,c.s)({tag:"deprecated",message:'Property "ariaLabel" is deprecated. Please use the "ariaLabelCheckbox" property!',type:"warn",source:this.host})}connectedCallback(){this.inputId||(this.inputId="input-checkbox-"+this.internalId)}renderIcon(){return this.indeterminate?(0,r.h)("scale-icon-action-minus",{part:"icon",decorative:!0}):this.checked?(0,r.h)("scale-icon-action-checkmark",{part:"icon",decorative:!0}):void 0}renderHelperIcon(){return this.helperText&&!this.invalid?(0,r.h)("scale-icon-alert-information",{size:11}):this.invalid?(0,r.h)("scale-icon-alert-error",{size:11}):void 0}renderHelperText(e){if(this.helperText&&""!==this.helperText)return(0,r.h)("div",{part:"helper-text",id:e.id,"aria-live":"polite","aria-relevant":"additions removals"},this.renderHelperIcon(),e.content)}render(){const e={id:this.helperText?`helper-message-${this.internalId}`:null,content:this.helperText};return(0,r.h)(r.a,{class:{checked:this.checked,indeterminate:this.indeterminate,disabled:this.disabled,error:"error"===this.status||this.invalid,hideLabel:this.hideLabel}},(0,r.h)("input",{type:"checkbox",part:"input",name:this.name||null,id:this.inputId,value:this.value,checked:this.checked,indeterminate:this.indeterminate,"aria-label":this.ariaLabelCheckbox,"aria-checked":!!this.indeterminate&&"mixed","aria-invalid":"error"===this.status||this.invalid?"true":null,"aria-describedBy":e.id,disabled:this.disabled,required:this.required,onChange:this.handleChange}),(0,r.h)("label",{part:"container",htmlFor:this.inputId},(0,r.h)("span",{part:"checkbox"},this.renderIcon()),(0,r.h)("span",{part:"label"},this.label||(0,r.h)("slot",null))),this.renderHelperText(e))}get host(){return(0,r.g)(this)}};i.style=":host,scale-checkbox{--spacing-x:var(--telekom-spacing-composition-space-04);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--color-text:var(--telekom-color-text-and-icon-standard);--color-error:var(--telekom-color-functional-danger-standard);--color-disabled:var(--telekom-color-text-and-icon-disabled);--color-standard:var(--telekom-color-background-surface);--background-disabled:none;--color-primary:var(--telekom-color-primary-standard);--color-focus:var(--telekom-color-functional-focus-standard);--color-primary-hover:var(--telekom-color-text-and-icon-standard);--color-primary-active:var(--telekom-color-text-and-icon-standard);--width-control:var(--telekom-spacing-composition-space-07);--height-control:var(--telekom-spacing-composition-space-07);--transition-control:var(--transition);--spacing-control:var(--telekom-spacing-composition-space-02);--spacing-left-control:var(--telekom-spacing-composition-space-03);--radius-control:var(--telekom-radius-small);--border-width-control:var(--telekom-line-weight-standard);--transition-helper-text:var(--transition);--spacing-left-helper-text:calc(var(--width-control) + var(--spacing-x));--font-size-helper-text:var(--telekom-typography-font-size-small);--font-weight-helper-text:var(--telekom-typography-font-weight-bold);--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--color-helper-text:var(\n --telekom-color-text-and-icon-functional-informational\n );--font-weight-label:var(--telekom-typography-font-weight-medium);--transition-label:var(--transition);--color-icon-checked-disabled:var(--telekom-color-text-and-icon-disabled);--color-icon-checked-active:var(\n --telekom-color-text-and-icon-white-standard\n );--width-icon:var(--telekom-spacing-composition-space-06);--height-icon:var(--telekom-spacing-composition-space-06);--stroke-width:var(--stroke-width-checkbox, 0.5px)}scale-checkbox{position:relative;display:flex;width:fit-content;flex-direction:column;color:var(--color-text)}scale-checkbox [part='icon'],scale-checkbox [part='checkbox'],scale-checkbox [part='label'],scale-checkbox [part='helper-text']{transition:var(--transition)}scale-checkbox [part='input'],scale-checkbox.hideLabel [part='label']{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}scale-checkbox [part='checkbox']{box-sizing:border-box;display:flex;flex:0 0 auto;justify-content:center;align-items:center;width:var(--width-control);height:var(--height-control);border-radius:var(--radius-control);border:var(--border-width-control) solid\n var(--telekom-color-ui-border-standard)}scale-checkbox [part='label']{font-weight:var(--font-weight-label);margin-left:var(--spacing-x)}scale-checkbox [part='icon']{width:var(--width-icon);height:var(--height-icon);color:var(--color-icon-checked-active)}scale-checkbox [part='icon'] svg{width:100%;height:100%}scale-checkbox [part='icon'] svg rect,scale-checkbox [part='icon'] svg path{stroke:currentColor;stroke-width:var(--stroke-width)}scale-checkbox [part='container']{align-items:center;display:flex;line-height:var(--telekom-typography-line-spacing-standard)}scale-checkbox [part='helper-text']{font-size:var(--font-size-helper-text);font-weight:var(--font-weight-helper-text);line-height:var(--line-height-helper-text);color:var(--color-helper-text);padding-left:calc(\n var(--width-control) + var(--spacing-control) + var(--spacing-x) +\n calc(var(--border-width-control) * 2)\n );display:flex;align-items:center}scale-checkbox.indeterminate [part='checkbox']{background:var(--telekom-color-primary-standard);border:none;color:var(--color-icon-checked-active)}scale-checkbox.indeterminate [part='icon']{color:var(--color-icon-checked-active)}scale-checkbox.checked [part='checkbox']{background:var(--telekom-color-primary-standard);border-color:var(--telekom-color-primary-standard);color:var(--color-icon-checked-active)}scale-checkbox [part='container']:hover [part='checkbox']{background:var(--telekom-color-ui-state-fill-hovered);border-color:var(--telekom-color-ui-border-hovered);color:var(--color-icon-checked-active)}scale-checkbox.checked [part='container']:hover [part='checkbox']{background:var(--telekom-color-primary-hovered);border-color:var(--telekom-color-ui-border-hovered);color:var(--color-icon-checked-active)}scale-checkbox [part='container']:active [part='checkbox']{background:var(--telekom-color-ui-state-fill-pressed);border-color:var(--telekom-color-ui-border-pressed);color:var(--color-icon-checked-active)}scale-checkbox [part='input']:focus~[part='container'] [part='checkbox']{outline:var(--telekom-spacing-composition-space-02) solid var(--color-focus);outline-offset:var(--telekom-spacing-composition-space-01)}scale-checkbox [part='container']:hover{color:var(--color-primary-hover);cursor:pointer}scale-checkbox.checked [part='container']:hover [part='checkbox'],scale-checkbox.indeterminate [part='container']:hover [part='checkbox']{background:var(--telekom-color-primary-hovered);border-color:var(--telekom-color-primary-hovered)}scale-checkbox.checked [part='input']:active~[part='container'],scale-checkbox.checked [part='container']:active{color:var(--color-primary-active)}scale-checkbox [part='input']:active~[part='container'] [part='checkbox'],scale-checkbox.checked [part='container']:active [part='checkbox'],scale-checkbox.indeterminate [part='container']:active [part='checkbox']{background:var(--telekom-color-primary-pressed);border-color:var(--telekom-color-primary-pressed)}scale-checkbox:not(.checked) [part='container']:active [part='checkbox']{background:var(--telekom-color-ui-state-fill-pressed);border-color:var(--telekom-color-ui-border-pressed)}scale-icon-alert-information,scale-icon-alert-error{color:var(--color-helper-text);display:flex;justify-content:center;align-items:center;margin-right:var(--telekom-spacing-composition-space-03)}scale-checkbox.error [part='helper-text']{color:var(--telekom-color-text-and-icon-functional-danger)}scale-checkbox.error [part='helper-text'] scale-icon-alert-error{color:var(--telekom-color-text-and-icon-functional-danger)}scale-checkbox.error [part='checkbox']{box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--color-error);border:none}scale-checkbox.error [part='input']:focus~[part='container'] [part='checkbox']{box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--color-error)}scale-checkbox.error [part='checkbox']:hover{background-color:var(--telekom-color-ui-state-fill-hovered);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-hovered)}scale-checkbox.error [part='checkbox']:active{background-color:var(--telekom-color-ui-state-fill-pressed);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-pressed)}scale-checkbox.error:not(.checked) [part='container']:active [part='checkbox']{background:var(--telekom-color-ui-state-fill-pressed);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-pressed)}scale-checkbox.checked.error [part='container']:hover [part='checkbox']{background-color:var(--telekom-color-primary-hovered);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-hovered)}scale-checkbox.error [part='helper-text']{padding-left:calc(\n var(--width-control) + var(--spacing-control) + var(--spacing-x)\n )}scale-checkbox.disabled{cursor:not-allowed}scale-checkbox.disabled [part='container'],scale-checkbox.disabled [part='helper-text']{color:var(--color-disabled);pointer-events:none}scale-checkbox.disabled [part='checkbox']{background:var(--telekom-color-ui-solid-fill-disabled);border-color:var(--telekom-color-ui-border-disabled)}scale-checkbox.checked.disabled [part='checkbox']{background-color:var(--telekom-color-ui-disabled);border-color:transparent}scale-checkbox.checked.disabled [part='icon']{color:var(--color-icon-checked-disabled);background-color:var(--telekom-color-ui-disabled)}scale-checkbox.disabled [part='helper-text'] scale-icon-alert-information,scale-checkbox.disabled.error [part='helper-text'] scale-icon-alert-error{color:var(--color-disabled)}";const n=class{constructor(e){(0,r.r)(this,e),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const e=this.decorative?{"aria-hidden":"true"}:{},o=this.focusable?{tabindex:0}:{};return(0,r.h)(r.a,null,(0,r.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},e,o),this.accessibilityTitle&&(0,r.h)("title",null,this.accessibilityTitle),(0,r.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,r.h)("g",null,(0,r.h)("path",{d:"M19.5 10.75h-15a1.25 1.25 0 000 2.5h15a1.25 1.25 0 100-2.5z","fill-rule":"evenodd"})):(0,r.h)("g",null,(0,r.h)("path",{d:"M19.5 12.75h-15a.75.75 0 110-1.5h15a.75.75 0 110 1.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,r.g)(this)}};n.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"},94200:(e,o,t)=>{t.d(o,{s:()=>c});const r={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},a={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function c({tag:e="WIP",extraMessage:o=null,message:t=null,source:c=null,type:i="info"}){(0,console[i])(`%c scale \u2013 ${r[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${t||a[e]} ${o?"\n"+o:""}\n `,null!==c?"\nsource:":"","object"==typeof c?c:`${c}`,null!==c?"\n\n":"")}},91779:(e,o,t)=>{t.d(o,{a:()=>h,b:()=>i,c:()=>a,e:()=>c,g:()=>s,h:()=>r,i:()=>n});const r=e=>!!e.shadowRoot&&!!e.attachShadow,a=e=>{let o=document.styleSheets[0];if(!o){const e=document.createElement("style");document.head.appendChild(e),o=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),o.insertRule("html"+e+"{}",0),o.deleteRule(0),!0}catch(t){return!1}}()};function c(e,o,t){const r=o+"Legacy",a=[];return void 0!==e[r]&&a.push(e[r].emit(t)),a.push(e[o].emit(t)),a}function i(e,o){let t=e.target;const r=null!=t.shadowRoot,a=r?e.composedPath():[];do{if(t===o)return!1;t=r?a.shift():t.parentNode}while(t);return!0}const n=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let l=0;function s(){return l++}const h=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/34130.2722bb21.js.LICENSE.txt b/pr-preview/pr-186/assets/js/34130.2722bb21.js.LICENSE.txt new file mode 100644 index 000000000..6ba7e7f54 --- /dev/null +++ b/pr-preview/pr-186/assets/js/34130.2722bb21.js.LICENSE.txt @@ -0,0 +1,10 @@ +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/3414.70574962.js b/pr-preview/pr-186/assets/js/3414.70574962.js new file mode 100644 index 000000000..75d825fa4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3414.70574962.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3414; +exports.ids = [3414]; +exports.modules = { + +/***/ 33414: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_switch_users: () => (/* binding */ UserFileSwitchUsers) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileSwitchUsers = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18 18.65v1.85h2.75c.4 0 .75.35.75.75a.772.772 0 01-.651.743L20.75 22H18v1.85l-4-2.6 4-2.6zM7.1 15.5l2.9 2.9 2.85-2.9h2c-.3.45-.45 1.05-.3 1.7.089.489.375.899.719 1.23l.131.12L13.15 20H.6l.15-.8a4.402 4.402 0 014.136-3.695L5.1 15.5h2zm12.4-1.35l4 2.6-4 2.6V17.5h-2.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L16.75 16h2.75v-1.85zM10 2.25c3.2 0 5.55 2.35 5.55 5.55 0 3.1-2.25 6.45-5.55 6.45S4.45 10.9 4.45 7.8c0-3.2 2.35-5.55 5.55-5.55z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18 18.65v1.85h2.75c.4 0 .75.35.75.75a.772.772 0 01-.651.743L20.75 22H18v1.85l-4-2.6 4-2.6zM7.1 15.5l2.9 2.9 2.85-2.9h2c-.3.45-.45 1.05-.3 1.7.089.489.375.899.719 1.23l.131.12L13.15 20H.6l.15-.8a4.402 4.402 0 014.136-3.695L5.1 15.5h2zm12.4-1.35l4 2.6-4 2.6V17.5h-2.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L16.75 16h2.75v-1.85zM10 2.25c3.2 0 5.55 2.35 5.55 5.55 0 3.1-2.25 6.45-5.55 6.45S4.45 10.9 4.45 7.8c0-3.2 2.35-5.55 5.55-5.55zm0 1.5c-2.35 0-4.05 1.7-4.05 4.05 0 2.4 1.65 4.95 4.05 4.95s4.05-2.55 4.05-4.95c0-2.35-1.7-4.05-4.05-4.05z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileSwitchUsers.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/34275.b0ed7e55.js b/pr-preview/pr-186/assets/js/34275.b0ed7e55.js new file mode 100644 index 000000000..ec4000223 --- /dev/null +++ b/pr-preview/pr-186/assets/js/34275.b0ed7e55.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[34275],{34275:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_arrange:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M5.25 1l3.6 5.5H6.5V17h2.35l-3.6 5.5-3.6-5.5H4V6.5H1.65L5.25 1zm15.499 15.52a1.25 1.25 0 01.128 2.494l-.128.007H11v-2.5h9.749zM11 10.477l9.753.034a1.25 1.25 0 01.123 2.494l-.132.006L11 12.976v-2.5zM20.749 4.5a1.25 1.25 0 01.128 2.493L20.749 7H11V4.5h9.749z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M22 5.75a.75.75 0 00-.75-.75H11v1.5h10.25a.75.75 0 00.75-.75zM8.85 6.5L5.25 1l-3.6 5.5H4.5V17H1.65l3.6 5.5 3.6-5.5H6V6.5h2.85zm12.4 4.5H11v1.5h10.25a.75.75 0 100-1.5zm0 6H11v1.5h10.25a.75.75 0 100-1.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3429.ab6ffe05.js b/pr-preview/pr-186/assets/js/3429.ab6ffe05.js new file mode 100644 index 000000000..7b9208928 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3429.ab6ffe05.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3429; +exports.ids = [3429]; +exports.modules = { + +/***/ 33429: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_power_socket: () => (/* binding */ HomePowerSocket) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomePowerSocket = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 19a7 7 0 110-14 7 7 0 010 14zM2 2v17a3 3 0 003 3h14a3 3 0 003-3V2H2zm12.5 11.25a1.25 1.25 0 11.001-2.5 1.25 1.25 0 010 2.5zm-5 0a1.25 1.25 0 11.001-2.5 1.25 1.25 0 010 2.5zm3.25-6.693V8.5h-1.5V6.557C8.573 6.925 6.5 9.223 6.5 12c0 2.777 2.072 5.075 4.75 5.443V15.5h1.5v1.943c2.678-.368 4.75-2.666 4.75-5.443 0-2.777-2.072-5.075-4.75-5.443z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.5 13.25a1.25 1.25 0 100-2.5 1.25 1.25 0 000 2.5zm-5 0a1.25 1.25 0 100-2.5 1.25 1.25 0 000 2.5zm1.75-6.693V8.5h1.5V6.557c2.678.368 4.75 2.666 4.75 5.443 0 2.777-2.072 5.075-4.75 5.443V15.5h-1.5v1.943C8.573 17.075 6.5 14.777 6.5 12c0-2.777 2.072-5.075 4.75-5.443zM12 19a7 7 0 100-14 7 7 0 000 14zm8.5 0c0 .827-.672 1.5-1.5 1.5H5c-.827 0-1.5-.673-1.5-1.5V3.5h17V19zM2 2v17a3 3 0 003 3h14a3 3 0 003-3V2H2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomePowerSocket.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3447.7ebe3335.js b/pr-preview/pr-186/assets/js/3447.7ebe3335.js new file mode 100644 index 000000000..a834498a6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3447.7ebe3335.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[3447],{3447:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_navigation_circle_top_up:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M4.2 4.2c4.3-4.25 11.3-4.25 15.6 0 4.25 4.3 4.25 11.3 0 15.6-2.15 2.15-5 3.2-7.8 3.2s-5.65-1.1-7.8-3.2C-.05 15.5-.05 8.5 4.2 4.2zM12 8.4l4.05 4.35c.25.3.25.75-.05 1.05a.773.773 0 01-.956.031l-.094-.081L12 10.6l-2.95 3.15c-.25.3-.75.35-1.05.05a.729.729 0 01-.118-.971l.068-.079L12 8.4z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M4.2 4.2c4.3-4.25 11.3-4.25 15.6 0 4.25 4.3 4.25 11.3 0 15.6-2.15 2.15-5 3.2-7.8 3.2s-5.65-1.1-7.8-3.2C-.05 15.5-.05 8.5 4.2 4.2zm14.55 1.1C15.05 1.6 9 1.6 5.3 5.3 1.6 9 1.6 15 5.25 18.7c3.7 3.7 9.75 3.7 13.45 0 3.7-3.7 3.7-9.7.05-13.4zM12 8.4l4.05 4.35c.25.3.25.75-.05 1.05a.773.773 0 01-.956.031l-.094-.081L12 10.6l-2.95 3.15c-.25.3-.75.35-1.05.05a.729.729 0 01-.118-.971l.068-.079L12 8.4z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3447.ece39b71.js b/pr-preview/pr-186/assets/js/3447.ece39b71.js new file mode 100644 index 000000000..3ba8b0879 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3447.ece39b71.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3447; +exports.ids = [3447]; +exports.modules = { + +/***/ 3447: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_circle_top_up: () => (/* binding */ NavigationCircleTopUp) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationCircleTopUp = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M4.2 4.2c4.3-4.25 11.3-4.25 15.6 0 4.25 4.3 4.25 11.3 0 15.6-2.15 2.15-5 3.2-7.8 3.2s-5.65-1.1-7.8-3.2C-.05 15.5-.05 8.5 4.2 4.2zM12 8.4l4.05 4.35c.25.3.25.75-.05 1.05a.773.773 0 01-.956.031l-.094-.081L12 10.6l-2.95 3.15c-.25.3-.75.35-1.05.05a.729.729 0 01-.118-.971l.068-.079L12 8.4z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M4.2 4.2c4.3-4.25 11.3-4.25 15.6 0 4.25 4.3 4.25 11.3 0 15.6-2.15 2.15-5 3.2-7.8 3.2s-5.65-1.1-7.8-3.2C-.05 15.5-.05 8.5 4.2 4.2zm14.55 1.1C15.05 1.6 9 1.6 5.3 5.3 1.6 9 1.6 15 5.25 18.7c3.7 3.7 9.75 3.7 13.45 0 3.7-3.7 3.7-9.7.05-13.4zM12 8.4l4.05 4.35c.25.3.25.75-.05 1.05a.773.773 0 01-.956.031l-.094-.081L12 10.6l-2.95 3.15c-.25.3-.75.35-1.05.05a.729.729 0 01-.118-.971l.068-.079L12 8.4z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationCircleTopUp.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3469.15f0331b.js b/pr-preview/pr-186/assets/js/3469.15f0331b.js new file mode 100644 index 000000000..1b84ffb4d --- /dev/null +++ b/pr-preview/pr-186/assets/js/3469.15f0331b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3469; +exports.ids = [3469]; +exports.modules = { + +/***/ 83469: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_android: () => (/* binding */ ContentAndroid) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentAndroid = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.805 8.22l.002 8.996a1.476 1.476 0 001.479 1.478l1.007.001.001 3.072a1.386 1.386 0 102.772 0v-3.072h1.871l.001 3.071a1.387 1.387 0 002.773 0l-.001-3.07 1.01-.002a1.48 1.48 0 001.48-1.48l-.002-8.997-12.393.002zm9.039-2.746h-.001a.523.523 0 01-.523-.524.528.528 0 01.524-.525.524.524 0 010 1.049zm-5.687.001A.523.523 0 119.16 4.43a.523.523 0 01-.003 1.046zm5.903-2.73l.967-1.768a.192.192 0 10-.337-.185l-.977 1.786a6.655 6.655 0 00-2.717-.57c-.971 0-1.891.203-2.71.566L8.308.794a.192.192 0 10-.337.183l.968 1.765c-1.902.982-3.187 2.85-3.186 4.994h12.488c0-2.145-1.282-4.009-3.181-4.992zm6.446 6.596a1.386 1.386 0 10-2.772.001l.001 5.805a1.385 1.385 0 102.772 0l-.001-5.806zM3.88 7.957a1.385 1.385 0 00-1.386 1.386l.001 5.806a1.384 1.384 0 001.385 1.386h.001c.765 0 1.386-.619 1.386-1.384V9.343c0-.765-.622-1.387-1.387-1.386z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.805 8.22l.002 8.996a1.476 1.476 0 001.479 1.478l1.007.001.001 3.072a1.386 1.386 0 102.772 0v-3.072h1.871l.001 3.071a1.387 1.387 0 002.773 0l-.001-3.07 1.01-.002a1.48 1.48 0 001.48-1.48l-.002-8.997-12.393.002zm9.039-2.746h-.001a.523.523 0 01-.523-.524.528.528 0 01.524-.525.524.524 0 010 1.049zm-5.687.001A.523.523 0 119.16 4.43a.523.523 0 01-.003 1.046zm5.903-2.73l.967-1.768a.192.192 0 10-.337-.185l-.977 1.786a6.655 6.655 0 00-2.717-.57c-.971 0-1.891.203-2.71.566L8.308.794a.192.192 0 10-.337.183l.968 1.765c-1.902.982-3.187 2.85-3.186 4.994h12.488c0-2.145-1.282-4.009-3.181-4.992zm6.446 6.596a1.386 1.386 0 10-2.772.001l.001 5.805a1.385 1.385 0 102.772 0l-.001-5.806zM3.88 7.957a1.385 1.385 0 00-1.386 1.386l.001 5.806a1.384 1.384 0 001.385 1.386h.001c.765 0 1.386-.619 1.386-1.384V9.343c0-.765-.622-1.387-1.387-1.386z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentAndroid.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/35028.cbe9c2b4.js b/pr-preview/pr-186/assets/js/35028.cbe9c2b4.js new file mode 100644 index 000000000..78bfd119d --- /dev/null +++ b/pr-preview/pr-186/assets/js/35028.cbe9c2b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[35028],{35028:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_new_email:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M10.803 19.303l1.992 1.993-2.737.743.745-2.736zm10.815-10.26a1.444 1.444 0 011.12 2.355l-.1.11-8.935 8.93-2.041-2.043 8.936-8.93c.28-.281.65-.422 1.02-.422zM19 5.87v3.072L10.936 17H2.479a2.475 2.475 0 01-2.474-2.31L0 14.53V5.87l7.31 6.246a3.375 3.375 0 004.21.136l.17-.136L19 5.87zM19 3v.898l-8.284 7.077c-.636.542-1.621.576-2.3.101l-.131-.101L0 3.898V3h19z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M10.803 19.303l1.992 1.993-2.737.743.745-2.736zm10.815-10.26a1.444 1.444 0 011.12 2.355l-.1.11-8.935 8.93-2.041-2.043 8.936-8.93c.28-.281.65-.422 1.02-.422zM19 3v5.942l-1.5 1.499V7.15l-5.81 4.963a3.366 3.366 0 01-2.19.814c-.7 0-1.399-.22-1.995-.66l-.194-.154L1.5 7.152v7.377c0 .498.378.908.865.964l.114.007h9.958L10.936 17H2.479a2.476 2.476 0 01-2.474-2.31L0 14.53V2.999h19zm-1.5 1.5h-16v.679l6.785 5.795c.66.563 1.6.6 2.295.106l.136-.106L17.5 5.179v-.68z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/35074.990e51f6.js b/pr-preview/pr-186/assets/js/35074.990e51f6.js new file mode 100644 index 000000000..861603c9e --- /dev/null +++ b/pr-preview/pr-186/assets/js/35074.990e51f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[35074],{35074:(t,i,e)=>{e.r(i),e.d(i,{scale_icon_communication_network_signal:()=>l});var s=e(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M18.75 3.58c.69 0 1.25.56 1.25 1.25V20.5h-2.5V4.83c0-.69.56-1.25 1.25-1.25zm-4.5 3.615c.69 0 1.25.56 1.25 1.25V20.5H13V8.445c0-.69.56-1.25 1.25-1.25zm-4.5 4.1c.69 0 1.25.559 1.25 1.25V20.5H8.5v-7.955c0-.691.56-1.25 1.25-1.25zm-4.5 3.585c.69 0 1.25.559 1.25 1.25v4.37H4v-4.37c0-.691.56-1.25 1.25-1.25z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/350a6eee.11c01627.js b/pr-preview/pr-186/assets/js/350a6eee.11c01627.js new file mode 100644 index 000000000..b053cdb9f --- /dev/null +++ b/pr-preview/pr-186/assets/js/350a6eee.11c01627.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[87375],{59480:e=>{e.exports=JSON.parse('{"tag":{"label":"vpn","permalink":"/docs-next/pr-preview/pr-186/docs/tags/vpn","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub","title":"Connecting Multiple On-Premises Branch Networks Through a VPN Hub","description":"In this solution we are going to demonstrate how an Enterprise A can implement communication between its two on-premises data centers in order to meet service requirements.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/35118.4ac84d6a.js b/pr-preview/pr-186/assets/js/35118.4ac84d6a.js new file mode 100644 index 000000000..026336c24 --- /dev/null +++ b/pr-preview/pr-186/assets/js/35118.4ac84d6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[35118],{35118:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_pause_nb:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M11 5v14H6V5h5zm7 0v14h-5V5h5z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3512.61c5fbb7.js b/pr-preview/pr-186/assets/js/3512.61c5fbb7.js new file mode 100644 index 000000000..6d3054765 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3512.61c5fbb7.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3512; +exports.ids = [3512]; +exports.modules = { + +/***/ 53512: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_folder: () => (/* binding */ ContentFolder) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentFolder = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.5 4.5c-.3 0-.6-.15-.85-.35l-.45-.45c-.7-.75-1.65-1.2-2.7-1.2H1V19c0 1.65 1.35 3 3 3h16c1.65 0 3-1.35 3-3V4.5H11.5z", id: "a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.5 2.5c1.05 0 2 .45 2.7 1.2l.45.45c.25.2.55.35.85.35H23V19c0 1.65-1.35 3-3 3H4c-1.65 0-3-1.35-3-3V2.5zm0 1.5h-5v15c0 .85.65 1.5 1.5 1.5h16c.85 0 1.5-.65 1.5-1.5V6h-10c-.7 0-1.4-.3-1.9-.85l-.45-.45C8.7 4.25 8.1 4 7.5 4z", id: "a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentFolder.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3527.2c79cb52.js b/pr-preview/pr-186/assets/js/3527.2c79cb52.js new file mode 100644 index 000000000..8a3791a41 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3527.2c79cb52.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3527; +exports.ids = [3527]; +exports.modules = { + +/***/ 73527: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_e_sim: () => (/* binding */ ContentESim) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentESim = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { "fill-rule": "evenodd" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20 3a3 3 0 012.995 2.824L23 6v12a3 3 0 01-2.824 2.995L20 21h-.5v-2.5h.5a.5.5 0 00.492-.41L20.5 18V6a.5.5 0 00-.41-.492L20 5.5H8.535L3.5 10.535V15H1V9.5L7.5 3H20z" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2.95 16.65c1.05 0 1.736.774 1.796 1.976l.004.174v.4h-2.6c.05.75.35 1 .8 1 .262 0 .487-.115.606-.311L3.6 19.8h1.15c-.2.85-.9 1.35-1.8 1.35-1.15 0-1.9-.85-1.9-2.25 0-1.45.75-2.25 1.9-2.25zM7.3 15c1.09 0 1.73.628 1.88 1.587l.02.163H8.05c-.05-.45-.3-.65-.75-.65-.4 0-.7.25-.7.65 0 .36.243.517.51.618l.09.032.65.2c.85.25 1.4.9 1.4 1.6 0 1.15-.85 1.8-1.95 1.8-1.137 0-1.825-.539-1.98-1.573l-.02-.177h1.15c.1.5.4.7.85.7.5 0 .75-.3.75-.65 0-.315-.203-.509-.571-.617l-.129-.033-.65-.2c-.95-.25-1.3-.9-1.3-1.65 0-1.1.8-1.8 1.9-1.8zm3.9.2V21h-1.15v-5.8h1.15zm2.2 0l1.75 3.2h.05l1.7-3.2H18V21h-1.2v-3.3h-.05l-1.4 2.6h-.4l-1.4-2.6h-.05V21h-1.15v-5.8h1.05zM2.95 17.6c-.367 0-.65.168-.77.62l-.03.13H3.7c-.1-.55-.4-.75-.75-.75z" })))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2.95 16.65c1.05 0 1.736.774 1.796 1.976l.004.174v.4h-2.6c.05.75.35 1 .8 1 .262 0 .487-.115.606-.311L3.6 19.8h1.15c-.2.85-.9 1.35-1.8 1.35-1.15 0-1.9-.85-1.9-2.25 0-1.45.75-2.25 1.9-2.25zM20 3a3.01 3.01 0 012.995 2.824L23 6v12a3.01 3.01 0 01-2.824 2.995L20 21h-.5v-1.5h.5c.8 0 1.423-.576 1.493-1.352L21.5 18V6c0-.8-.576-1.423-1.352-1.493L20 4.5H8.1l-5.6 5.6V15H1V9.5L7.5 3H20zM7.3 15c1.09 0 1.73.628 1.88 1.587l.02.163H8.05c-.05-.45-.3-.65-.75-.65-.4 0-.7.25-.7.65 0 .36.243.517.51.618l.09.032.65.2c.85.25 1.4.9 1.4 1.6 0 1.15-.85 1.8-1.95 1.8-1.137 0-1.825-.539-1.98-1.573l-.02-.177h1.15c.1.5.4.7.85.7.5 0 .75-.3.75-.65 0-.315-.203-.509-.571-.617l-.129-.033-.65-.2c-.95-.25-1.3-.9-1.3-1.65 0-1.1.8-1.8 1.9-1.8zm3.9.2V21h-1.15v-5.8h1.15zm2.2 0l1.75 3.2h.05l1.7-3.2H18V21h-1.2v-3.3h-.05l-1.4 2.6h-.4l-1.4-2.6h-.05V21h-1.15v-5.8h1.05zM2.95 17.6c-.367 0-.65.168-.77.62l-.03.13H3.7c-.1-.55-.4-.75-.75-.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentESim.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3529.cce53820.js b/pr-preview/pr-186/assets/js/3529.cce53820.js new file mode 100644 index 000000000..114746266 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3529.cce53820.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3529; +exports.ids = [3529]; +exports.modules = { + +/***/ 93529: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_id: () => (/* binding */ ContentId) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentId = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.707 16.843v-3.729h.776c.829 0 1.365.553 1.365 1.864 0 1.312-.536 1.865-1.365 1.865h-.776zm3.39-1.864c0-1.934-.972-2.978-2.525-2.978h-2.069v5.958h2.069c1.552 0 2.525-1.044 2.525-2.98zm-6.967 2.98h1.204V12H13.13v5.958zm-5.376-2.905c1.206 0 2.083-1.226 2.083-2.492 0-1.265-.932-2.092-2.083-2.092-1.151 0-2.083.826-2.083 2.092s.877 2.492 2.083 2.492zm1.978.832h-.815L7.754 17.05l-1.162-1.162h-.817c-.804 0-1.492.573-1.638 1.363l-.134.72h7.5l-.133-.72a1.665 1.665 0 00-1.638-1.364zM22.001 19.5c0 .826-.674 1.5-1.5 1.5h-17c-.828 0-1.5-.674-1.5-1.5V7h8v2.5h4V7h8v12.5zm-8-14v-5h-4v5h-9.5v14a3 3 0 003 3h17a3 3 0 003-3v-14h-9.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.707 16.843v-3.729h.776c.829 0 1.365.553 1.365 1.864 0 1.312-.536 1.865-1.365 1.865h-.776zm3.39-1.864c0-1.934-.972-2.978-2.525-2.978h-2.069v5.958h2.069c1.552 0 2.525-1.044 2.525-2.98zm-6.967 2.98h1.204V12H13.13v5.958zm-5.376-2.905c1.206 0 2.083-1.226 2.083-2.492 0-1.265-.932-2.092-2.083-2.092-1.151 0-2.083.826-2.083 2.092s.877 2.492 2.083 2.492zm1.978.832h-.815L7.754 17.05l-1.162-1.162h-.817c-.804 0-1.492.573-1.638 1.363l-.134.72h7.5l-.133-.72a1.665 1.665 0 00-1.638-1.364zM22.001 19.5c0 .826-.674 1.5-1.5 1.5h-17c-.828 0-1.5-.674-1.5-1.5V7h8v2.5h4V7h8v12.5zm-8-14v-5h-4v5h-9.5v14a3 3 0 003 3h17a3 3 0 003-3v-14h-9.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentId.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3533.dd7aa5bc.js b/pr-preview/pr-186/assets/js/3533.dd7aa5bc.js new file mode 100644 index 000000000..7f9e12901 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3533.dd7aa5bc.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3533; +exports.ids = [3533]; +exports.modules = { + +/***/ 13533: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_t_product_magenta_tv: () => (/* binding */ TProductMagentaTv) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const TProductMagentaTv = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.825 10.75L18.5 3.25A2.5 2.5 0 0016.33 2H7.67A2.5 2.5 0 005.5 3.25l-4.33 7.5a2.5 2.5 0 000 2.5l4.33 7.5A2.5 2.5 0 007.67 22h8.66a2.5 2.5 0 002.17-1.25l4.33-7.5a2.5 2.5 0 00-.005-2.5zM9.5 16.33V7.67L17 12l-7.5 4.33z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.35 2c.793 0 1.587.436 2.055 1.103l.095.147 4.35 7.5c.371.696.398 1.608.04 2.336l-.09.164-4.35 7.5c-.42.7-1.145 1.182-1.971 1.243L16.3 22H7.65c-.84 0-1.593-.436-2.055-1.103L5.5 20.75l-4.35-7.5a2.49 2.49 0 01-.09-2.336l.09-.164 4.35-7.5c.42-.7 1.145-1.182 1.971-1.243L7.65 2h8.7zm-.05 1.5H7.65c-.306 0-.574.153-.77.392L6.8 4l-4.35 7.5a.91.91 0 00-.06.897L6.8 20c.133.267.425.454.734.493l.116.007h8.7c.306 0 .574-.153.77-.392L17.2 20l4.35-7.5c.131-.262.148-.602.016-.883L21.5 11.5 17.15 4c-.133-.267-.425-.454-.734-.493L16.3 3.5zM9.5 7.65L17 12l-7.5 4.35v-8.7z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TProductMagentaTv.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3537.6b2b043d.js b/pr-preview/pr-186/assets/js/3537.6b2b043d.js new file mode 100644 index 000000000..6d46030cc --- /dev/null +++ b/pr-preview/pr-186/assets/js/3537.6b2b043d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3537; +exports.ids = [3537]; +exports.modules = { + +/***/ 13537: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_preferred_wifi: () => (/* binding */ HomePreferredWifi) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomePreferredWifi = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.006 18a2 2 0 11-.001 4.001A2 2 0 0112.006 18zm-1.08-4.4c.15.684.394 1.33.722 1.926a4.494 4.494 0 00-3.501 2.162l-.11.195-1.438-1.49a6.494 6.494 0 014.327-2.792zm.517-4.584a7.157 7.157 0 00-.612 2.063 8.985 8.985 0 00-5.801 3.25l-.19.242-1.407-1.46a10.98 10.98 0 018.01-4.095zm6.505.247a.254.254 0 01.234.15l.59 1.441 1.563.115a.255.255 0 01.132.453l-1.193 1.008.373 1.517a.257.257 0 01-.099.267.258.258 0 01-.283.011l-1.324-.823-1.322.823a.257.257 0 01-.383-.278l.373-1.517-1.193-1.008a.257.257 0 01-.079-.275.252.252 0 01.225-.175l1.564-.115.59-1.443a.256.256 0 01.232-.15zM12.006 4.5c1.47 0 2.89.205 4.235.587a7.158 7.158 0 00-2.92 1.48 13.47 13.47 0 00-11.405 4.468l-.23.264L.293 9.854A15.464 15.464 0 0112.006 4.5zm5.938 1.875a5.687 5.687 0 11-.001 11.375 5.687 5.687 0 010-11.375z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.006 18a2 2 0 11-.001 4.001A2 2 0 0112.006 18zm-1.08-4.4c.15.684.394 1.33.722 1.926a4.494 4.494 0 00-3.501 2.162l-.11.195-1.438-1.49a6.494 6.494 0 014.327-2.792zm.517-4.584a7.157 7.157 0 00-.612 2.063 8.985 8.985 0 00-5.801 3.25l-.19.242-1.407-1.46a10.98 10.98 0 018.01-4.095zm6.505.247a.254.254 0 01.234.15l.59 1.441 1.563.115a.255.255 0 01.132.453l-1.193 1.008.373 1.517a.257.257 0 01-.099.267.258.258 0 01-.283.011l-1.324-.823-1.322.823a.257.257 0 01-.383-.278l.373-1.517-1.193-1.008a.257.257 0 01-.079-.275.252.252 0 01.225-.175l1.564-.115.59-1.443a.256.256 0 01.232-.15zM12.006 4.5c1.47 0 2.89.205 4.235.587a7.158 7.158 0 00-2.92 1.48 13.47 13.47 0 00-11.405 4.468l-.23.264L.293 9.854A15.464 15.464 0 0112.006 4.5zm5.938 1.875a5.687 5.687 0 11-.001 11.375 5.687 5.687 0 010-11.375zm0 1.5a4.192 4.192 0 00-4.187 4.187 4.192 4.192 0 004.187 4.188 4.192 4.192 0 004.187-4.188 4.192 4.192 0 00-4.187-4.187z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomePreferredWifi.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/355.c54373f4.js b/pr-preview/pr-186/assets/js/355.c54373f4.js new file mode 100644 index 000000000..715c66f08 --- /dev/null +++ b/pr-preview/pr-186/assets/js/355.c54373f4.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 355; +exports.ids = [355]; +exports.modules = { + +/***/ 50355: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_inbox: () => (/* binding */ CommunicationInbox) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationInbox = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.315 15.5l.203.428A2.765 2.765 0 0012 17.5c.991 0 1.912-.547 2.396-1.407l.085-.165.204-.428H21v4a3.004 3.004 0 01-2.824 2.995L18 22.5H6a3.004 3.004 0 01-2.995-2.824L3 19.5v-4h6.315zM12 1a.75.75 0 01.743.648l.007.102V7.5h3.832L12 14.5l-4.582-7h3.832V1.75A.75.75 0 0112 1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.315 15.5l.204.428A2.762 2.762 0 0012 17.5c.992 0 1.912-.547 2.396-1.407l.085-.165.205-.428H21v4a3.004 3.004 0 01-2.824 2.995L18 22.5H6a3.004 3.004 0 01-2.995-2.824L3 19.5v-4h6.315zM8.399 17H4.5v2.5c0 .778.596 1.42 1.356 1.493L6 21h12c.778 0 1.42-.596 1.493-1.356l.007-.144V17h-3.898A4.272 4.272 0 0112 19a4.27 4.27 0 01-3.601-2zM12 1a.75.75 0 01.743.648l.007.102V7.5h3.832L12 14.5l-4.582-7h3.832V1.75A.75.75 0 0112 1z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationInbox.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3552.08924d4c.js b/pr-preview/pr-186/assets/js/3552.08924d4c.js new file mode 100644 index 000000000..d7a55558f --- /dev/null +++ b/pr-preview/pr-186/assets/js/3552.08924d4c.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3552; +exports.ids = [3552]; +exports.modules = { + +/***/ 53552: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_network_secure: () => (/* binding */ HomeNetworkSecure) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomeNetworkSecure = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .5a4.505 4.505 0 014.495 4.288L16.5 5v1.5H18v6a3 3 0 01-2.824 2.995L15 15.5h-2.25v2H22v3.175A1.745 1.745 0 0121.25 24a1.75 1.75 0 01-1.75-1.75c0-.643.35-1.2.867-1.504l.133-.071V19h-7.75v1.675A1.745 1.745 0 0112 24a1.75 1.75 0 01-1.75-1.75c0-.643.35-1.2.867-1.504l.133-.071V19H3.5v1.675A1.745 1.745 0 012.75 24 1.75 1.75 0 011 22.25c0-.643.35-1.2.867-1.504L2 20.675V17.5h9.25v-2H9a3 3 0 01-2.995-2.824L6 12.5v-6h1.5V5C7.5 2.518 9.52.5 12 .5zm0 8.949a1.13 1.13 0 00-1.13 1.13c0 .286.11.546.286.745l.094.094V12.5h1.5v-1.082A1.125 1.125 0 0012 9.449zM12 2a3.003 3.003 0 00-2.995 2.824L9 5v1.5h6V5c0-1.655-1.346-3-3-3z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .5a4.505 4.505 0 014.495 4.288L16.5 5v1.5H18v6a3 3 0 01-2.824 2.995L15 15.5h-2.25v2H22v3.175A1.745 1.745 0 0121.25 24a1.744 1.744 0 01-.883-3.254l.133-.071V19h-7.75v1.675A1.745 1.745 0 0112 24a1.744 1.744 0 01-.883-3.254l.133-.071V19H3.5v1.675A1.745 1.745 0 012.75 24a1.744 1.744 0 01-.883-3.254L2 20.675V17.5h9.25v-2H9a3 3 0 01-2.995-2.824L6 12.5v-6h1.5V5C7.5 2.518 9.519.5 12 .5zM16.5 8h-9v4.5c0 .778.596 1.42 1.355 1.493L9 14h6c.778 0 1.42-.596 1.493-1.356l.007-.144V8zM12 9.449a1.13 1.13 0 011.13 1.129c0 .287-.109.547-.286.746l-.093.094V12.5h-1.5v-1.082l-.094-.094a1.116 1.116 0 01-.286-.746A1.13 1.13 0 0112 9.449zM12 2a3.004 3.004 0 00-2.995 2.824L9 5v1.5h6V5c0-1.654-1.346-3-3-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomeNetworkSecure.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3558.9b1289f4.js b/pr-preview/pr-186/assets/js/3558.9b1289f4.js new file mode 100644 index 000000000..f53a778b3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3558.9b1289f4.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3558; +exports.ids = [3558]; +exports.modules = { + +/***/ 63558: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_color_selection: () => (/* binding */ ContentColorSelection) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentColorSelection = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20.5 19c0 .827-.673 1.5-1.5 1.5h-8.394l11.564-6.677-3.31-5.733-.866 1.5 2.128 3.684-8.981 5.185 7.004-12.131L12.5 3.069v1.732l3.596 2.076L11 15.703V2H2v17c0 1.654 1.345 3 3 3h14c1.654 0 3-1.346 3-3v-3.347l-1.5.867V19zm-12.94-.44a1.5 1.5 0 11-2.121-2.12 1.5 1.5 0 012.121 2.12z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20.5 19c0 .827-.673 1.5-1.5 1.5h-8.394l11.564-6.677-3.31-5.733-.866 1.5 2.128 3.684-8.981 5.185 7.004-12.131L12.5 3.069v1.732l3.596 2.076L11 15.703V2H2v17c0 1.654 1.345 3 3 3h14c1.654 0 3-1.346 3-3v-3.347l-1.5.867V19zm-12.94-.44a1.5 1.5 0 11-2.121-2.12 1.5 1.5 0 012.121 2.12z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentColorSelection.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3562.020c19ef.js b/pr-preview/pr-186/assets/js/3562.020c19ef.js new file mode 100644 index 000000000..b8fa4a32d --- /dev/null +++ b/pr-preview/pr-186/assets/js/3562.020c19ef.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3562; +exports.ids = [3562]; +exports.modules = { + +/***/ 43562: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_filter_2: () => (/* binding */ ActionFilter2) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionFilter2 = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22 2H2v3.568c0 1.233.507 2.413 1.4 3.263L9 14.15v9.35l6-3v-6.35l5.6-5.319c.893-.85 1.4-2.03 1.4-3.263V2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22 2H2v3.568c0 1.233.507 2.413 1.4 3.263L9 14.15v9.35l6-3v-6.35l5.6-5.319c.893-.85 1.4-2.03 1.4-3.263V2zm-1.5 1.5v2.068c0 .819-.34 1.612-.934 2.175l-5.598 5.32-.468.443v6.067l-3 1.5v-7.567l-.467-.443-5.599-5.32A3.009 3.009 0 013.5 5.568V3.5h17z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionFilter2.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3571.986d0066.js b/pr-preview/pr-186/assets/js/3571.986d0066.js new file mode 100644 index 000000000..c29b28d6c --- /dev/null +++ b/pr-preview/pr-186/assets/js/3571.986d0066.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3571; +exports.ids = [3571]; +exports.modules = { + +/***/ 23571: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_cloudy_thunder_rain: () => (/* binding */ WeatherCloudyThunderRain) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherCloudyThunderRain = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.999 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.954-.149-1.337-1.29-.713-1.985l.087-.088 2.238-2.05zM9.21 15.2l-2.562 3.6h2.487L4.09 22.878c-.128.103-.296-.029-.254-.166l.023-.046L5.663 20H3.751l2.662-4.8H9.21zm4.066-1.385a.12.12 0 01.197.062l.002.044-.522 3.334a1.301 1.301 0 01-1.487 1.085c-1.034-.162-1.448-1.403-.769-2.154l.091-.091 2.488-2.28zM10.507 5.95a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753c0 2.195-1.668 4.005-3.795 4.215l.032-.137.52-3.333a1.421 1.421 0 00-2.24-1.365l-.117.096L11.26 13.9H5.647l-1.984 3.579A3.863 3.863 0 01.8 13.746c0-1.4.755-2.684 1.952-3.366.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.255zm9.24 4.596a.6.6 0 01.765-.069l.083.07.85.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zM16.601 4.4c1.654 0 3 1.345 3 3 0 1.132-.63 2.118-1.558 2.63a5.43 5.43 0 00-1.344-1.24 6.768 6.768 0 00-2.628-2.996 2.997 2.997 0 012.53-1.394zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.098-1.192l.098-.008h1.2zM11.757 2.556a.6.6 0 01.765-.069l.084.07.849.848a.6.6 0 01-.775.912l-.074-.064-.849-.848a.6.6 0 010-.849zm8.84 0a.6.6 0 01.917.766l-.07.083-.848.848a.596.596 0 01-.849 0 .6.6 0 01-.07-.765l.07-.083.85-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.193.097L16 2.35v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.998 19.171a.138.138 0 01.23.077v.046l-.47 3a1.201 1.201 0 01-1.372 1c-.953-.149-1.336-1.29-.713-1.985l.087-.087 2.238-2.05zM9.21 15.2l-2.562 3.6h2.487l-5.047 4.078c-.127.103-.295-.029-.253-.166l.022-.046L5.663 20H3.75l2.661-4.8H9.21zm4.065-1.385a.12.12 0 01.198.062l.001.045-.522 3.333a1.301 1.301 0 01-1.354 1.099l-.132-.014-.126-.026c-.942-.238-1.295-1.408-.643-2.128l.09-.091 2.488-2.28zM10.5 5.981a5.577 5.577 0 015.242 3.639A4.246 4.246 0 0118 13.364a4.238 4.238 0 01-3.897 4.218l.035-.141.171-1.093a3.04 3.04 0 002.491-2.984 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.5 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166A2.677 2.677 0 002 13.727c0 1.319.96 2.417 2.218 2.633l.166.024-.614 1.106A3.877 3.877 0 01.8 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.5 5.981zm9.246 4.565a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.849-.849a.6.6 0 010-.849zM16.6 4.4c1.654 0 3 1.346 3 3 0 1.132-.63 2.118-1.558 2.63a5.44 5.44 0 00-1.344-1.24 6.765 6.765 0 00-2.628-2.996A2.998 2.998 0 0116.6 4.4zm6.25 2.4a.6.6 0 01.097 1.192L22.85 8h-1.2a.6.6 0 01-.097-1.192l.097-.008h1.2zm-2.254-4.244a.6.6 0 01.917.766l-.069.083-.849.849a.598.598 0 01-.848 0 .6.6 0 01-.07-.766l.07-.083.849-.849zm-8.84 0a.6.6 0 01.766-.069l.083.07.849.848a.6.6 0 01-.774.912l-.075-.063-.848-.849a.6.6 0 010-.849zM16.6.55a.6.6 0 01.592.503l.008.097v1.2a.6.6 0 01-1.192.097L16 2.35v-1.2a.6.6 0 01.6-.6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherCloudyThunderRain.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3588.1ff033be.js b/pr-preview/pr-186/assets/js/3588.1ff033be.js new file mode 100644 index 000000000..2c8715d79 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3588.1ff033be.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3588; +exports.ids = [3588]; +exports.modules = { + +/***/ 73588: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_service_one_time_password: () => (/* binding */ ServiceOneTimePassword) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ServiceOneTimePassword = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.248 9.5a6.25 6.25 0 110 12.498 6.25 6.25 0 010-12.499zm0 1.5a4.755 4.755 0 00-4.75 4.749c0 2.619 2.131 4.75 4.75 4.75s4.75-2.131 4.75-4.75-2.131-4.75-4.75-4.75zm-.052.5a.75.75 0 01.742.637l.008.101.04 2.763 2.01-.002a.75.75 0 01.105 1.493l-.102.007-3.49.004-.063-4.243a.75.75 0 01.637-.752l.113-.009zM22.498 4v5.272A7.71 7.71 0 0018.248 8a7.74 7.74 0 00-6.912 4.26l-.116.24H4a3.003 3.003 0 01-2.995-2.825L1 9.5V4h21.498zm-10.25 3a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zM8.75 7a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm-3.5 0a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.235 9.176a5.882 5.882 0 110 11.765 5.882 5.882 0 010-11.765zm-.049 1.883h-.01a.706.706 0 00-.69.62l-.006.096.06 3.993 3.284-.003a.706.706 0 00.095-1.406l-.096-.006-1.893.002-.038-2.6a.706.706 0 00-.706-.696zM21.236 4v4.959a7.27 7.27 0 00-1.412-.722V5.412H2.412v3.764c0 .779.633 1.412 1.412 1.412h7.648a7.294 7.294 0 00-.86 1.412H3.824A2.826 2.826 0 011 9.176V4h20.235zM5 6.824a1.176 1.176 0 110 2.352 1.176 1.176 0 010-2.352zm3.294 0a1.176 1.176 0 110 2.352 1.176 1.176 0 010-2.352zm3.294 0a1.176 1.176 0 110 2.352 1.176 1.176 0 010-2.352z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ServiceOneTimePassword.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/35915.d34e9b31.js b/pr-preview/pr-186/assets/js/35915.d34e9b31.js new file mode 100644 index 000000000..ba802ab6f --- /dev/null +++ b/pr-preview/pr-186/assets/js/35915.d34e9b31.js @@ -0,0 +1,2 @@ +/*! For license information please see 35915.d34e9b31.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[35915],{88114:(e,t,s)=>{s.d(t,{c:()=>n});var a,r,l,n=(a=function(e){!function(){var t={}.hasOwnProperty;function s(){for(var e=[],a=0;a{s.r(t),s.d(t,{scale_tab_nav:()=>n});var a=s(90936),r=s(88114),l=s(94200);const n=class{constructor(e){(0,a.r)(this,e),this.small=!1,this.size="small"}handleSelect(e){const t=e.target;this.getAllEnabledTabs().includes(t)&&!t.disabled&&this.selectTab(t)}handleKeydown(e){let t;if("tab"===e.target.getAttribute("role")&&!e.altKey){switch(e.key){case"ArrowLeft":t=this.getPreviousTab();break;case"ArrowRight":t=this.getNextTab();break;case"Home":t=this.getFirstTab();break;case"End":t=this.getLastTab();break;default:return}e.preventDefault(),this.selectTab(t)}}connectedCallback(){this.el.hasAttribute("role")||this.el.setAttribute("role","tablist")}componentDidRender(){Promise.all([customElements.whenDefined("scale-tab-header"),customElements.whenDefined("scale-tab-panel")]).then((()=>{this.linkPanels(),this.propagateSizeToTabs()})),!1!==this.small&&(0,l.s)({tag:"deprecated",message:'Property "small" is deprecated. Please use css overwrite!',type:"warn",source:this.el})}getAllTabs(){return Array.from(this.el.querySelectorAll("scale-tab-header"))}getAllEnabledTabs(){return Array.from(this.el.querySelectorAll('scale-tab-header:not([disabled]), scale-tab-header[disabled="false"]'))}getAllPanels(){return Array.from(this.el.querySelectorAll("scale-tab-panel"))}getPreviousTab(){const e=this.getAllEnabledTabs(),t=e.findIndex((e=>e.selected))-1;return e[(t+e.length)%e.length]}getNextTab(){const e=this.getAllEnabledTabs(),t=e.findIndex((e=>e.selected))+1;return e[t%e.length]}getFirstTab(){return this.getAllEnabledTabs()[0]}getLastTab(){const e=this.getAllEnabledTabs();return e[e.length-1]}linkPanels(){const e=this.getAllTabs(),t=e.find((e=>e.selected))||e.filter((e=>!e.disabled))[0];e.forEach((e=>{const t=e.nextElementSibling;e.setAttribute("aria-controls",t.id),t.setAttribute("aria-labelledby",e.id)})),this.selectTab(t)}reset(){const e=this.getAllEnabledTabs(),t=this.getAllPanels();e.forEach((e=>e.selected=!1)),t.forEach((e=>e.hidden=!0))}findPanelForTab(e){const t=e.getAttribute("aria-controls");return this.el.querySelector(`#${t}`)}selectTab(e){const t=this.findPanelForTab(e);this.reset(),t.hidden=!1,e.selected=!0}propagateSizeToTabs(){const e="large"===this.size?"setAttribute":"removeAttribute";[...this.getAllTabs(),...this.getAllPanels()].forEach((t=>t[e]("size","large")))}render(){return(0,a.h)(a.a,{class:"scale-tab-nav"},this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("div",{part:this.getBasePartMap(),class:this.getCssClassMap()},(0,a.h)("slot",{name:"tab"}),(0,a.h)("slot",{name:"panel"})))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(e){const t="tab-nav",s="basePart"===e?"":`${t}--`;return(0,r.c)(t,`${s}`)}get el(){return(0,a.g)(this)}};n.style=":host{--tab-height:3rem;--tab-spacing-horizontal:var(--telekom-spacing-composition-space-05);--tab-spacing-vertical:var(--telekom-spacing-composition-space-06);--tab-radius:var(--telekom-radius-small);--tab-border-size:var(--telekom-line-weight-standard);--tab-border-size-selected:var(--telekom-line-weight-highlight);--tab-border-size-selected:3px;--tab-border-color:var(--telekom-color-ui-subtle);--tab-height-large:3.25rem;--tab-spacing-horizontal-large:var(--telekom-spacing-composition-space-06);--tab-spacing-vertical-large:0.875rem}"},94200:(e,t,s)=>{s.d(t,{s:()=>l});const a={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},r={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function l({tag:e="WIP",extraMessage:t=null,message:s=null,source:l=null,type:n="info"}){(0,console[n])(`%c scale \u2013 ${a[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${s||r[e]} ${t?"\n"+t:""}\n `,null!==l?"\nsource:":"","object"==typeof l?l:`${l}`,null!==l?"\n\n":"")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/35915.d34e9b31.js.LICENSE.txt b/pr-preview/pr-186/assets/js/35915.d34e9b31.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/35915.d34e9b31.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/3604.883843c2.js b/pr-preview/pr-186/assets/js/3604.883843c2.js new file mode 100644 index 000000000..e14a9e434 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3604.883843c2.js @@ -0,0 +1,426 @@ +"use strict"; +exports.id = 3604; +exports.ids = [3604]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 73604: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_toggle_group: () => (/* binding */ ToggleGroup) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); + + + + + +const toggleGroupCss = ":host{--border-color:var(--telekom-color-ui-border-standard);--border-color-disabled:var(--telekom-color-ui-border-disabled);--border:var(--telekom-spacing-composition-space-01) solid\n var(--border-color);--border-disabled:var(--telekom-spacing-composition-space-01) solid\n var(--border-color-disabled);--radius:var(--telekom-radius-standard)}.toggle-group--inline{display:inline-flex}.toggle-group--block{display:flex}.toggle-group--block ::slotted(*){flex-grow:1}"; + +const ToggleGroup = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + /** toggle button position within group */ + this.position = 0; + /** number of slotted toggle-buttons */ + this.slottedButtons = 0; + /** state */ + this.status = []; + /** (optional) The size of the button */ + this.size = 'regular'; + /** (optional) Button Group background */ + this.background = 'white'; + /** (optional) 100% width */ + this.fullWidth = false; + /** (optional) If `true`, the button is disabled */ + this.disabled = false; + /** (optional) If `true`, the group has a border */ + this.hideBorder = false; + /** (optional) more than one button selected possible */ + this.singleSelect = false; + /** (optional) aria-label attribute needed for icon-only buttons */ + this.ariaLabelTranslation = `toggle button group with $slottedButtons buttons`; + /** @deprecated - variant should replace colorScheme */ + this.colorScheme = 'color'; + /** (optional) background variant of a selected toggle-button */ + this.variant = 'color'; + } + scaleClickHandler(ev) { + let tempState; + if (this.singleSelect) { + if (!ev.detail.selected) { + tempState = this.status.map((obj) => ev.detail.id === obj.id ? ev.detail : Object.assign({}, obj)); + /* clicked button has now selected state */ + } + else { + tempState = this.status.map((obj) => ev.detail.id === obj.id ? ev.detail : Object.assign(Object.assign({}, obj), { selected: false })); + } + } + else { + tempState = this.status.map((obj) => ev.detail.id === obj.id ? ev.detail : Object.assign({}, obj)); + } + this.setNewState(tempState); + } + handlePropsChange() { + this.propagatePropsToChildren(); + } + componentDidLoad() { + const tempState = []; + const toggleButtons = this.getAllToggleButtons(); + this.slottedButtons = toggleButtons.length; + toggleButtons.forEach((toggleButton) => { + this.position++; + tempState.push({ + id: toggleButton.getAttribute('toggle-button-id'), + selected: toggleButton.hasAttribute('selected'), + }); + toggleButton.setAttribute('position', this.position.toString()); + toggleButton.setAttribute('aria-description-translation', '$position $selected'); + }); + this.propagatePropsToChildren(); + this.position = 0; + this.status = tempState; + } + getAllToggleButtons() { + return Array.from(this.hostElement.querySelectorAll('scale-toggle-button')); + } + /** + * Keep props, needed in children buttons, in sync + */ + propagatePropsToChildren() { + this.getAllToggleButtons().forEach((el) => { + el.setAttribute('size', this.size); + el.setAttribute('background', this.background); + el.setAttribute('disabled', this.disabled && 'disabled'); + /** DEPRECATED */ + // if attribute variant is set it overrides color-scheme + el.setAttribute('color-scheme', this.variant !== 'color' ? this.variant : this.colorScheme); + // if attribute color-scheme is set it overrides variant + el.setAttribute('variant', this.colorScheme !== 'color' ? this.colorScheme : this.variant); + el.setAttribute('hide-border', this.hideBorder ? 'true' : 'false'); + }); + } + getAriaLabelTranslation() { + const filledText = this.ariaLabelTranslation.replace(/\$slottedButtons/g, `${this.slottedButtons}`); + return filledText; + } + componentDidRender() { + if (this.fullWidth) { + this.setButtonWidth(); + } + this.setChildrenCorners(); + if (this.colorScheme !== 'color') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "colorScheme" is deprecated. Please use the "variant" property!', + type: 'warn', + source: this.hostElement, + }); + } + } + setNewState(tempState) { + const toggleButtons = Array.from(this.hostElement.querySelectorAll('scale-toggle-button')); + toggleButtons.forEach((button, i) => { + button.setAttribute('selected', tempState[i].selected ? 'true' : 'false'); + }); + this.status = tempState; + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleChange', this.status); + } + setButtonWidth() { + Array.from(this.hostElement.children).forEach((child) => { + const button = child.shadowRoot.querySelector('button'); + button.style.width = '100%'; + }); + } + setChildrenCorners() { + const children = Array.from(this.hostElement.children); + if (children.length === 1) { + // set four border radius when there is only one child + children[0].setAttribute('radius', 'all'); + } + else { + for (let i = 0; i < children.length; i++) { + if (i === 0) { + children[i].setAttribute('radius', 'left'); + } + if (i > 0 && i < children.length - 1) { + children[i].setAttribute('radius', 'neither'); + } + if (i === children.length - 1) { + children[i].setAttribute('radius', 'right'); + } + } + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), part: this.getBasePartMap(), "aria-label": this.getAriaLabelTranslation(), role: "group" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const prefix = mode === 'basePart' ? '' : 'toggle-group--'; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('toggle-group', this.fullWidth && `${prefix}block`, !this.fullWidth && `${prefix}inline`, this.disabled && `${prefix}disabled`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "background": ["handlePropsChange"], + "disabled": ["handlePropsChange"], + "hideBorder": ["handlePropsChange"], + "size": ["handlePropsChange"], + "variant": ["handlePropsChange"] + }; } +}; +ToggleGroup.style = toggleGroupCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3606.6d2da28b.js b/pr-preview/pr-186/assets/js/3606.6d2da28b.js new file mode 100644 index 000000000..5b9ef70f2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3606.6d2da28b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3606; +exports.ids = [3606]; +exports.modules = { + +/***/ 13606: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_fast_forward_nb: () => (/* binding */ ActionFastForwardNb) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionFastForwardNb = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.475 11.3L2 5v14l9.475-6.3V19L22 12 11.475 5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.475 11.3L2 5v14l9.475-6.3V19L22 12 11.475 5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionFastForwardNb.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3612.2f855a19.js b/pr-preview/pr-186/assets/js/3612.2f855a19.js new file mode 100644 index 000000000..1f87c6e11 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3612.2f855a19.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3612; +exports.ids = [3612]; +exports.modules = { + +/***/ 93612: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_voucher: () => (/* binding */ ContentVoucher) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentVoucher = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M4.5 3v2H6V3h3v2h1.5V3h3v2H15V3h3v2h1.5V3H23v3.5h-2V8h2v3h-2v1.5h2v3h-2V17h2v.5a3 3 0 01-2.824 2.995L20 20.5h-.5v-2H18v2h-3v-2h-1.5v2h-3v-2H9v2H6v-2H4.5v2H4a3 3 0 01-2.995-2.824L1 17.5V17h2v-1.5H1v-3h2V11H1V8h2V6.5H1V3h3.5zm10.295 8.945a2.25 2.25 0 100 4.5 2.25 2.25 0 000-4.5zm.77-4.635H13.93l-5.635 9h1.64l5.63-9zm-.755 5.905a1 1 0 010 1.945.975.975 0 01-.116-1.93l.116-.015zM9.085 7.15a2.25 2.25 0 00-.03 4.5 2.235 2.235 0 002.27-2.245 2.25 2.25 0 00-2.24-2.255zm-.03 1.28a.92.92 0 01.919.849l.001.126a.915.915 0 11-1.826.113l.001-.113a.92.92 0 01.905-.975z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M2.5 17v.5c0 .8.576 1.423 1.352 1.493L4 19h.5v1.5H4a3.01 3.01 0 01-2.995-2.824L1 17.5V17h1.5zM18 19v1.5h-3V19h3zm5-2v.5a3.01 3.01 0 01-2.824 2.995L20 20.5h-.5V19h.5c.8 0 1.423-.576 1.493-1.352l.007-.148V17H23zm-9.5 2v1.5h-3V19h3zM9 19v1.5H6V19h3zm5.95-7.1c1.3 0 2.35 1 2.35 2.3 0 1.3-1.05 2.35-2.35 2.35S12.6 15.5 12.6 14.2s1.05-2.3 2.35-2.3zM15.8 7l-5.9 9.5H8.15L14.1 7h1.7zM2.5 12.5v3H1v-3h1.5zm20.5 0v3h-1.5v-3H23zm-8.05.7c-.55 0-.95.45-.95 1s.4 1 .95 1c.55 0 .95-.4.95-1 0-.55-.4-1-.95-1zm-5.9-6.25c1.3 0 2.35 1.05 2.35 2.35s-1.05 2.3-2.35 2.3-2.35-1-2.35-2.3c0-1.3 1.05-2.35 2.35-2.35zM2.5 8v3H1V8h1.5zM23 8v3h-1.5V8H23zM9 8.25c-.5 0-.9.45-.95 1 0 .55.4 1 .95 1 .55 0 .95-.45.95-1s-.4-1-.95-1zM23 3v3.5h-1.5v-2h-2V3H23zM4.5 3v1.5h-2v2H1V3h3.5zM18 3v1.5h-3V3h3zM9 3v1.5H6V3h3zm4.5 0v1.5h-3V3h3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentVoucher.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36225.6bcd73a7.js b/pr-preview/pr-186/assets/js/36225.6bcd73a7.js new file mode 100644 index 000000000..50bbd29a2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/36225.6bcd73a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36225],{36225:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_achievement:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M19 3V1.5H5V3H1.5v5.5a5 5 0 004.145 4.92 7 7 0 004.855 3.915A2.75 2.75 0 017.75 20H7v2.5h10V20h-.75a2.75 2.75 0 01-2.75-2.665 7 7 0 004.85-3.915A5 5 0 0022.5 8.5V3H19zM3 8.5v-4h2v6c.003.406.04.81.11 1.21A3.5 3.5 0 013 8.5zm11.08 3.405L12 10.615l-2.08 1.29.58-2.38-1.87-1.58 2.44-.18L12 5.5l.925 2.265 2.44.18-1.865 1.58.58 2.38zM21 8.5a3.5 3.5 0 01-2.11 3.21c.07-.4.107-.804.11-1.21v-6h2v4z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M19 1.5V3h3.5v5.5c0 2.45-1.8 4.5-4.15 4.9-.9 1.95-2.7 3.45-4.85 3.9a2.756 2.756 0 002.578 2.645l.172.005H17v2.5H7v-2.5h.75c1.5 0 2.7-1.15 2.75-2.65-2.15-.45-3.95-1.95-4.85-3.9-2.277-.388-4.037-2.323-4.145-4.672L1.5 8.5V3H5V1.5h14zM17.5 3h-11v7.5c0 3.05 2.45 5.5 5.5 5.5a5.483 5.483 0 005.496-5.278l.004-.222V3zM12 5.5l.9 2.25 2.45.2-1.85 1.6.6 2.35-2.1-1.3-2.1 1.3.6-2.35-1.85-1.6 2.45-.2.9-2.25zm-7-1v6l.009.3c.016.3.053.6.091.9C3.85 11.15 3 9.95 3 8.5v-4h2zm16 0v4l-.006.216c-.08 1.352-.907 2.462-2.094 2.984.05-.4.1-.8.1-1.2v-6h2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36232.d44d46b9.js b/pr-preview/pr-186/assets/js/36232.d44d46b9.js new file mode 100644 index 000000000..2d96e6b8a --- /dev/null +++ b/pr-preview/pr-186/assets/js/36232.d44d46b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36232],{36232:(e,t,n)=>{n.r(t),n.d(t,{scale_grid_item:()=>s});var a=n(90936),r=n(98748);const s=class{constructor(e){(0,a.r)(this,e)}componentWillLoad(){const e=[(0,r.c)("size",this.size),(0,r.c)("offset",this.offset)].filter((e=>e)).map((e=>(0,r.a)(e)));this.hostElement.setAttribute("style",e.join(""))}render(){return(0,a.h)(a.a,null,(0,a.h)("slot",null))}get hostElement(){return(0,a.g)(this)}}},98748:(e,t,n)=>{function a(e){const t=e.breakpointValues;if(!function(e){let t=!0;for(const n of e)if(n.value){t=!1;break}return t}(t)){const n=function(e){const t=[...e];for(let n=1;nObject.assign(Object.assign({},e),{[t.breakpointName]:t.value})),{})}(n);return Object.entries(a).map((([t,n])=>`--${e.propName}-${t}:${n}`)).join(";")+";"}}function r(e){return[{breakpointName:"sm",value:e[0]},{breakpointName:"md",value:e[1]},{breakpointName:"lg",value:e[2]},{breakpointName:"xl",value:e[3]},{breakpointName:"xxl",value:e[4]}]}function s(e,t){if(e&&t)return{propName:e,breakpointValues:r(t.split(","))}}n.d(t,{a:()=>a,c:()=>s})}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36428.d87cfd8b.js b/pr-preview/pr-186/assets/js/36428.d87cfd8b.js new file mode 100644 index 000000000..95ca4c41f --- /dev/null +++ b/pr-preview/pr-186/assets/js/36428.d87cfd8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36428],{36428:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_tiles_add:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M10.5 13.5V22H4a2 2 0 01-1.995-1.85L2 20v-6.5h8.5zm7.25 0a.75.75 0 01.743.648l.007.102V17h2.75a.75.75 0 01.102 1.493l-.102.007H18.5v2.75a.75.75 0 01-1.493.102L17 21.25V18.5h-2.75a.75.75 0 01-.102-1.493L14.25 17H17v-2.75a.75.75 0 01.75-.75zM10.5 2v8.5H2V4a2 2 0 011.85-1.995L4 2h6.5zM20 2a2 2 0 011.995 1.85L22 4v6.5h-8.5V2H20z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M10.5 13.5V22H4c-1.05 0-1.918-.82-1.994-1.851L2 20v-6.5h8.5zm7.25 0c.367 0 .691.294.743.651l.007.099V17h2.75c.4 0 .75.35.75.75a.772.772 0 01-.651.743l-.099.007H18.5v2.75c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L17 21.25V18.5h-2.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L14.25 17H17v-2.75c0-.4.35-.75.75-.75zM9 15H3.5v5c0 .267.158.454.404.493L4 20.5h5V15zm1.5-13v8.5H2V4c0-1.05.82-1.918 1.851-1.994L4 2h6.5zM20 2c1.05 0 1.918.82 1.994 1.851L22 4v6.5h-8.5V2H20zM9 3.5H4c-.267 0-.454.158-.493.404L3.5 4v5H9V3.5zm11 0h-5V9h5.5V4c0-.267-.158-.454-.404-.493L20 3.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36520.4e448216.js b/pr-preview/pr-186/assets/js/36520.4e448216.js new file mode 100644 index 000000000..e6da631ab --- /dev/null +++ b/pr-preview/pr-186/assets/js/36520.4e448216.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36520],{36520:(i,t,e)=>{e.r(t),e.d(t,{scale_app_shell:()=>o});var a=e(90936);const o=class{constructor(i){(0,a.r)(this,i),this.portalName="",this.claimLang="de",this.mainNavigation=[],this.iconNavigation=[],this.userNavigation=[],this.sectorNavigation=[],this.addonNavigation=[],this.activeRouteId="",this.activeSectorId="",this.sticky=!1,this.scrolled=!1}componentWillLoad(){this.hasSlotHeader=!!this.hostElement.querySelector('[slot="header"]')}render(){return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("div",{part:"base",class:"shell"},this.hasSlotHeader?(0,a.h)("slot",{name:"header"}):(0,a.h)("scale-app-header",{logoClick:this.logoClick,logoAriaDescribedBy:this.logoAriaDescribedBy,logoHref:this.logoHref,logoTitle:this.logoTitle,logoHideTitle:this.logoHideTitle,portalName:this.portalName,mainNavigation:this.mainNavigation,iconNavigation:this.iconNavigation,userNavigation:this.userNavigation,sectorNavigation:this.sectorNavigation,addonNavigation:this.addonNavigation,activeRouteId:this.activeRouteId,activeSectorId:this.activeSectorId,claimLang:this.claimLang,sticky:this.sticky,userMenuAriaLabel:this.userMenuAriaLabel}),(0,a.h)("main",{class:"content"},(0,a.h)("slot",null)),(0,a.h)("slot",{name:"footer"})))}get hostElement(){return(0,a.g)(this)}};o.style=":host{--background:var(--telekom-color-background-canvas, #fff);--spacing-x:var(--telekom-spacing-composition-space-08);--min-height:100vh}.sr-only{position:absolute;left:-10000px;overflow:hidden}.shell{display:flex;min-height:var(--min-height);flex-direction:column}.shell .content{box-sizing:border-box;align-self:center;width:100%;background:var(--background);padding-left:var(--spacing-x);padding-right:var(--spacing-x);flex:1}@media (min-width: 1552px){.shell .content{max-width:var(--header-max-width)}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36544.75b8f9b7.js b/pr-preview/pr-186/assets/js/36544.75b8f9b7.js new file mode 100644 index 000000000..ce751574b --- /dev/null +++ b/pr-preview/pr-186/assets/js/36544.75b8f9b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36544],{36544:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_user_file_audio_file:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21 17.5L15.5 23v-4a1.5 1.5 0 011.356-1.493L17 17.5h4zM21 1v15.5h-4a2.5 2.5 0 00-2.495 2.336L14.5 19v4H6a3 3 0 01-2.995-2.824L3 20V1h18zm-9.5 4.225v7a3 3 0 00-.91-.205c-1.345-.09-2.45.73-2.465 1.83-.015 1.1 1.065 2.04 2.41 2.15l.19.008c.86.01 2.173-.373 2.27-2.143l.005-.21V8.79l2.375.565V7.58L11.5 5.225z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21 1v17l-5 5H6a3.01 3.01 0 01-2.995-2.824L3 20V1h18zm-1.5 1.5h-15V20c0 .8.576 1.423 1.352 1.493L6 21.5h9v-3c0-.8.576-1.423 1.352-1.493L16.5 17h3V2.5zm-8 2.65l4 2.45v1.75l-2.5-.6v4.9c0 1.738-1.096 2.243-1.956 2.337l-.209.016a2.999 2.999 0 01-.1.002L10.55 16c-1.35-.1-2.4-1.05-2.4-2.15 0-1.054 1.01-1.879 2.283-1.858L10.6 12c.24 0 .48.064.72.14l.18.06V5.15z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3664.8e3c8a8d.js b/pr-preview/pr-186/assets/js/3664.8e3c8a8d.js new file mode 100644 index 000000000..94c78d9e9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3664.8e3c8a8d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3664; +exports.ids = [3664]; +exports.modules = { + +/***/ 63664: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_compare: () => (/* binding */ ActionCompare) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionCompare = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 2a.75.75 0 01.743.648l.007.102v18.5a.75.75 0 01-1.493.102l-.007-.102V2.75A.75.75 0 0112 2zM2 7.582L8.75 12 2 16.418V7.582zm20 0v8.836L15.25 12 22 7.582z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 2a.75.75 0 01.743.648l.007.102v18.5a.75.75 0 01-1.493.102l-.007-.102V2.75A.75.75 0 0112 2zM2 7.582L8.75 12 2 16.418V7.582zm20 0v8.836L15.25 12 22 7.582z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionCompare.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/368.1d56c2a9.js b/pr-preview/pr-186/assets/js/368.1d56c2a9.js new file mode 100644 index 000000000..0f578c879 --- /dev/null +++ b/pr-preview/pr-186/assets/js/368.1d56c2a9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 368; +exports.ids = [368]; +exports.modules = { + +/***/ 50368: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_sunny: () => (/* binding */ WeatherSunny) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherSunny = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 19.75a.75.75 0 01.743.648l.007.102v2.75a.75.75 0 01-1.493.102l-.007-.102V20.5a.75.75 0 01.75-.75zm-6.54-2.27a.75.75 0 011.133.977l-.072.084-1.946 1.944a.748.748 0 01-1.06 0 .75.75 0 01-.073-.976l.072-.085L5.46 17.48zm12.02 0a.75.75 0 01.976-.073l.085.073 1.945 1.944a.75.75 0 01-.968 1.14l-.093-.079-1.945-1.944a.75.75 0 010-1.061zM12 6.75a5.25 5.25 0 110 10.5 5.25 5.25 0 010-10.5zm-8.5 4.5a.75.75 0 01.102 1.493l-.102.007H.75a.75.75 0 01-.102-1.493l.102-.007H3.5zm19.75 0a.75.75 0 01.102 1.493l-.102.007H20.5a.75.75 0 01-.102-1.493l.102-.007h2.75zm-3.825-7.736a.75.75 0 011.134.977l-.073.085-1.945 1.944a.748.748 0 01-1.06 0 .75.75 0 01-.073-.977l.072-.084 1.945-1.944zm-15.91 0a.75.75 0 01.976-.072l.084.072L6.521 5.46a.75.75 0 01-.969 1.14l-.092-.08-1.946-1.944a.75.75 0 010-1.061zM12 0a.75.75 0 01.743.648l.007.102V3.5a.75.75 0 01-1.493.102L11.25 3.5V.75A.75.75 0 0112 0z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 19.75a.75.75 0 01.743.648l.007.102v2.75a.75.75 0 01-1.493.102l-.007-.102V20.5a.75.75 0 01.75-.75zm-6.54-2.27a.75.75 0 011.133.977l-.072.084-1.946 1.944a.748.748 0 01-1.06 0 .75.75 0 01-.073-.976l.072-.085L5.46 17.48zm12.02 0a.75.75 0 01.976-.073l.085.073 1.945 1.944a.75.75 0 01-.968 1.14l-.093-.079-1.945-1.944a.75.75 0 010-1.061zM12 6.75a5.25 5.25 0 110 10.5 5.25 5.25 0 010-10.5zm-8.5 4.5a.75.75 0 01.102 1.493l-.102.007H.75a.75.75 0 01-.102-1.493l.102-.007H3.5zm19.75 0a.75.75 0 01.102 1.493l-.102.007H20.5a.75.75 0 01-.102-1.493l.102-.007h2.75zm-3.825-7.736a.75.75 0 011.134.977l-.073.085-1.945 1.944a.748.748 0 01-1.06 0 .75.75 0 01-.073-.977l.072-.084 1.945-1.944zm-15.91 0a.75.75 0 01.976-.072l.084.072L6.521 5.46a.75.75 0 01-.969 1.14l-.092-.08-1.946-1.944a.75.75 0 010-1.061zM12 0a.75.75 0 01.743.648l.007.102V3.5a.75.75 0 01-1.493.102L11.25 3.5V.75A.75.75 0 0112 0z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherSunny.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36904.1025882c.js b/pr-preview/pr-186/assets/js/36904.1025882c.js new file mode 100644 index 000000000..e38eb454c --- /dev/null +++ b/pr-preview/pr-186/assets/js/36904.1025882c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36904],{36904:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_sim_card:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21 1v19a3 3 0 01-3 3H6a3 3 0 01-3-3V7.5L9.5 1H21zm-6.5 8h-5A2.5 2.5 0 007 11.5v5A2.5 2.5 0 009.5 19h5a2.5 2.5 0 002.5-2.5v-5A2.5 2.5 0 0014.5 9zm-1 1.5a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2v-3a2 2 0 012-2h3z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21 1v19a3.01 3.01 0 01-2.824 2.995L18 23H6a3.01 3.01 0 01-2.995-2.824L3 20V7.5L9.5 1H21zm-1.5 1.5h-9.4L4.5 8.1V20c0 .8.576 1.423 1.352 1.493L6 21.5h12c.8 0 1.423-.576 1.493-1.352L19.5 20V2.5zm-5 6.5a2.473 2.473 0 012.495 2.333L17 11.5v5a2.473 2.473 0 01-2.333 2.495L14.5 19h-5a2.473 2.473 0 01-2.495-2.333L7 16.5v-5a2.473 2.473 0 012.333-2.495L9.5 9h5zm0 1.5h-5c-.51 0-.935.388-.993.884L8.5 11.5v5c0 .51.388.935.884.993l.116.007h5c.51 0 .935-.388.993-.884l.007-.116v-5c0-.51-.388-.935-.884-.993L14.5 10.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/36950.685100da.js b/pr-preview/pr-186/assets/js/36950.685100da.js new file mode 100644 index 000000000..d4098d0bc --- /dev/null +++ b/pr-preview/pr-186/assets/js/36950.685100da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[36950],{36950:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_content_status_inactive:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M19.187 17.395L6.605 4.814A8.938 8.938 0 0112.001 3c4.962 0 9 4.038 9 9 0 2.025-.681 3.89-1.814 5.395M3.001 12c0-2.037.688-3.912 1.833-5.422l12.589 12.588A8.938 8.938 0 0112.001 21c-4.963 0-9-4.038-9-9m9-11.5C5.659.5.501 5.659.501 12s5.158 11.5 11.5 11.5c6.341 0 11.5-5.159 11.5-11.5S18.342.5 12.001.5","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M19.22 18.159L5.842 4.78a9.453 9.453 0 016.159-2.28c5.238 0 9.5 4.261 9.5 9.5a9.448 9.448 0 01-2.281 6.159M2.501 12c0-2.35.862-4.499 2.28-6.159L18.159 19.22a9.448 9.448 0 01-6.158 2.281c-5.239 0-9.5-4.262-9.5-9.5m9.5-11c-6.075 0-11 4.925-11 11s4.925 11 11 11c6.074 0 11-4.925 11-11s-4.926-11-11-11","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3720c009.f8741152.js b/pr-preview/pr-186/assets/js/3720c009.f8741152.js new file mode 100644 index 000000000..637cc5ff1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3720c009.f8741152.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[84787],{30876:(t,e,s)=>{s.r(e),s.d(e,{default:()=>p});s(96540);var a=s(34164),n=s(1003),r=s(17559),l=s(21312);const c=()=>(0,l.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var i=s(56133),o=s(51107);const g={tag:"tag_Nnez"};var u=s(74848);function h(t){let{letterEntry:e}=t;return(0,u.jsxs)("article",{children:[(0,u.jsx)(o.A,{as:"h2",id:e.letter,children:e.letter}),(0,u.jsx)("ul",{className:"padding--none",children:e.tags.map((t=>(0,u.jsx)("li",{className:g.tag,children:(0,u.jsx)(i.A,{...t})},t.permalink)))}),(0,u.jsx)("hr",{})]})}function d(t){let{tags:e}=t;const s=function(t){const e={};return Object.values(t).forEach((t=>{const s=function(t){return t[0].toUpperCase()}(t.label);e[s]??=[],e[s].push(t)})),Object.entries(e).sort(((t,e)=>{let[s]=t,[a]=e;return s.localeCompare(a)})).map((t=>{let[e,s]=t;return{letter:e,tags:s.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}(e);return(0,u.jsx)("section",{className:"margin-vert--lg",children:s.map((t=>(0,u.jsx)(h,{letterEntry:t},t.letter)))})}var j=s(41463);function x(t){let{title:e}=t;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(n.be,{title:e}),(0,u.jsx)(j.A,{tag:"doc_tags_list"})]})}function m(t){let{tags:e,title:s}=t;return(0,u.jsx)(n.e3,{className:(0,a.A)(r.G.page.docsTagsListPage),children:(0,u.jsx)("div",{className:"container margin-vert--lg",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,u.jsx)(o.A,{as:"h1",children:s}),(0,u.jsx)(d,{tags:e})]})})})})}function p(t){const e=c();return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(x,{...t,title:e}),(0,u.jsx)(m,{...t,title:e})]})}},56133:(t,e,s)=>{s.d(e,{A:()=>c});s(96540);var a=s(34164),n=s(28774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(74848);function c(t){let{permalink:e,label:s,count:c,description:i}=t;return(0,l.jsxs)(n.A,{href:e,title:i,className:(0,a.A)(r.tag,c?r.tagWithCount:r.tagRegular),children:[s,c&&(0,l.jsx)("span",{children:c})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3743.6d41eb5d.js b/pr-preview/pr-186/assets/js/3743.6d41eb5d.js new file mode 100644 index 000000000..025652bea --- /dev/null +++ b/pr-preview/pr-186/assets/js/3743.6d41eb5d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3743; +exports.ids = [3743]; +exports.modules = { + +/***/ 53743: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_device_router: () => (/* binding */ DeviceDeviceRouter) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceDeviceRouter = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 7h-2.3L13 10.635l-1 .865-1-.845L6.8 7H4.5a3 3 0 00-3 3v10a3 3 0 003 3h15a3 3 0 003-3V10a3 3 0 00-3-3zM13 19h-2v-2h2v2zM12 3a5.5 5.5 0 014.615 2.5l1.145-1a7 7 0 00-11.525 0l1.15 1A5.5 5.5 0 0112 3zm2.3 4.5l1.165-1a4 4 0 00-6.93 0l1.165 1a2.5 2.5 0 014.6 0zm-3.3 1a1 1 0 102 0 1 1 0 00-2 0z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M6.8 7l1.75 1.5H4.5c-.8 0-1.423.576-1.493 1.352L3 10v10c0 .8.576 1.423 1.352 1.493l.148.007h15c.8 0 1.423-.576 1.493-1.352L21 20V10c0-.8-.576-1.423-1.352-1.493L19.5 8.5h-4.05L17.2 7h2.3a3.01 3.01 0 012.995 2.824L22.5 10v10a3.01 3.01 0 01-2.824 2.995L19.5 23h-15a3.01 3.01 0 01-2.995-2.824L1.5 20V10a3.01 3.01 0 012.824-2.995L4.5 7h2.3zM13 17v2h-2v-2h2zm-1-9.5a1 1 0 110 2 1 1 0 010-2zm0-3c1.374 0 2.613.718 3.335 1.814l.115.186-1.15 1C13.9 6.65 13.05 6 12 6c-.984 0-1.793.527-2.22 1.335L9.7 7.5l-1.15-1c.65-1.2 2-2 3.45-2zm0-3a6.985 6.985 0 015.596 2.787l.154.213-1.15 1C15.65 4 13.95 3 12 3a5.357 5.357 0 00-4.472 2.351L7.4 5.55l-1.15-1A6.904 6.904 0 0112 1.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceDeviceRouter.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3744.ebf085b1.js b/pr-preview/pr-186/assets/js/3744.ebf085b1.js new file mode 100644 index 000000000..1bb92973f --- /dev/null +++ b/pr-preview/pr-186/assets/js/3744.ebf085b1.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3744; +exports.ids = [3744]; +exports.modules = { + +/***/ 93744: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_install: () => (/* binding */ ActionInstall) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionInstall = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.745 14l3 4.57a1.5 1.5 0 002.411.12l.089-.12 3-4.57H23.5v5a3 3 0 01-2.824 2.995L20.5 22h-17a3 3 0 01-2.995-2.824L.5 19v-5h7.245zM19 17h-2v2h2v-2zM12 .5c.647 0 1.18.492 1.244 1.122l.006.128V11h3.17L12 17.75 7.58 11h3.17V1.75c0-.69.56-1.25 1.25-1.25z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.755 14l.98 1.5H2V19c0 .776.598 1.42 1.356 1.493l.144.007h17c.776 0 1.42-.598 1.493-1.356L22 19v-3.5h-6.735l.98-1.5H23.5v5a3.003 3.003 0 01-2.824 2.995L20.5 22h-17a3.003 3.003 0 01-2.995-2.824L.5 19v-5h7.255zM19 17v2h-2v-2h2zM12 1c.38 0 .694.281.743.648l.007.102V11h3.67L12 17.75 7.58 11h3.67V1.75c0-.415.335-.75.75-.75z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionInstall.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/37af577b.26cff4ac.js b/pr-preview/pr-186/assets/js/37af577b.26cff4ac.js new file mode 100644 index 000000000..acbdba0ee --- /dev/null +++ b/pr-preview/pr-186/assets/js/37af577b.26cff4ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[78843],{25244:e=>{e.exports=JSON.parse('{"tag":{"label":"ims","permalink":"/docs-next/pr-preview/pr-186/docs/tags/ims","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file","title":"Creating a Linux Image Using VirtualBox and an ISO File","description":"VirtualBox is free, open-source virtualization software. It was first offered by InnoTek GmbH from Germany and re-branded as Oracle VM VirtualBox when InnoTek was acquired by Oracle Corporation.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file"},{"id":"best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks","title":"Migrating Service Data Across Accounts (Data Disks)","description":"Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/37e89aea.a335f97c.js b/pr-preview/pr-186/assets/js/37e89aea.a335f97c.js new file mode 100644 index 000000000..96c57212a --- /dev/null +++ b/pr-preview/pr-186/assets/js/37e89aea.a335f97c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[22702],{18109:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var t=s(74848),i=s(28453);const r={id:"cce-authentik",title:"Deploy Authentik on CCE",tags:["cce","authentik","security","ingress","nginx-ingress"]},l="Deploy Authentik on CCE",a={id:"blueprints/by-use-case/security/authentik/cce-authentik",title:"Deploy Authentik on CCE",description:"This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.",source:"@site/docs/blueprints/by-use-case/security/authentik/1_cce-authentik.md",sourceDirName:"blueprints/by-use-case/security/authentik",slug:"/blueprints/by-use-case/security/authentik/cce-authentik",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentik",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-use-case/security/authentik/1_cce-authentik.md",tags:[{inline:!0,label:"cce",permalink:"/docs-next/pr-preview/pr-186/docs/tags/cce"},{inline:!0,label:"authentik",permalink:"/docs-next/pr-preview/pr-186/docs/tags/authentik"},{inline:!0,label:"security",permalink:"/docs-next/pr-preview/pr-186/docs/tags/security"},{inline:!0,label:"ingress",permalink:"/docs-next/pr-preview/pr-186/docs/tags/ingress"},{inline:!0,label:"nginx-ingress",permalink:"/docs-next/pr-preview/pr-186/docs/tags/nginx-ingress"}],version:"current",sidebarPosition:1,frontMatter:{id:"cce-authentik",title:"Deploy Authentik on CCE",tags:["cce","authentik","security","ingress","nginx-ingress"]},sidebar:"blueprintsSidebar",previous:{title:"Authentik",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik"},next:{title:"Identity Federation with GitHub",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-github"}},c={},o=[{value:"Prerequisites",id:"prerequisites",level:3},{value:"Generating Secure Passwords",id:"generating-secure-passwords",level:3},{value:"Creating the Values File",id:"creating-the-values-file",level:3},{value:"Installing Authentik Using Helm",id:"installing-authentik-using-helm",level:3},{value:"Accessing Authentik",id:"accessing-authentik",level:3}];function u(e){const n={admonition:"admonition",code:"code",h1:"h1",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"deploy-authentik-on-cce",children:"Deploy Authentik on CCE"}),"\n",(0,t.jsx)(n.p,{children:"This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment."}),"\n",(0,t.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsx)(n.p,{children:"Before starting the installation, ensure you have the following:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"A running Kubernetes cluster (CCE)"}),"\n",(0,t.jsx)(n.li,{children:"Helm installed on your local machine"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"generating-secure-passwords",children:"Generating Secure Passwords"}),"\n",(0,t.jsx)(n.p,{children:"Begin by generating secure passwords for the database and cache. Use one of these commands:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"pwgen -s 50 1\n"})}),"\n",(0,t.jsx)(n.p,{children:"or"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"openssl rand 60 | base64 -w 0\n"})}),"\n",(0,t.jsx)(n.h3,{id:"creating-the-values-file",children:"Creating the Values File"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a file named ",(0,t.jsx)(n.strong,{children:"values.yaml"})," in your working directory."]}),"\n",(0,t.jsx)(n.li,{children:"Add the following content to the file:"}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",metastring:'title="values.yaml"',children:'authentik:\n secret_key: "PleaseGenerateASecureKey"\n error_reporting:\n enabled: true\n postgresql:\n password: "ThisIsNotASecurePassword"\n\nserver:\n ingress:\n ingressClassName: nginx\n enabled: true\n hosts:\n - authentik.test-domain.com\n\npostgresql:\n enabled: true\n auth:\n password: "ThisIsNotASecurePassword"\nredis:\n enabled: true\n'})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Replace ",(0,t.jsx)(n.code,{children:"PleaseGenerateASecureKey"})," and ",(0,t.jsx)(n.code,{children:"ThisIsNotASecurePassword"})," with secure passwords you generated earlier."]}),"\n",(0,t.jsxs)(n.li,{children:["Here we are using nginx as ingress controller if you use other ingress controller (like traefik or kong) specify it under path ",(0,t.jsx)(n.code,{children:"server.ingress.ingressClassName"}),". Also replace ",(0,t.jsx)(n.code,{children:"authentik.test-domain.com"})," with the domain name you intend for Authentik."]}),"\n"]})}),"\n",(0,t.jsx)(n.h3,{id:"installing-authentik-using-helm",children:"Installing Authentik Using Helm"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Add the authentik Helm repository:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"helm repo add authentik https://charts.goauthentik.io\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Update your Helm repositories:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"helm repo update\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Install authentik using Helm:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"helm upgrade --install authentik authentik/authentik -f values.yaml\n"})}),"\n",(0,t.jsxs)(n.p,{children:["This command will install authentik or upgrade an existing installation using the values specified in your ",(0,t.jsx)(n.strong,{children:"values.yaml"})," file."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"accessing-authentik",children:"Accessing Authentik"}),"\n",(0,t.jsx)(n.p,{children:"Once the installation is complete, you can access authentik by following these steps:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Open your web browser and navigate to ",(0,t.jsx)(n.code,{children:"https:///if/flow/initial-setup/"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Set a password for the default ",(0,t.jsx)(n.code,{children:"akadmin"})," user."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Setting admin password for first time:\n",(0,t.jsx)(n.img,{alt:"image",src:s(21425).A+"",title:"Setting admin password for first time",width:"1475",height:"884"})]}),"\n",(0,t.jsxs)(n.p,{children:["Authentik dashboard:\n",(0,t.jsx)(n.img,{alt:"image",src:s(44994).A+"",title:"Authentik dashboard",width:"1920",height:"918"})]})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},44994:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/Screenshot-Admin-authentik-e3f638178fb2b12a27a9cc839477c714.png"},21425:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/Screenshot-chpassword-authentik-d55a64f9a68c01abcd61c4688efeca32.png"},28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>a});var t=s(96540);const i={},r=t.createContext(i);function l(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3802.351110c6.js b/pr-preview/pr-186/assets/js/3802.351110c6.js new file mode 100644 index 000000000..57ad77b63 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3802.351110c6.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3802; +exports.ids = [3802]; +exports.modules = { + +/***/ 83802: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_arrow_up: () => (/* binding */ ActionArrowUp) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionArrowUp = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.42 3.5L8 10.25h3.17v9.25a1.25 1.25 0 102.5 0v-9.25h3.17L12.42 3.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.4 4L8 10.75h3.65V20c0 .4.35.75.75.75s.75-.35.75-.75v-9.25h3.65L12.4 4z", id: "a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionArrowUp.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3812.a24b153b.js b/pr-preview/pr-186/assets/js/3812.a24b153b.js new file mode 100644 index 000000000..710ebf371 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3812.a24b153b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3812; +exports.ids = [3812]; +exports.modules = { + +/***/ 33812: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_t_product_seamless_connectivity: () => (/* binding */ TProductSeamlessConnectivity) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const TProductSeamlessConnectivity = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.005 5.102a4.195 4.195 0 00-4.651.922l-.927.926-8.64 8.64-.921.922a2.227 2.227 0 01-3.807-1.574V9.043a2.203 2.203 0 011.378-2.059c.277-.114.574-.173.873-.173.586 0 1.148.237 1.556.658l3.724 3.725 1.44-1.44-3.724-3.725a4.205 4.205 0 00-4.656-.922A4.196 4.196 0 000 9.043v5.914a4.21 4.21 0 002.635 3.945 4.214 4.214 0 004.656-.926l.922-.926 8.64-8.64.921-.922A2.227 2.227 0 0121.6 9.043v5.914a2.227 2.227 0 01-3.806 1.574l-3.725-3.725-1.44 1.44 3.73 3.73a4.214 4.214 0 002.99 1.262 4.32 4.32 0 001.66-.336 4.21 4.21 0 002.636-3.945V9.043a4.195 4.195 0 00-2.64-3.94z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.45 5.1c-1.6-.65-3.3-.3-4.5.9L6 16.95c-.9.9-2.1.9-2.85.55-.8-.3-1.65-1.1-1.65-2.4V8.9c0-1.3.85-2.1 1.65-2.45.9-.4 2.05-.25 2.85.55l3.9 3.9 1.05-1.05L7.05 6c-1.2-1.2-2.95-1.55-4.5-.9C1 5.75 0 7.2 0 8.9v6.15c0 1.7 1 3.15 2.55 3.8 1.55.65 3.3.3 4.5-.9L18 7.05c.9-.9 2.1-.9 2.85-.55.8.35 1.65 1.15 1.65 2.45v6.15c0 1.3-.85 2.1-1.65 2.45-.8.35-1.95.35-2.85-.55l-3.9-3.9-1.05 1.05 3.9 3.9c1.2 1.2 2.95 1.55 4.5.9C23 18.3 24 16.85 24 15.15V8.9c0-1.7-1-3.15-2.55-3.8z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TProductSeamlessConnectivity.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/38122.5ce566d2.js b/pr-preview/pr-186/assets/js/38122.5ce566d2.js new file mode 100644 index 000000000..4d4230434 --- /dev/null +++ b/pr-preview/pr-186/assets/js/38122.5ce566d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[38122],{38122:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_user_file_communities:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M15.7 14.6a3.542 3.542 0 013.462 2.763l.038.187.25 1.45H4.6l.25-1.4a3.45 3.45 0 013.257-2.945l.193-.005h1.35L12 17l2.35-2.4h1.35zm4.65-.05c1.39 0 2.595.964 2.914 2.277L23.3 17l.4 2h-1.55l-.35-1.75c-.093-.653-.666-1.132-1.31-1.193l-.14-.007h-.05a5.02 5.02 0 00-.833-1.27l-.217-.23h1.1zm-15.55 0c-.375.375-.68.785-.946 1.23l-.154.27h-.05c-.653 0-1.22.436-1.414 1.063l-.036.137L1.85 19H.3l.4-2c.24-1.39 1.398-2.366 2.77-2.445l.18-.005H4.8zM12 4.25c2.5 0 4.4 1.9 4.4 4.4 0 2.45-1.8 5.05-4.4 5.05-2.6 0-4.4-2.65-4.4-5.05 0-2.5 1.9-4.4 4.4-4.4zm-5.6 1.1c.2 0 .45 0 .65.05-.25.45-.5.95-.65 1.45-1.35 0-2.3.95-2.3 2.3 0 1.35.95 2.85 2.3 2.85.15 0 .35-.05.5-.1.25.45.5.85.85 1.25-.4.2-.85.3-1.35.3-2.1 0-3.8-1.95-3.8-4.3 0-2.15 1.65-3.8 3.8-3.8zm11.2-.1c2.15 0 3.8 1.65 3.8 3.8 0 2.4-1.7 4.35-3.8 4.35-.45 0-.9-.1-1.35-.3.35-.35.6-.8.85-1.25.15.05.3.1.5.1 1.4 0 2.3-1.45 2.3-2.85 0-1.35-.95-2.3-2.3-2.35-.15-.55-.35-1-.65-1.45.2-.05.4-.05.65-.05z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M15.7 14.6a3.542 3.542 0 013.462 2.763l.038.187.25 1.45H4.6l.25-1.4a3.45 3.45 0 013.257-2.945l.193-.005h1.35L12 17l2.35-2.4h1.35zm4.65-.05c1.39 0 2.595.964 2.914 2.277L23.3 17l.4 2h-1.55l-.35-1.75c-.093-.653-.666-1.132-1.31-1.193l-.14-.007h-.05a5.02 5.02 0 00-.833-1.27l-.217-.23h1.1zm-15.55 0c-.375.375-.68.785-.946 1.23l-.154.27h-.05c-.653 0-1.22.436-1.414 1.063l-.036.137L1.85 19H.3l.4-2c.24-1.39 1.398-2.366 2.77-2.445l.18-.005H4.8zM12 4.25c2.5 0 4.4 1.9 4.4 4.4 0 2.45-1.8 5.05-4.4 5.05-2.6 0-4.4-2.65-4.4-5.05 0-2.5 1.9-4.4 4.4-4.4zm-5.6 1.1c.2 0 .45 0 .65.05-.25.45-.5.95-.65 1.45-1.35 0-2.3.95-2.3 2.3 0 1.35.95 2.85 2.3 2.85.15 0 .35-.05.5-.1.25.45.5.85.85 1.25-.4.2-.85.3-1.35.3-2.1 0-3.8-1.95-3.8-4.3 0-2.15 1.65-3.8 3.8-3.8zm11.2-.1c2.15 0 3.8 1.65 3.8 3.8 0 2.4-1.7 4.35-3.8 4.35-.45 0-.9-.1-1.35-.3.35-.35.6-.8.85-1.25.15.05.3.1.5.1 1.4 0 2.3-1.45 2.3-2.85 0-1.35-.95-2.3-2.3-2.35-.15-.55-.35-1-.65-1.45.2-.05.4-.05.65-.05zm-5.6.5c-1.7 0-2.9 1.15-2.9 2.9 0 1.7 1.15 3.55 2.9 3.55s2.9-1.8 2.9-3.55c0-1.7-1.2-2.9-2.9-2.9z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/38237.3f0fa4c5.js b/pr-preview/pr-186/assets/js/38237.3f0fa4c5.js new file mode 100644 index 000000000..d4abc432b --- /dev/null +++ b/pr-preview/pr-186/assets/js/38237.3f0fa4c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[38237],{38237:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_navigation_external_link:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M13.355 3l2.585 2.585-6.835 6.835a1.75 1.75 0 002.35 2.589l.125-.114 6.835-6.835L21 10.645V18a3 3 0 01-2.824 2.995L18 21H6a3 3 0 01-2.995-2.824L3 18V3h10.355zm9.3-1.655L21 9.24l-2.585-2.595-7.54 7.54a.74.74 0 01-.53.22.726.726 0 01-.53-.22.745.745 0 01-.077-.97l.077-.09 7.54-7.53L14.76 3l7.895-1.655z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12.65 3l1.5 1.5H4.5V18c0 .8.576 1.423 1.352 1.493L6 19.5h12c.8 0 1.423-.576 1.493-1.352L19.5 18V9.85l1.5 1.5V18a3.01 3.01 0 01-2.824 2.995L18 21H6a3.01 3.01 0 01-2.995-2.824L3 18V3h9.65zM22.7 1.35l-1.65 7.9-2.6-2.6-7.55 7.55c-.15.15-.35.2-.55.2-.2 0-.4-.05-.55-.2a.722.722 0 01-.074-.965l.074-.085 7.55-7.55-2.6-2.6 7.95-1.65z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/38295.6ff7fac5.js b/pr-preview/pr-186/assets/js/38295.6ff7fac5.js new file mode 100644 index 000000000..2ef95f2f6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/38295.6ff7fac5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[38295],{38295:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_add_device:()=>a});var s=i(90936);const a=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M8 6a3 3 0 012.995 2.824L11 9v3.22a7.97 7.97 0 00-.335 10.155 3 3 0 01-2.468 1.618L8 24H3a3 3 0 01-2.995-2.824L0 21V9a3 3 0 012.824-2.995L3 6h5zm9 5a6.5 6.5 0 110 13 6.5 6.5 0 010-13zm0 1.5a5 5 0 100 10 5 5 0 000-10zM5.5 19.75a1 1 0 100 2 1 1 0 000-2zm11.5-5.5a.75.75 0 01.743.648l.007.102v1.75h1.75a.75.75 0 01.102 1.493l-.102.007h-1.75V20a.75.75 0 01-1.493.102L16.25 20v-1.75H14.5a.75.75 0 01-.102-1.493l.102-.007h1.75V15a.75.75 0 01.75-.75zM17 1a3 3 0 012.995 2.824L20 4v6.085a8 8 0 00-7.252.638l-.248.162V9a4.5 4.5 0 00-4.288-4.495L8 4.5H3.47V4a3 3 0 012.824-2.995L6.47 1H17zM7 7.5H4V9h3V7.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M8 6a3.01 3.01 0 012.995 2.824L11 9v3.25a7.284 7.284 0 00-1.378 2.187l-.122.313V9c0-.8-.576-1.423-1.352-1.493L8 7.5H7V9H4V7.5H3c-.8 0-1.423.576-1.493 1.352L1.5 9v12c0 .8.576 1.423 1.352 1.493L3 22.5h5c.8 0 1.423-.576 1.493-1.352L9.5 21v-.75c.25.75.65 1.45 1.15 2.1a2.949 2.949 0 01-2.449 1.643L8 24H3a3.01 3.01 0 01-2.995-2.824L0 21V9a3.01 3.01 0 012.824-2.995L3 6h5zm9 5c3.6 0 6.5 2.9 6.5 6.5S20.6 24 17 24s-6.5-2.9-6.5-6.5S13.4 11 17 11zM5.5 19.75a1 1 0 110 2 1 1 0 010-2zm11.5-5.5a.772.772 0 00-.743.651L16.25 15v1.75H14.5c-.4 0-.75.35-.75.75 0 .367.294.691.651.743l.099.007h1.75V20c0 .4.35.75.75.75a.772.772 0 00.743-.651L17.75 20v-1.75h1.75c.4 0 .75-.35.75-.75a.772.772 0 00-.651-.743l-.099-.007h-1.75V15c0-.4-.35-.75-.75-.75zM17 1a3.01 3.01 0 012.995 2.824L20 4v6.1a8.728 8.728 0 00-1.125-.366L18.5 9.65V4c0-.8-.576-1.423-1.352-1.493L17 2.5H6.5c-.8 0-1.423.576-1.493 1.352L5 4v.5H3.5V4a3.01 3.01 0 012.824-2.995L6.5 1H17z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};a.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3837d8b9.c42adfc8.js b/pr-preview/pr-186/assets/js/3837d8b9.c42adfc8.js new file mode 100644 index 000000000..f899ee554 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3837d8b9.c42adfc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[29147],{26018:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>d});var i=s(74848),r=s(28453);const t={id:"migrating-container-images",title:"Migrating Container Images",tags:["swr","image-syncer","harbor","migration"]},o="Migrating Container Images",a={id:"best-practices/containers/software-repository/migrating-container-images",title:"Migrating Container Images",description:"Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.",source:"@site/docs/best-practices/containers/software-repository/migrating-container-images.md",sourceDirName:"best-practices/containers/software-repository",slug:"/best-practices/containers/software-repository/migrating-container-images",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-images",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/containers/software-repository/migrating-container-images.md",tags:[{inline:!0,label:"swr",permalink:"/docs-next/pr-preview/pr-186/docs/tags/swr"},{inline:!0,label:"image-syncer",permalink:"/docs-next/pr-preview/pr-186/docs/tags/image-syncer"},{inline:!0,label:"harbor",permalink:"/docs-next/pr-preview/pr-186/docs/tags/harbor"},{inline:!0,label:"migration",permalink:"/docs-next/pr-preview/pr-186/docs/tags/migration"}],version:"current",frontMatter:{id:"migrating-container-images",title:"Migrating Container Images",tags:["swr","image-syncer","harbor","migration"]},sidebar:"bestPracticesSidebar",previous:{title:"Debugging and Starting the Application",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-application"},next:{title:"Using Nginx for Public Access of DCS Redis Instances",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-nginx-for-public-access-to-single-node-master-standby-or-proxy-cluster-dcs-redis-instances"}},c={},d=[{value:"Migrating Images to SWR using Docker Commands",id:"migrating-images-to-swr-using-docker-commands",level:2},{value:"Migrating Images to SWR using image-syncer",id:"migrating-images-to-swr-using-image-syncer",level:2},{value:"Synchronizing Images Across Clouds from Harbor to SWR",id:"synchronizing-images-across-clouds-from-harbor-to-swr",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"migrating-container-images",children:"Migrating Container Images"}),"\n",(0,i.jsxs)(n.p,{children:["Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. ",(0,i.jsx)(n.strong,{children:"SoftWare Repository for Container (SWR)"})," manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs."]}),"\n",(0,i.jsx)(n.p,{children:"This blueprint describes three different scenarios for migrating image repositories to SWR smoothly. You can select one as required:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Solution"}),(0,i.jsx)(n.th,{children:"Application Scenario"}),(0,i.jsx)(n.th,{children:"Precautions"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{children:["Migrating images to SWR using ",(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"#migrating-images-to-swr-using-docker-commands",children:"Docker commands"})})]}),(0,i.jsx)(n.td,{children:"Small quantity of images"}),(0,i.jsx)(n.td,{children:"- Disk storage leads to the timely deletion of local images and time-cost flushing."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Docker daemon strictly restricts the number of concurrent pull/push operations, so high-concurrency synchronization cannot be performed."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Scripts are complex because HTTP APIs are needed to perform the operations that cannot be implemented through Docker CLI."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{children:["Migrating images to SWR using ",(0,i.jsx)(n.strong,{children:(0,i.jsx)(n.a,{href:"#migrating-images-to-swr-using-image-syncer",children:"image-syncer"})})]}),(0,i.jsx)(n.td,{children:"A large number of images"}),(0,i.jsx)(n.td,{children:"- Many-to-many image repository synchronization is supported."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Docker Registry V2-based image repositories (such as Docker Hub, Quay, and Harbor) can be migrated to SWR."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Memory- and network-dependent synchronization is fast."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Flushing the Blob information of synchronized images avoids repetition."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- The number of concurrent synchronization tasks can be adjusted in the configuration file."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Automatically retrying failed synchronization tasks can resolve most network jitter during image synchronization."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{}),(0,i.jsx)(n.td,{children:"- Docker or other programs are not required."})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsxs)(n.td,{children:["Synchronizing images across clouds ",(0,i.jsxs)(n.a,{href:"#synchronizing-images-across-clouds-from-harbor-to-swr",children:["from ",(0,i.jsx)(n.strong,{children:"Harbor"})," to SWR"]})]}),(0,i.jsx)(n.td,{children:"A customer deploys services in multiple clouds and uses Harbor as their image repository."}),(0,i.jsx)(n.td,{children:"Only Harbor v1.10.5 and later versions are supported."})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"migrating-images-to-swr-using-docker-commands",children:"Migrating Images to SWR using Docker Commands"}),"\n",(0,i.jsxs)(n.p,{children:["SWR provides easy-to-use image hosting and efficient distribution\nservices. If small quantity of images need to be migrated, enterprises\ncan use the ",(0,i.jsx)(n.strong,{children:"docker pull/push"})," command to migrate images to SWR:"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Pull images from the source repository.\nRun the ",(0,i.jsx)(n.code,{children:"docker pull"})," command to pull the images."]}),"\n",(0,i.jsx)(n.admonition,{title:"Example",type:"note",children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"docker pull nginx:latest"})})}),"\n",(0,i.jsxs)(n.p,{children:["Run the ",(0,i.jsx)(n.code,{children:"docker images"})," command to check whether the images are\nsuccessfully pulled."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-shell",children:"docker images\nREPOSITORY TAG IMAGE ID CREATED SIZE\nnginx latest 22f2bf2e2b4f 5 hours ago 22.8MB\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Push the images pulled to SWR."}),"\n",(0,i.jsxs)(n.p,{children:["a. Log in to the VM where the target container is located and log\nin to SWR. For details, see ",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/software-repository-container/umn/image_management/uploading_an_image_through_the_client.html",children:"Uploading an Image Through a Container Engine Client"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["b. Tag the images: ",(0,i.jsx)(n.strong,{children:"docker tag"})," ",(0,i.jsxs)(n.strong,{children:["[Image name",":Tag"," name] [Image repository\naddress]/[Organization name]/[Image name",":Tag"," name]"]})]}),"\n",(0,i.jsx)(n.admonition,{title:"example",type:"note",children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"docker tag nginx:v1 swr.eu-de.otc.t-systems.com/cloud-develop/nginx:v1"})})}),"\n",(0,i.jsxs)(n.p,{children:["c. Run the following command to push the images to the target image\nrepository: ",(0,i.jsx)(n.strong,{children:"docker push"})," ",(0,i.jsxs)(n.strong,{children:["[Image repository address]/[Organization\nname]/[Image name",":Tag"," name]"]})]}),"\n",(0,i.jsx)(n.admonition,{title:"Example",type:"note",children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"docker push swr.eu-de.otc.t-systems.com/cloud-develop/nginx:v1"})})}),"\n",(0,i.jsx)(n.p,{children:"d. Check whether the following information is returned. If yes, the\npush is successful."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-shell",children:"fbce26647e70: Pushed\nfb04ab8effa8: Pushed\n8f736d52032f: Pushed\n009f1d338b57: Pushed\n678bbd796838: Pushed\nd1279c519351: Pushed\nf68ef921efae: Pushed\nv1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To view the pushed image, refresh the ",(0,i.jsx)(n.em,{children:"My Images"})," page."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"migrating-images-to-swr-using-image-syncer",children:"Migrating Images to SWR using image-syncer"}),"\n",(0,i.jsxs)(n.p,{children:["If small quantity of images need to be migrated, you can use Docker\ncommands. However, for thousands of images and several TBs of image\nrepository data, it takes a long time and even data may be lost. In this\ncase, you can use the open-source image migration tool\n",(0,i.jsx)(n.a,{href:"https://github.com/AliyunContainerService/image-syncer",children:"image-syncer"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Download, decompress, and run image-syncer."}),"\n",(0,i.jsxs)(n.p,{children:["The following uses ",(0,i.jsx)(n.strong,{children:"image-syncer v1.3.1"})," as an example."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"wget https://github.com/AliyunContainerService/image-syncer/releases/download/v1.3.1/image-syncer-v1.3.1-linux-amd64.tar.gz\ntar -zvxf image-syncer-v1.3.1-linux-amd64.tar.gz\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Create ",(0,i.jsx)(n.strong,{children:"auth.json"}),", the authentication information file of the\nimage repositories."]}),"\n",(0,i.jsxs)(n.p,{children:["image-syncer supports the Docker image repository based on Docker\nRegistry V2. Enter the authentication information as required. In\nthe following example, ",(0,i.jsx)(n.strong,{children:"the image repository of eu-de is migrated to\neu-nl"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"The following describes how to write the authentication information\nof the source and target repositories."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "swr.eu-de.otc.t-systems.com": {\n "username": "eu-de_otc@F1I3Q......",\n "password": "2fd4c969ea0......"\n },\n "swr.eu-nl.otc.t-systems.com": {\n "username": "eu-nl_otc@4N3FA......",\n "password": "f1c82b57855f9d35......"\n }\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["In the preceding commands, ",(0,i.jsx)(n.code,{children:"swr.eu-de.otc.t-systems.com"})," indicates\nthe image repository address. You can obtain the ",(0,i.jsx)(n.code,{children:"username"})," and\n",(0,i.jsx)(n.code,{children:"password"})," from the login command as follows:"]}),"\n",(0,i.jsxs)(n.p,{children:["Log in to the ",(0,i.jsx)(n.em,{children:"SWR console"}),", and click ",(0,i.jsx)(n.em,{children:"Generate Login Command"})," in\nthe upper right corner to obtain the login command in the dialog box\ndisplayed, as shown in the following figure."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Figure 1 Generating a login command",src:s(58123).A+"",width:"545",height:"232"})}),"\n",(0,i.jsx)(n.p,{children:"In the above figure :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"eu-de_otc@9LA\\...\\..."})," is the ",(0,i.jsx)(n.code,{children:"username"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"077be\\...\\...\\...\\....."})," is the ",(0,i.jsx)(n.code,{children:"password"})," and"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"swr.eu-de.otc.t-systems.com"})," is the image repository address."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Create ",(0,i.jsx)(n.strong,{children:"images.json"}),", the image synchronization description file."]}),"\n",(0,i.jsxs)(n.p,{children:["In the following example, the source repository address is on the\nleft, and the target repository address is on the right.\nimage-syncer also supports other description modes. For details, see\n",(0,i.jsx)(n.a,{href:"https://github.com/AliyunContainerService/image-syncer/blob/master/README.md",children:"README.md"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "swr.eu-de.otc.t-systems.com/org-ss/canary-consumer": "swr.eu-nl.otc.t-systems.com/dev-container/canary-consumer"\n}\n'})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run the following command to migrate the images to SWR:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"./image-syncer \\--auth=./auth.json \\--images=./images.json\n\\--namespace=dev-container \\--registry=swr.eu-de.otc.t-systems.com\n\\--retries=3 \\--log=./log\n"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"synchronizing-images-across-clouds-from-harbor-to-swr",children:"Synchronizing Images Across Clouds from Harbor to SWR"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://goharbor.io/",children:"Harbor"})," is an open-source enterprise-class Docker Registry server\ndeveloped by VMware. It extends the Docker Distribution by adding the\nfunctionalities such as role-based access control (RBAC), image\nscanning, and image replication. Harbor has been widely used to store\nand distribute container images."]}),"\n",(0,i.jsxs)(n.p,{children:["Our scenarion in this blueprint is a customer that deploys services in ",(0,i.jsx)(n.strong,{children:"multiple clouds"})," and uses Harbor as their\nimage repository. We are going to be accessing SWR through a ",(0,i.jsx)(n.strong,{children:"public"})," network."]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Configure a registry endpoint on Harbor."}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["Open Telekom Cloud SWR has not yet integrated with Harbor. You need clone ",(0,i.jsx)(n.a,{href:"https://github.com/akyriako/harbor/tree/opentelekomcloud_adapter",children:"this repo"})," and build it from branch ",(0,i.jsx)(n.strong,{children:"opentelekomcloud_adapter"}),"."]})}),"\n",(0,i.jsx)(n.p,{children:"Add an endpoint and configure the following parameters."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image2",src:s(49879).A+"",width:"564",height:"524"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Provider"}),": Select ",(0,i.jsx)(n.code,{children:"Open Telekom Cloud SWR"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Name"}),": Enter a customized name."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Endpoint URL"}),": Enter the public network domain name of\nSWR in the format of ",(0,i.jsx)(n.code,{children:"https://{SWR image repository address}"}),". To obtain the image repository address, log in\nto the SWR console, choose ",(0,i.jsx)(n.em,{children:"My Images"}),", and click ",(0,i.jsx)(n.em,{children:"Upload\nThrough Client"}),". You can view the image repository address\nof the current region on the page that is displayed."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Access ID"}),": Enter an access ID in the format of ",(0,i.jsx)(n.code,{children:"Regional project name@\\[AK\\]"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Access Secret"}),": Enter an AK/SK. To obtain an AK/SK, see ",(0,i.jsx)(n.a,{href:"https://docs.otc.t-systems.com/software-repository-container/umn/image_management/obtaining_a_long-term_valid_login_command.html",children:"Obtaining a Long-Term Valid Login Command"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Verify Remote Cert"}),": ",(0,i.jsx)(n.em,{children:"Deselect"})," the option."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Configure a replication rule."}),"\n",(0,i.jsx)(n.p,{children:"a. Create a replication rule."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image1",src:s(40496).A+"",width:"1221",height:"572"})}),"\n",(0,i.jsx)(n.p,{children:"b. Configure the following parameters:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Name"}),": Enter a customized name."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Replication mode"}),": Select ",(0,i.jsx)(n.code,{children:"Push-based"}),", indicating that images are pushed ",(0,i.jsx)(n.strong,{children:"from"})," the local Harbor ",(0,i.jsx)(n.strong,{children:"to"})," the remote repository."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Source resource filter"}),": Filters images on Harbor based on the configured rules."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Destination registry"}),": Select the endpoint created previously."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.em,{children:"Destination"}),"\n",(0,i.jsx)(n.code,{children:"Namespace"}),": Enter the organization name on SWR.\n",(0,i.jsx)(n.code,{children:"Flattening"}),": Select ",(0,i.jsx)(n.code,{children:"Flatten All Levels"}),", indicating\nthat the hierarchy of the registry is reduced when copying\nimages. If the directory of Harbor registry is\n",(0,i.jsx)(n.strong,{children:"library/nginx"})," and the directory of the endpoint\nnamespace is ",(0,i.jsx)(n.strong,{children:"dev-container"}),", after you flatten all\nlevels, the directory of the endpoint namespace is\n",(0,i.jsx)(n.strong,{children:"library/nginx -> dev-container/nginx"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Trigger Mode"}),": Select ",(0,i.jsx)(n.code,{children:"Manual"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Bandwidth"}),": Set the maximum network bandwidth when\nexecuting the replication rule. The value ",(0,i.jsx)(n.code,{children:"-1"})," indicates\nno limitation."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["After creating the replication rule, select it and click\n",(0,i.jsx)(n.em,{children:"REPLICATE"})," to complete the replication."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"image2",src:s(24435).A+"",width:"1095",height:"499"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},58123:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/en-us_image_0000001400827629-159f9ade75ec5109ffd26ea4acaf5ca8.png"},49879:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/en-us_image_0000001418569120-36f24b545226960fb1aeb248a4fbdadc.png"},24435:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/en-us_image_0000001418729104-aae4c5fd907cab4256a7116e9037c09a.png"},40496:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/en-us_image_0000001468885853-8eaae4b34f5362d15a2f4792e829b618.png"},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var i=s(96540);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3841.8021a97b.js b/pr-preview/pr-186/assets/js/3841.8021a97b.js new file mode 100644 index 000000000..582f01c85 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3841.8021a97b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3841; +exports.ids = [3841]; +exports.modules = { + +/***/ 43841: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_arrow_right: () => (/* binding */ ActionArrowRight) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionArrowRight = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.625 4.977a1.249 1.249 0 10-1.548 1.963l4.83 3.81H2.915a1.25 1.25 0 000 2.5h15l-4.838 3.815a1.25 1.25 0 001.548 1.963l8.909-7.026-8.91-7.025z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M14.366 5.411a.75.75 0 10-.93 1.178l5.905 4.661H3a.75.75 0 000 1.5h16.34l-5.906 4.661a.75.75 0 00.93 1.178L22.712 12l-8.345-6.589z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionArrowRight.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/38427.00271ffe.js b/pr-preview/pr-186/assets/js/38427.00271ffe.js new file mode 100644 index 000000000..78d2ea7b9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/38427.00271ffe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[38427],{38427:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_gender_male:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M15.085 17.4a5.961 5.961 0 01-4.244 1.756A5.96 5.96 0 016.6 17.4a5.958 5.958 0 01-1.758-4.243c0-1.602.624-3.109 1.758-4.242a5.957 5.957 0 014.242-1.758c1.602 0 3.11.624 4.242 1.758a6.007 6.007 0 010 8.485zM21 8.5V3h-5.5l1.865 1.865-1.469 1.47a8.429 8.429 0 00-5.055-1.679c-2.27 0-4.404.885-6.01 2.49a8.446 8.446 0 00-2.49 6.01c0 2.271.885 4.406 2.49 6.011a8.445 8.445 0 006.01 2.49 8.45 8.45 0 006.011-2.49c3.014-3.013 3.277-7.74.811-11.065l1.47-1.47L21 8.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M15.43 17.762a6.455 6.455 0 01-4.596 1.904 6.457 6.457 0 01-4.596-1.904 6.46 6.46 0 01-1.904-4.596c0-1.736.676-3.368 1.904-4.596a6.46 6.46 0 014.596-1.904c1.736 0 3.369.676 4.596 1.904a6.457 6.457 0 011.904 4.596 6.455 6.455 0 01-1.904 4.596zM21.001 8.5V3h-5.5l2.219 2.22-1.786 1.785a7.976 7.976 0 00-5.1-1.839 8 8 0 105.657 13.657 7.999 7.999 0 00.503-10.757l1.787-1.786 2.22 2.22z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3873.855f4aef.js b/pr-preview/pr-186/assets/js/3873.855f4aef.js new file mode 100644 index 000000000..571378869 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3873.855f4aef.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3873; +exports.ids = [3873]; +exports.modules = { + +/***/ 43873: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_waiting: () => (/* binding */ ContentWaiting) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentWaiting = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1.005c.444 0 .75.35.75.745 0 .402-.329.75-.75.75-5.239 0-9.5 4.261-9.5 9.5 0 5.238 4.261 9.5 9.5 9.5 5.238 0 9.5-4.262 9.5-9.5 0-.2.08-.39.22-.53.276-.28.78-.28 1.06 0 .14.14.22.335.22.53 0 6.066-4.934 11-11 11S1 18.066 1 12 5.934 1.005 12 1.005zm0 2.98a.75.75 0 01.743.649l.007.101v6.516l4.852.005a.75.75 0 01.1 1.493l-.103.006-6.349-.006V4.735a.75.75 0 01.75-.75zm9.71 4.635a.75.75 0 01.384 1.45.745.745 0 01-.915-.53.747.747 0 01.531-.92zM20.5 6.225a.746.746 0 011.025.275.744.744 0 01-.27 1.02.743.743 0 01-1.025-.27.745.745 0 01.27-1.025zM18.715 4.22a.76.76 0 011.065 0c.29.295.29.77 0 1.06-.15.15-.34.22-.53.22a.838.838 0 01-.51-.194.699.699 0 01-.239-.482.759.759 0 01.214-.604zm-2.24-1.475a.751.751 0 011.3.755.744.744 0 01-1.025.27.755.755 0 01-.275-1.025zm-2.546-.84a.751.751 0 011.45.385.755.755 0 01-.38.474.754.754 0 01-.938-.208.749.749 0 01-.132-.651z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1.005c.444 0 .75.35.75.745 0 .402-.329.75-.75.75-5.239 0-9.5 4.261-9.5 9.5 0 5.238 4.261 9.5 9.5 9.5 5.238 0 9.5-4.262 9.5-9.5 0-.2.08-.39.22-.53.276-.28.78-.28 1.06 0 .14.14.22.335.22.53 0 6.066-4.934 11-11 11S1 18.066 1 12 5.934 1.005 12 1.005zm0 2.98a.75.75 0 01.743.649l.007.101v6.516l4.852.005a.75.75 0 01.1 1.493l-.103.006-6.349-.006V4.735a.75.75 0 01.75-.75zm9.71 4.635a.75.75 0 01.384 1.45.745.745 0 01-.915-.53.747.747 0 01.531-.92zM20.5 6.225a.746.746 0 011.025.275.744.744 0 01-.27 1.02.743.743 0 01-1.025-.27.745.745 0 01.27-1.025zM18.715 4.22a.76.76 0 011.065 0c.29.295.29.77 0 1.06-.15.15-.34.22-.53.22a.838.838 0 01-.51-.194.699.699 0 01-.239-.482.759.759 0 01.214-.604zm-2.24-1.475a.751.751 0 011.3.755.744.744 0 01-1.025.27.755.755 0 01-.275-1.025zm-2.546-.84a.751.751 0 011.45.385.755.755 0 01-.38.474.754.754 0 01-.938-.208.749.749 0 01-.132-.651z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentWaiting.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3890.8ee7304d.js b/pr-preview/pr-186/assets/js/3890.8ee7304d.js new file mode 100644 index 000000000..22ae3c3dd --- /dev/null +++ b/pr-preview/pr-186/assets/js/3890.8ee7304d.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3890; +exports.ids = [3890]; +exports.modules = { + +/***/ 23890: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_smart_speaker: () => (/* binding */ DeviceSmartSpeaker) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceSmartSpeaker = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 7.55c1.711 0 3.422.363 4.663.712l.501.148.436.14h1.1c1.05 0 1.9.75 2 1.8l.223 2.86.077 1.062.067 1.056c.05.866.083 1.689.083 2.372 0 2.226-1.405 4.17-3.444 4.656l-.206.044v.1c0 .51-.388.935-.884.993l-.116.007h-9c-.51 0-.935-.388-.993-.884L6.5 22.5v-.05C4.35 22 2.85 20 2.85 17.7c0-.732.032-1.617.082-2.546L3 14.025c.012-.19.026-.379.039-.567l.084-1.113.044-.535.09-1.003.043-.457c.095-.95.867-1.72 1.844-1.794L5.3 8.55h1.15l.347-.113.408-.125.463-.132c1.14-.312 2.687-.63 4.332-.63zm1 9.95v2h-2v-2h2zM12.25 4c1.364 0 2.645.248 3.805.669l.345.131-.7 1.35a8.86 8.86 0 00-3.45-.7c-1.273 0-2.463.29-3.57.755l-.33.145-.7-1.3C9.05 4.4 10.6 4 12.25 4zm0-3.5c1.95 0 3.77.388 5.462 1.124l.388.176-.7 1.3C15.8 2.4 14.1 2 12.25 2c-1.857 0-3.628.388-5.233 1.124L6.65 3.3 5.95 2C7.85 1.05 10 .5 12.25.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 7.55c1.711 0 3.422.363 4.663.712l.501.148.436.14h1.1c1.05 0 1.9.75 2 1.8l.223 2.86.077 1.062.067 1.056c.05.866.083 1.689.083 2.372 0 2.226-1.405 4.17-3.444 4.656l-.206.044v.1c0 .51-.388.935-.884.993l-.116.007h-9c-.51 0-.935-.388-.993-.884L6.5 22.5v-.05C4.35 22 2.85 20 2.85 17.7c0-.732.032-1.617.082-2.546L3 14.025c.012-.19.026-.379.039-.567l.084-1.113.044-.535.09-1.003.043-.457c.095-.95.867-1.72 1.844-1.794L5.3 8.55h1.15l.347-.113.408-.125.463-.132c1.14-.312 2.687-.63 4.332-.63zM18.7 10H5.3c-.25 0-.5.2-.5.45l-.208 2.566-.073.984-.066.993-.054.97c-.03.63-.049 1.225-.049 1.737 0 1.786 1.212 3.2 2.826 3.295L7.35 21h9.3c1.7 0 3-1.45 3-3.3 0-.494-.017-1.057-.044-1.653l-.048-.915-.06-.935-.068-.93-.23-2.817c-.044-.219-.202-.4-.409-.44L18.7 10zM13 17.5v2h-2v-2h2zM12.25 4c1.364 0 2.645.248 3.805.669l.345.131-.7 1.35a8.86 8.86 0 00-3.45-.7c-1.273 0-2.463.29-3.57.755l-.33.145-.7-1.3C9.05 4.4 10.6 4 12.25 4zm0-3.5c1.95 0 3.77.388 5.462 1.124l.388.176-.7 1.3C15.8 2.4 14.1 2 12.25 2c-1.857 0-3.628.388-5.233 1.124L6.65 3.3 5.95 2C7.85 1.05 10 .5 12.25.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceSmartSpeaker.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/38904.a5c5421a.js b/pr-preview/pr-186/assets/js/38904.a5c5421a.js new file mode 100644 index 000000000..9761de613 --- /dev/null +++ b/pr-preview/pr-186/assets/js/38904.a5c5421a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[38904],{38904:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_publish:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M12 9.125l3.275 5H12.73v7.625a.75.75 0 01-1.493.102l-.007-.102v-7.625h-2.5l3.27-5zM21 3.5V16a3 3 0 01-2.698 2.987l-.177.013H14.25v-3.375h1.035a1.5 1.5 0 001.337-2.178l-.082-.142-3.275-5a1.5 1.5 0 00-2.411-.12l-.089.12-3.275 5a1.5 1.5 0 001.11 2.313l.15.007h1V19H6a3 3 0 01-2.995-2.824L3 16V3.5h18zM5 4.375a.625.625 0 100 1.25.625.625 0 000-1.25zm2 0a.625.625 0 100 1.25.625.625 0 000-1.25zm2 0a.625.625 0 100 1.25.625.625 0 000-1.25z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 8.25L16.42 15h-3.67v6.75a.75.75 0 01-1.493.102l-.007-.102V15H7.582l4.419-6.75zm9-4.75V16a3 3 0 01-2.824 2.995L18 19h-2v-1.5h2c.778 0 1.42-.596 1.493-1.356L19.5 16V6.5h-15V16c0 .778.596 1.42 1.356 1.493L6 17.5h2V19H6a3 3 0 01-2.995-2.824L3 16V3.5h18zM5 4.375a.625.625 0 100 1.25.625.625 0 000-1.25zm2 0a.625.625 0 100 1.25.625.625 0 000-1.25zm2 0a.625.625 0 100 1.25.625.625 0 000-1.25z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3891.265ee51e.js b/pr-preview/pr-186/assets/js/3891.265ee51e.js new file mode 100644 index 000000000..dd6921866 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3891.265ee51e.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3891; +exports.ids = [3891]; +exports.modules = { + +/***/ 93891: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_high_priority_email: () => (/* binding */ AlertHighPriorityEmail) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertHighPriorityEmail = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 16.452a2.024 2.024 0 110 4.048 2.024 2.024 0 010-4.048zM13.619 3.5v10.523h-3.238V3.5h3.238z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 16.452a2.024 2.024 0 100 4.048 2.024 2.024 0 000-4.048zm-1.619-2.429h3.238V3.5h-3.238z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertHighPriorityEmail.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3899.8e6edff6.js b/pr-preview/pr-186/assets/js/3899.8e6edff6.js new file mode 100644 index 000000000..8e26ed721 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3899.8e6edff6.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3899; +exports.ids = [3899]; +exports.modules = { + +/***/ 23899: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_chat_badge: () => (/* binding */ CommunicationChatBadge) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationChatBadge = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.973 3.5a7.698 7.698 0 00-.972 3.75c0 4.273 3.476 7.75 7.75 7.75a7.69 7.69 0 004.498-1.453l.25-.187V16a3 3 0 01-2.823 2.994L19.5 19h-7l-3.512 3.513a1.715 1.715 0 01-1.225.516c-.855 0-1.676-.63-1.756-1.598L6 21.274V19H4.5a3 3 0 01-2.994-2.823L1.5 16V3.5h9.473zM17.75 1a6.25 6.25 0 110 12.499A6.25 6.25 0 0117.75 1zm0 1.5A4.755 4.755 0 0013 7.25 4.756 4.756 0 0017.75 12c2.62 0 4.75-2.131 4.75-4.75 0-2.62-2.13-4.75-4.75-4.75zm.124 1.434c1.208 0 1.997.808 1.997 1.942 0 .798-.356 1.334-.82 1.785l-.118.11-1.469 1.33v.055h2.38v1.125h-3.848V8.943l2.073-1.989c.297-.288.557-.594.557-1.078 0-.4-.297-.79-.752-.79-.406 0-.681.192-.777.59l-.023.126H15.83c.075-1.05.781-1.868 2.045-1.868z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 16c0 .827-.673 1.5-1.5 1.5h-7.621l-3.952 3.952a.236.236 0 01-.273.056.26.26 0 01-.154-.233V17.5h-3c-.827 0-1.5-.673-1.5-1.5V5h7.335a7.649 7.649 0 01.634-1.5H1.5V16a3 3 0 003 3H6v2.275c0 1.055.863 1.754 1.763 1.754.43 0 .867-.16 1.225-.517L12.5 19h7a3 3 0 003-3v-2.636a7.735 7.735 0 01-1.5.914V16zm-3.25-2.5a6.25 6.25 0 100-12.5 6.25 6.25 0 000 12.5zm.123-9.566c1.208 0 1.998.808 1.998 1.942 0 .864-.418 1.422-.938 1.896l-1.469 1.329v.055h2.379v1.125h-3.847V8.943l2.072-1.988c.298-.288.558-.595.558-1.079 0-.399-.298-.79-.753-.79-.446 0-.734.233-.799.716h-1.245c.074-1.05.781-1.868 2.044-1.868z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationChatBadge.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/39114.19014a4b.js b/pr-preview/pr-186/assets/js/39114.19014a4b.js new file mode 100644 index 000000000..3395fb37e --- /dev/null +++ b/pr-preview/pr-186/assets/js/39114.19014a4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[39114],{39114:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_dongle:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("g",{"fill-rule":"evenodd"},(0,s.h)("path",{d:"M17.501 15.5h4.5v-7h-4.5v7zm-7.275 1.142l-1.12-.995a5.466 5.466 0 000-7.295l1.12-.994A6.964 6.964 0 0112.001 12a6.964 6.964 0 01-1.775 4.642zm-2.24-1.99l-1.125-.999A2.48 2.48 0 007.501 12c0-.636-.247-1.212-.64-1.653l1.125-.999A3.977 3.977 0 019.001 12a3.977 3.977 0 01-1.015 2.652zM5.001 13a1 1 0 110-2 1 1 0 010 2zm12.5-6V5h-14a3 3 0 00-3 3v8a3 3 0 003 3h14v-2h6V7h-6z"}),(0,s.h)("path",{d:"M19.001 11h1.5V9.5h-1.5zm0 3.5h1.5V13h-1.5z"}))):(0,s.h)("g",null,(0,s.h)("path",{d:"M7.986 14.652a3.976 3.976 0 000-5.304l-1.125 1c.393.44.639 1.016.639 1.652a2.48 2.48 0 01-.639 1.653l1.125 1zm2.239 1.99a6.959 6.959 0 000-9.284l-1.119.994A5.475 5.475 0 0110.5 12c0 1.4-.53 2.675-1.394 3.647l1.119.995zM5 13a1 1 0 100-2 1 1 0 000 2zm14 1.5h1.5V13H19v1.5zm0-3.5h1.5V9.5H19V11zm-1.5 4.5H22v-7h-4.5v7zm-1.5 2H3.5c-.827 0-1.5-.674-1.5-1.5V8c0-.827.673-1.5 1.5-1.5H16v11zM17.5 7V5h-14a3 3 0 00-3 3v8a3 3 0 003 3h14v-2h6V7h-6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3917.f3785901.js b/pr-preview/pr-186/assets/js/3917.f3785901.js new file mode 100644 index 000000000..5957dbc82 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3917.f3785901.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3917; +exports.ids = [3917]; +exports.modules = { + +/***/ 93917: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_chat: () => (/* binding */ CommunicationChat) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationChat = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M3.5 8.5V10a1.5 1.5 0 00-1.493 1.356L2 11.5v5a1.5 1.5 0 001.356 1.493L3.5 18H5v2.32L7.32 18H12a1.5 1.5 0 00.999-.388l.111-.112h.275l.92.92a3 3 0 01-2.1 1.073L12 19.5H7.94l-2.375 2.355a1.21 1.21 0 01-2.058-.723L3.5 21v-1.5a3 3 0 01-2.995-2.824L.5 16.5v-5a3 3 0 012.824-2.995L3.5 8.5zm19.5-6V13a3 3 0 01-2.824 2.995L20 16h-.5v1.875a1.5 1.5 0 01-2.453 1.162l-.112-.102L14 16H8a3 3 0 01-2.995-2.824L5 13V2.5h18z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M3.5 8.5V10c-.8 0-1.423.576-1.493 1.352L2 11.5v5c0 .8.576 1.423 1.352 1.493L3.5 18H5v2.3L7.3 18h5c.394 0 .71-.153.985-.392l.115-.108 1.05 1.05a3.027 3.027 0 01-1.94.893l-.21.007H7.95l-2.4 2.4c-.25.25-.55.35-.85.35-.563 0-1.125-.396-1.193-1.063L3.5 21v-1.5a3.01 3.01 0 01-2.995-2.824L.5 16.5v-5a3.01 3.01 0 012.824-2.995L3.5 8.5zm19.5-6V13a3.01 3.01 0 01-2.824 2.995L20 16h-.5v1.9c0 .9-.75 1.5-1.5 1.5-.306 0-.65-.115-.933-.345l-.117-.105L14 16H8a3.01 3.01 0 01-2.995-2.824L5 13V2.5h18zM21.5 4h-15v9c0 .8.576 1.423 1.352 1.493L8 14.5h6.65L18 17.85V14.5h2c.8 0 1.423-.576 1.493-1.352L21.5 13V4z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationChat.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3922.ac1fceab.js b/pr-preview/pr-186/assets/js/3922.ac1fceab.js new file mode 100644 index 000000000..0fb440cf8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3922.ac1fceab.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3922; +exports.ids = [3922]; +exports.modules = { + +/***/ 53922: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_more: () => (/* binding */ ActionMore) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionMore = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 9.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm7 0a2.5 2.5 0 110 5 2.5 2.5 0 010-5zm-14 0a2.5 2.5 0 110 5 2.5 2.5 0 010-5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 10.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm7 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm-14 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionMore.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/393be207.9e580b9d.js b/pr-preview/pr-186/assets/js/393be207.9e580b9d.js new file mode 100644 index 000000000..1e58ef6cf --- /dev/null +++ b/pr-preview/pr-186/assets/js/393be207.9e580b9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[74134],{40633:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>p,toc:()=>d});var o=t(74848),a=t(28453);const r={title:"Markdown page example"},s="Markdown page example",p={type:"mdx",permalink:"/docs-next/pr-preview/pr-186/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"},unlisted:!1},c={},d=[];function i(e){const n={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"markdown-page-example",children:"Markdown page example"}),"\n",(0,o.jsx)(n.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>p});var o=t(96540);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function p(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/39484.7a7cb68b.js b/pr-preview/pr-186/assets/js/39484.7a7cb68b.js new file mode 100644 index 000000000..e74d24a0d --- /dev/null +++ b/pr-preview/pr-186/assets/js/39484.7a7cb68b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[39484],{39484:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_user_file_admin:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M18.796 12.5l.262 1.444a.523.523 0 00.738.379l.074-.043 1.206-.835 1.479 1.478-.835 1.207a.523.523 0 00.253.79l.083.022 1.444.262v2.091l-1.444.263a.523.523 0 00-.379.738l.043.074.835 1.206-1.478 1.479-1.207-.835a.523.523 0 00-.79.253l-.022.083L18.796 24h-2.091l-.262-1.444a.523.523 0 00-.738-.379l-.075.043-1.207.835-1.478-1.478.835-1.207a.523.523 0 00-.253-.79l-.083-.022L12 19.296v-2.091l1.444-.263a.523.523 0 00.379-.738l-.043-.074-.835-1.206 1.478-1.479 1.207.835c.288.2.678.063.79-.253l.022-.083.262-1.444h2.091zm-1.046 3.981a1.77 1.77 0 100 3.538 1.77 1.77 0 000-3.538zM7.405 15l3.095 3.095V20H.281l.172-1.031a4.734 4.734 0 014.461-3.964L5.138 15h2.267zM10.5.5c3.476 0 6 2.523 6 6 0 3.38-2.411 7-6 7s-6-3.62-6-7c0-3.477 2.523-6 6-6z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M18.796 12.5l.262 1.444a.523.523 0 00.738.379l.074-.043 1.206-.835 1.479 1.478-.835 1.207a.523.523 0 00.253.79l.083.022 1.444.262v2.091l-1.444.263a.523.523 0 00-.379.738l.043.074.835 1.206-1.478 1.479-1.207-.835a.523.523 0 00-.79.253l-.022.083L18.796 24h-2.091l-.262-1.444a.523.523 0 00-.738-.379l-.075.043-1.207.835-1.478-1.478.835-1.207a.523.523 0 00-.253-.79l-.083-.022L12 19.296v-2.091l1.444-.263a.523.523 0 00.379-.738l-.043-.074-.835-1.206 1.478-1.479 1.207.835c.288.2.678.063.79-.253l.022-.083.262-1.444h2.091zm-1.046 3.981a1.77 1.77 0 100 3.538 1.77 1.77 0 000-3.538zM7.405 15l3.095 3.095V20H.281l.172-1.031a4.734 4.734 0 014.461-3.964L5.138 15h2.267zM10.5.5c3.476 0 6 2.523 6 6 0 3.38-2.411 7-6 7s-6-3.62-6-7c0-3.477 2.523-6 6-6zm0 1.5C7.892 2 6 3.892 6 6.5 6 9.156 7.808 12 10.5 12S15 9.156 15 6.5C15 3.892 13.107 2 10.5 2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/39561.116bccf7.js b/pr-preview/pr-186/assets/js/39561.116bccf7.js new file mode 100644 index 000000000..b59f42ec6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/39561.116bccf7.js @@ -0,0 +1,2 @@ +/*! For license information please see 39561.116bccf7.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[39561],{88114:(e,a,o)=>{o.d(a,{c:()=>i});var t,r,l,i=(t=function(e){!function(){var a={}.hasOwnProperty;function o(){for(var e=[],t=0;t{o.r(a),o.d(a,{scale_sidebar_nav_collapsible:()=>l});var t=o(90936),r=o(88114);const l=class{constructor(e){(0,t.r)(this,e),this.tag="li",this.href="#",this.active=!1,this.bold=!1,this.condensed=!1,this.handleClick=e=>{e.preventDefault(),this.expanded=!this.expanded},this.handleKeydown=e=>{e.metaKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||"Space"===e.code&&(this.expanded=!this.expanded)}}nestingLevelChanged(e){1===e&&(this.bold=!0)}render(){const e=this.tag;return(0,t.h)(t.a,null,this.styles&&(0,t.h)("style",null,this.styles),(0,t.h)(e,{part:this.getBasePartMap(),class:this.getCssClassMap(),role:"listitem"},(0,t.h)("div",{class:"sidebar-nav-collapsible__wrapper",part:"wrapper"},(0,t.h)("a",{href:this.href,class:"sidebar-nav-collapsible__button",onClick:this.handleClick,onKeyDown:this.handleKeydown,role:"button","aria-expanded":this.expanded?"true":"false",part:(0,r.c)("button",this.active&&"button-active")},this.label,(0,t.h)("scale-icon-navigation-collapse-down",{class:"sidebar-nav-collapsible__icon",selected:this.bold,size:20,part:"icon"}))),(0,t.h)("ul",{hidden:!this.expanded,class:"sidebar-nav-collapsible__list",part:"list"},(0,t.h)("slot",null))))}getBasePartMap(){return this.getCssOrBasePartMap("basePart")}getCssClassMap(){return this.getCssOrBasePartMap("css")}getCssOrBasePartMap(e){const a="sidebar-nav-collapsible",o="basePart"===e?"":`${a}--`;return(0,r.c)(a,this.condensed&&`${o}condensed`,this.active&&`${o}active`)}get el(){return(0,t.g)(this)}static get watchers(){return{nestingLevel:["nestingLevelChanged"]}}};l.style=":host{--opacity-chevron:1;--border-bottom-color:var(--telekom-color-ui-faint);--border-left-color-third-nesting:var(--telekom-color-ui-strong);--color-active:var(--telekom-color-text-and-icon-primary-pressed);--color-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-primary:var(--telekom-color-text-and-icon-primary-standard);--background-color-before-active:var(--color-primary);--font-weight-bold:var(--telekom-typography-font-weight-bold);--box-shadow-focus:inset 0 0 0 var(--telekom-line-weight-highlight)\n var(--telekom-color-functional-focus-standard)}.sidebar-nav-collapsible{margin:0;border-bottom-color:var(--border-bottom-color);border-bottom-style:solid;border-bottom-width:0}.sidebar-nav-collapsible--condensed{border-bottom-width:1px}.sidebar-nav-collapsible__wrapper{border-bottom-color:var(--border-bottom-color);border-bottom-style:solid;border-bottom-width:1px}.sidebar-nav-collapsible--condensed .sidebar-nav-collapsible__wrapper{border-bottom-width:0}.sidebar-nav-collapsible__button{color:currentColor;width:100%;display:flex;box-sizing:border-box;text-align:left;align-items:center;padding-top:1rem;padding-right:calc(0.5 * var(--spacing-indent));padding-bottom:1rem;padding-left:var(--spacing-indent);justify-content:space-between;text-decoration:none;font-family:inherit;border-radius:var(--telekom-radius-small)}.sidebar-nav-collapsible__button:hover{color:var(--color-hover)}.sidebar-nav-collapsible__button:active{color:var(--color-active)}.sidebar-nav-collapsible__button:focus{outline:none;box-shadow:var(--box-shadow-focus)}.sidebar-nav-collapsible--active .sidebar-nav-collapsible__button{position:relative;color:var(--color-primary)}.sidebar-nav-collapsible--active .sidebar-nav-collapsible__button::before{content:'';display:block;position:absolute;top:0;left:var(--left-current-border, 0);width:0;height:100%;background-color:var(--color-primary);border-left:2px solid transparent}.sidebar-nav-collapsible--active:hover .sidebar-nav-collapsible__button::before{background-color:var(--color-hover)}.sidebar-nav-collapsible--active:active .sidebar-nav-collapsible__button::before{background-color:var(--color-active)}:host([nesting-level='1']) .sidebar-nav-collapsible__button,.sidebar-nav-collapsible--bold .sidebar-nav-collapsible__button{font-weight:var(--font-weight-bold)}:host([nesting-level='2']) .sidebar-nav-collapsible__button{padding-left:calc(var(--spacing-indent) + 0.75rem)}.sidebar-nav-collapsible__icon{transition:opacity 150ms}[aria-expanded='true'] .sidebar-nav-collapsible__icon{transform:rotate(0.5turn)}@media (hover: hover){[aria-expanded='false'] .sidebar-nav-collapsible__icon{opacity:var(--opacity-chevron, 1)}.sidebar-nav-collapsible__button:hover .sidebar-nav-collapsible__icon{opacity:1}.sidebar-nav-collapsible__button:focus .sidebar-nav-collapsible__icon{opacity:1}}.sidebar-nav-collapsible__list{list-style:none;padding-left:0;margin-top:0;margin-bottom:0;border-bottom-width:1px;}.sidebar-nav-collapsible--condensed .sidebar-nav-collapsible__list{margin-top:1em;margin-left:var(--spacing-indent);margin-bottom:2em}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/39561.116bccf7.js.LICENSE.txt b/pr-preview/pr-186/assets/js/39561.116bccf7.js.LICENSE.txt new file mode 100644 index 000000000..bae6dd8e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/39561.116bccf7.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/pr-preview/pr-186/assets/js/39694.b299ab63.js b/pr-preview/pr-186/assets/js/39694.b299ab63.js new file mode 100644 index 000000000..5ec88a7fe --- /dev/null +++ b/pr-preview/pr-186/assets/js/39694.b299ab63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[39694],{39694:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_heart:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21.315 6.07a5.857 5.857 0 00-4.85-2.57 5.85 5.85 0 00-2.265.45c-1 .415-1.69.985-2.2 1.605-.55-.67-1.305-1.28-2.425-1.69a5.864 5.864 0 00-6.89 2.205 5.89 5.89 0 00.39 7.12l6.63 7.755a3.017 3.017 0 004.585 0l6.63-7.755a5.883 5.883 0 00.395-7.12z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21.315 6.07a5.857 5.857 0 00-4.85-2.57 5.85 5.85 0 00-2.265.45c-1 .415-1.69.985-2.2 1.605-.55-.67-1.305-1.28-2.425-1.69a5.864 5.864 0 00-6.89 2.205 5.89 5.89 0 00.39 7.12l6.63 7.755a3.017 3.017 0 004.585 0l6.63-7.755a5.883 5.883 0 00.395-7.12zm-1.53 6.145L13.15 19.97c-.3.355-.725.53-1.15.53-.425 0-.85-.175-1.15-.53l-6.635-7.755a4.372 4.372 0 01-.29-5.3A4.319 4.319 0 017.535 5c.52 0 1.035.09 1.525.27 1.785.655 2.275 1.915 2.94 3.235.635-1.255 1.105-2.48 2.775-3.17A4.486 4.486 0 0116.465 5c1.365 0 2.735.625 3.61 1.915 1.11 1.63.99 3.8-.29 5.3z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3996.8f12c61a.js b/pr-preview/pr-186/assets/js/3996.8f12c61a.js new file mode 100644 index 000000000..cb59e2269 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3996.8f12c61a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3996; +exports.ids = [3996]; +exports.modules = { + +/***/ 53996: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_replacement_mobilephone: () => (/* binding */ DeviceReplacementMobilephone) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceReplacementMobilephone = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.03 3l-.023.25L7 3.5v1H4.5a1.5 1.5 0 00-1.493 1.356L3 6v14.5a1.5 1.5 0 001.356 1.493L4.5 22h2.765c.166.475.413.917.727 1.309l.163.191H4.5a3 3 0 01-2.995-2.824L1.5 20.5V6a3 3 0 012.824-2.995L4.5 3h2.53zM19.5.5a3 3 0 012.995 2.824l.005.176v17a3 3 0 01-2.824 2.995l-.176.005h-8a3 3 0 01-2.995-2.824L8.5 20.5v-6.25h2.25v3.5l7.62-5-7.62-5v3.5H8.5V3.5A3 3 0 0111.324.505L11.5.5h8zm-4 17.75a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0 .5a1 1 0 110 2 1 1 0 010-2zm-4-9.6l5.5 3.6-5.5 3.6V13.5H6.75a.75.75 0 01-.102-1.493L6.75 12h4.75V9.15zm6-6.9h-4v1h4v-1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M7.05 3a1.339 1.339 0 00-.05.38V4.5H4.5c-.8 0-1.423.576-1.493 1.352L3 6v14.5c0 .8.576 1.423 1.352 1.493L4.5 22h2.75c.167.458.403.882.708 1.27l.192.23H4.5a3.01 3.01 0 01-2.995-2.824L1.5 20.5V6a3.01 3.01 0 012.824-2.995L4.5 3h2.55zM19.5.5a3.01 3.01 0 012.995 2.824l.005.176v17a3.01 3.01 0 01-2.824 2.995l-.176.005h-8a3.01 3.01 0 01-2.995-2.824L8.5 20.5V15H10v5.5c0 .8.576 1.423 1.352 1.493L11.5 22h8c.8 0 1.423-.576 1.493-1.352L21 20.5v-17c0-.8-.576-1.423-1.352-1.493L19.5 2h-2v1.5h-4V2h-2c-.8 0-1.423.576-1.493 1.352L10 3.5v7H8.5v-7A3.01 3.01 0 0111.324.505L11.5.5h8zm-4 18a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm-4-9.35l5.5 3.6-5.5 3.6V13.5H6.75c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L6.75 12h4.75V9.15z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceReplacementMobilephone.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3999.4adc5a17.js b/pr-preview/pr-186/assets/js/3999.4adc5a17.js new file mode 100644 index 000000000..c427a67be --- /dev/null +++ b/pr-preview/pr-186/assets/js/3999.4adc5a17.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 3999; +exports.ids = [3999]; +exports.modules = { + +/***/ 13999: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_photo_camera: () => (/* binding */ DevicePhotoCamera) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DevicePhotoCamera = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20 6.25h-2.25l-1.5-2.5h-8.5l-1.5 2.5H4A2.245 2.245 0 001.75 8.5V17A2.245 2.245 0 004 19.25h16A2.245 2.245 0 0022.25 17V8.5A2.245 2.245 0 0020 6.25zm-8 9.42a3.67 3.67 0 110-7.34 3.67 3.67 0 010 7.34zm7-5.17a1 1 0 110-2 1 1 0 010 2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.7 3l1.5 2.5H20a3.01 3.01 0 012.995 2.824L23 8.5V17a3.01 3.01 0 01-2.824 2.995L20 20H4a3.01 3.01 0 01-2.995-2.824L1 17V8.5a3.01 3.01 0 012.824-2.995L4 5.5h1.85L7.35 3h9.35zm-.9 1.5H8.15L6.65 7H4c-.8 0-1.423.576-1.493 1.352L2.5 8.5V17c0 .8.576 1.423 1.352 1.493L4 18.5h16c.8 0 1.423-.576 1.493-1.352L21.5 17V8.5c0-.8-.576-1.423-1.352-1.493L20 7h-2.7l-1.5-2.5zM12 7c2.75 0 5 2.25 5 5s-2.25 5-5 5-5-2.25-5-5 2.25-5 5-5zm0 1.5c-1.95 0-3.5 1.55-3.5 3.5s1.55 3.5 3.5 3.5 3.5-1.55 3.5-3.5-1.55-3.5-3.5-3.5zm7 0a1 1 0 110 2 1 1 0 010-2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DevicePhotoCamera.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3b50cea1.68981a5e.js b/pr-preview/pr-186/assets/js/3b50cea1.68981a5e.js new file mode 100644 index 000000000..c774bb77c --- /dev/null +++ b/pr-preview/pr-186/assets/js/3b50cea1.68981a5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21117],{85298:e=>{e.exports=JSON.parse('{"tag":{"label":"grafana","permalink":"/docs-next/pr-preview/pr-186/docs/tags/grafana","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/observability/kubernetes-logging-with-loki","title":"CCE Logging with Grafana Loki & Promtail","description":"In this blueprint, we\'ll consolidate all the logs generated in our Kubernetes cluster into a neat, real-time dashboard in Grafana.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3d7fd578.4f5b9752.js b/pr-preview/pr-186/assets/js/3d7fd578.4f5b9752.js new file mode 100644 index 000000000..4e5f8aae6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3d7fd578.4f5b9752.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[21613],{30225:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=s(74848),i=s(28453);const a={id:"routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer",title:"Routing Traffic to Backend Servers in the Same VPC as the Load Balancer",tags:["vpc","elb","load-balancing"]},t="Routing Traffic to Backend Servers in the Same VPC as the Load Balancer",c={id:"best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer",title:"Routing Traffic to Backend Servers in the Same VPC as the Load Balancer",description:"You can route traffic to backend servers in the VPC where the load balancer is running.",source:"@site/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer.md",sourceDirName:"best-practices/networking/elastic-load-balancing",slug:"/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer.md",tags:[{inline:!0,label:"vpc",permalink:"/docs-next/pr-preview/pr-186/docs/tags/vpc"},{inline:!0,label:"elb",permalink:"/docs-next/pr-preview/pr-186/docs/tags/elb"},{inline:!0,label:"load-balancing",permalink:"/docs-next/pr-preview/pr-186/docs/tags/load-balancing"}],version:"current",frontMatter:{id:"routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer",title:"Routing Traffic to Backend Servers in the Same VPC as the Load Balancer",tags:["vpc","elb","load-balancing"]},sidebar:"bestPracticesSidebar",previous:{title:"Using Advanced Forwarding for Application Iteration",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iteration"},next:{title:"Routing Traffic to Backend Servers in Different VPCs from the Load Balancer",permalink:"/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancer"}},d={},l=[{value:"Solution Design",id:"solution-design",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Procedure",id:"procedure",level:3},{value:"Creating a VPC",id:"creating-a-vpc",level:2},{value:"Creating an ECS",id:"creating-an-ecs",level:2},{value:"Creating a Dedicated Load Balancer and Adding an HTTP Listener and a Backend Server Group to the Load Balancer",id:"creating-a-dedicated-load-balancer-and-adding-an-http-listener-and-a-backend-server-group-to-the-load-balancer",level:2},{value:"Adding the ECS to the Backend Server Group",id:"adding-the-ecs-to-the-backend-server-group",level:2},{value:"Verifying Traffic Routing",id:"verifying-traffic-routing",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer",children:"Routing Traffic to Backend Servers in the Same VPC as the Load Balancer"}),"\n",(0,r.jsx)(n.p,{children:"You can route traffic to backend servers in the VPC where the load balancer is running."}),"\n",(0,r.jsx)(n.h2,{id:"solution-design",children:"Solution Design"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["A dedicated load balancer ",(0,r.jsx)(n.code,{children:"ELB-Test"})," is running in a VPC named\n",(0,r.jsx)(n.code,{children:"vpc-Test"})," (",(0,r.jsx)(n.code,{children:"10.1.0.0/16"}),")."]}),"\n",(0,r.jsxs)(n.li,{children:["The backend server ",(0,r.jsx)(n.code,{children:"ECS-Test"})," is also running in ",(0,r.jsx)(n.code,{children:"vpc-Test"}),"\n(",(0,r.jsx)(n.code,{children:"10.1.0.0/16"}),")."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ECS-Test"})," needs to be added to the backend server group\nassociated with ",(0,r.jsx)(n.code,{children:"ELB-Test"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 1 Adding a backend server in the same VPC as the load\nbalancer",src:s(29867).A+"",width:"656",height:"521"})}),"\n",(0,r.jsx)(n.admonition,{title:"Advantages",type:"note",children:(0,r.jsx)(n.p,{children:"You can add servers in the same VPC as the load balancer to the backend\nserver group of the load balancer and then route incoming traffic to the\nservers."})}),"\n",(0,r.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["To calculate the fees you can visit Open Telekom Cloud ",(0,r.jsx)(n.a,{href:"https://open-telekom-cloud.com/en/prices/price-calculator",children:"Price\ncalculator"}),"."]})}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Resource Type"}),(0,r.jsx)(n.th,{children:"Resource Name"}),(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"Quantity"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"VPC"}),(0,r.jsx)(n.td,{children:"vpc-Test"}),(0,r.jsxs)(n.td,{children:["The VPC where ELB-Test and ECS-Test are running: ",(0,r.jsx)(n.code,{children:"10.1.0.0/16"})]}),(0,r.jsx)(n.td,{children:"1"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ELB"}),(0,r.jsx)(n.td,{children:"ELB-Test"}),(0,r.jsx)(n.td,{children:"The dedicated load balancer named ELB-Test"}),(0,r.jsx)(n.td,{children:"1"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"EIP"}),(0,r.jsx)(n.td,{children:"EIP-Test"}),(0,r.jsx)(n.td,{children:"The EIP bound to ELB-Test"}),(0,r.jsx)(n.td,{children:"1"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ECS"}),(0,r.jsx)(n.td,{children:"ECS-Test"}),(0,r.jsx)(n.td,{children:"The ECS works in vpc-Test"}),(0,r.jsx)(n.td,{children:"1"})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Table 1"})," Resource planning"]}),"\n",(0,r.jsx)(n.h3,{id:"procedure",children:"Procedure"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 2 Process for adding backend servers in the same VPC as the\nload balancer",src:s(74328).A+"",width:"673",height:"570"})}),"\n",(0,r.jsx)(n.h2,{id:"creating-a-vpc",children:"Creating a VPC"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Log in to the management console."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Under ",(0,r.jsx)(n.em,{children:"Networking"}),", select ",(0,r.jsx)(n.em,{children:"Virtual Private Cloud"}),". On the\n",(0,r.jsx)(n.em,{children:"Virtual Private Cloud"})," page displayed, click ",(0,r.jsx)(n.em,{children:"Create VPC"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Configure the parameters as follows and click ",(0,r.jsx)(n.em,{children:"Create Now"}),". For\ndetails on how to create a VPC, see the ",(0,r.jsx)(n.a,{href:"https://docs.otc.t-systems.com/virtual-private-cloud/umn/vpc_and_subnet/vpc/creating_a_vpc.html",children:"Virtual Private Cloud User\nGuide"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Name"}),": ",(0,r.jsx)(n.code,{children:"vpc-Test"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"IPv4 CIDR Block"}),": ",(0,r.jsx)(n.code,{children:"10.1.0.0/16"})]}),"\n",(0,r.jsx)(n.li,{children:"Configure other parameters as required."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 3 Creating\nvpc-Test",src:s(13547).A+"",width:"1192",height:"621"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"creating-an-ecs",children:"Creating an ECS"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Under ",(0,r.jsx)(n.em,{children:"Computing"}),", click ",(0,r.jsx)(n.em,{children:"Elastic Cloud Server"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the upper right corner, click ",(0,r.jsx)(n.em,{children:"Create ECS"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Configure the parameters as required. For details, see ",(0,r.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-cloud-server/umn/getting_started/creating_an_ecs/overview.html",children:"Elastic\nCloud Server User\nGuide"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["Select ",(0,r.jsx)(n.em,{children:"vpc-Test"})," for VPC and set ",(0,r.jsx)(n.em,{children:"Name"})," to ",(0,r.jsx)(n.code,{children:"ECS-Test"}),"."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 6 Creating\nECS-Test",src:s(99728).A+"",width:"1020",height:"263"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Deploy Nginx on the ECS."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 7 Deploying Nginx on\nECS-Test",src:s(68370).A+"",width:"1027",height:"386"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"creating-a-dedicated-load-balancer-and-adding-an-http-listener-and-a-backend-server-group-to-the-load-balancer",children:"Creating a Dedicated Load Balancer and Adding an HTTP Listener and a Backend Server Group to the Load Balancer"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Under ",(0,r.jsx)(n.em,{children:"Networking"}),", click ",(0,r.jsx)(n.em,{children:"Elastic Load Balance"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the upper right corner, click ",(0,r.jsx)(n.em,{children:"Create Elastic Load Balancer"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Configure the parameters as follows. For details, see ",(0,r.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-load-balancing/umn/load_balancer/creating_a_dedicated_load_balancer.html",children:"Elastic Load\nBalance User\nGuide"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Type"}),": ",(0,r.jsx)(n.code,{children:"Dedicated"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"IP as a Backend"}),": ",(0,r.jsx)(n.code,{children:"Enable"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"VPC"}),": ",(0,r.jsx)(n.code,{children:"vpc-Test"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Name"}),": ",(0,r.jsx)(n.code,{children:"ELB-Test"})]}),"\n",(0,r.jsx)(n.li,{children:"Configure other parameters as required."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 8 Creating a dedicated load balancer named\nELB-Test",src:s(12024).A+"",width:"1495",height:"302"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Add an HTTP listener and a backend server group to the created\ndedicated load balancer. For details, see ",(0,r.jsx)(n.a,{href:"https://docs.otc.t-systems.com/elastic-load-balancing/umn/listener/adding_an_http_listener.html",children:"Elastic Load Balance User\nGuide"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"adding-the-ecs-to-the-backend-server-group",children:"Adding the ECS to the Backend Server Group"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Locate the dedicated load balancer and click its name ",(0,r.jsx)(n.em,{children:"ELB-Test"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["On the ",(0,r.jsx)(n.em,{children:"Listeners"})," tab page, locate the HTTP listener added to the\ndedicated load balancer and click its name."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.em,{children:"Backend Server Groups"})," tab on the right, click ",(0,r.jsx)(n.em,{children:"Add\nBackend Server"}),", configure the parameters, and click ",(0,r.jsx)(n.em,{children:"OK"}),". For\ndetails, see ",(0,r.jsx)(n.em,{children:"Elastic Load Balance User Guide"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Backend Server"}),": ",(0,r.jsx)(n.code,{children:"ECS-Test"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Backend Port"}),": the port enabled for Nginx on ",(0,r.jsx)(n.code,{children:"ECS-Test"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Weight"}),": Configure this parameter as required."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 9 Adding IP as backend\nservers",src:s(22591).A+"",width:"900",height:"374"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"verifying-traffic-routing",children:"Verifying Traffic Routing"}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsx)(n.p,{children:"EIP is not necessary as long as you don't want to access the ELB\nexternally, you can always access the ELB from its private IP."})}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Locate the dedicated load balancer ",(0,r.jsx)(n.em,{children:"ELB-Test"})," and click ",(0,r.jsx)(n.em,{children:"More"}),"\nin the ",(0,r.jsx)(n.em,{children:"Operation"})," column."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Select ",(0,r.jsx)(n.em,{children:"Bind IPv4 EIP"})," to bind an EIP to ",(0,r.jsx)(n.code,{children:"ELB-Test"}),"."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 10 EIP bound to the load\nbalancer",src:s(95778).A+"",width:"1495",height:"302"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Enter ",(0,r.jsx)(n.code,{children:"http://"})," in the address box of your browser to\naccess the dedicated load balancer. If the following page is\ndisplayed, the load balancer routes the request to ",(0,r.jsx)(n.code,{children:"ECS-Test"}),",\nwhich processes the request and returns the requested page."]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsx)(n.p,{children:"In case of unhealthy connection of the backend server group, check\nif the ECS subnet and ELB subnet are associated with the above\ncreated route tables."})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Figure 11 Verifying traffic\nrouting",src:s(67286).A+"",width:"1168",height:"699"})}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},99728:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001625299518-b0454f56094e741f720121090322ba5c.png"},13547:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001625459326-5aaa62034a5e2cafcdfd0077db7cf0eb.png"},67286:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001625459334-5bad38b7305ce0454e8f68ea28df4ef6.png"},29867:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001625619218-83d33d04b610fa59867d666153ed91b3.png"},68370:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001625619246-741946f483921ee537290435b4a18c96.png"},12024:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001673939093-2dda02ceb01b03805cd845e5018eda7f.png"},74328:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001674059073-7a35c808f8ffb70988af7b5380cdb198.png"},22591:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001674059081-bcab3ff78b7bd0989fff34661072fc7f.png"},95778:(e,n,s)=>{s.d(n,{A:()=>r});const r=s.p+"assets/images/en-us_image_0000001674259073-1b535464a0c65f080849e88518812849.png"},28453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>c});var r=s(96540);const i={},a=r.createContext(i);function t(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/3eb48f72.97c9f997.js b/pr-preview/pr-186/assets/js/3eb48f72.97c9f997.js new file mode 100644 index 000000000..9e7995f43 --- /dev/null +++ b/pr-preview/pr-186/assets/js/3eb48f72.97c9f997.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[37972],{15076:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=t(74848),a=t(28453);const s={id:"analytics",title:"Analytics"},c="Analytics",r={id:"blueprints/by-use-case/analytics/analytics",title:"Analytics",description:"In this category, you can find guidance for designing, deploying, and managing scalable analytics solutions on Open Telekom Cloud. Topics include data ingestion, transformation, and storage; real-time and batch processing architectures; tools for data visualization and business intelligence; and leveraging machine learning for predictive analytics. Here are also provided architectural patterns, case studies, and reference implementations to help organizations derive actionable insights from their data while ensuring security, cost-efficiency, and performance.",source:"@site/docs/blueprints/by-use-case/analytics/index.md",sourceDirName:"blueprints/by-use-case/analytics",slug:"/blueprints/by-use-case/analytics/",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-use-case/analytics/index.md",tags:[],version:"current",frontMatter:{id:"analytics",title:"Analytics"},sidebar:"blueprintsSidebar",previous:{title:"By Use Case",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/"},next:{title:"Deploy ClickHouse on CCE",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cce"}},o={},l=[];function d(e){const n={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"analytics",children:"Analytics"}),"\n",(0,i.jsx)(n.p,{children:"In this category, you can find guidance for designing, deploying, and managing scalable analytics solutions on Open Telekom Cloud. Topics include data ingestion, transformation, and storage; real-time and batch processing architectures; tools for data visualization and business intelligence; and leveraging machine learning for predictive analytics. Here are also provided architectural patterns, case studies, and reference implementations to help organizations derive actionable insights from their data while ensuring security, cost-efficiency, and performance."})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>r});var i=t(96540);const a={},s=i.createContext(a);function c(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4013.a44e34f9.js b/pr-preview/pr-186/assets/js/4013.a44e34f9.js new file mode 100644 index 000000000..ee8fd120a --- /dev/null +++ b/pr-preview/pr-186/assets/js/4013.a44e34f9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4013; +exports.ids = [4013]; +exports.modules = { + +/***/ 24013: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_girl: () => (/* binding */ UserFileGirl) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileGirl = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.561 19.006L12 21.447l2.44-2.44h1.674c1.017 0 1.948.395 2.636 1.052.732.697.99 1.413 1.144 2.234l.037.208H4.068c.165-.99.455-1.835 1.347-2.591a3.807 3.807 0 012.239-.896l.232-.007h1.675zM20.576 4.5c.962 2.544-1.409 4.275-3.567 3.954.413.8.643 1.729.643 2.745 0 3.18-2.27 6.585-5.651 6.585-3.38 0-5.652-3.405-5.652-6.585 0-1.016.23-1.946.644-2.745-2.16.321-4.53-1.409-3.569-3.954l.065.06.112.09a2.2 2.2 0 001.238.451 2.1 2.1 0 00.598-.076l.414-.117c.412-.115.83-.185 1.39.119.64.347.935 1.217 1.065 1.795.97-.805 2.244-1.274 3.695-1.274 1.45 0 2.724.469 3.694 1.274.13-.578.424-1.448 1.064-1.795.498-.27.884-.245 1.253-.156l.552.154a2.1 2.1 0 00.598.076 2.2 2.2 0 001.238-.45l.112-.09.064-.06zM12 8.804l-.106.221c-.508.993-1.658 2.415-4.027 2.61.183 2.321 1.796 4.648 4.133 4.648 2.336 0 3.95-2.327 4.133-4.648-2.551-.21-3.688-1.843-4.133-2.83z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.561 19.006L12 21.447l2.44-2.44h1.674c1.017 0 1.948.395 2.636 1.052.732.697.99 1.413 1.144 2.234l.037.208H4.068c.165-.99.455-1.835 1.347-2.591a3.807 3.807 0 012.239-.896l.232-.007h1.675zM20.576 4.5c.962 2.544-1.409 4.275-3.567 3.954.413.8.643 1.729.643 2.745 0 3.18-2.27 6.585-5.651 6.585-3.38 0-5.652-3.405-5.652-6.585 0-1.016.23-1.946.644-2.745-2.16.321-4.53-1.409-3.569-3.954l.065.06.112.09a2.2 2.2 0 001.238.451 2.1 2.1 0 00.598-.076l.414-.117c.412-.115.83-.185 1.39.119.64.347.935 1.217 1.065 1.795.97-.805 2.244-1.274 3.695-1.274 1.45 0 2.724.469 3.694 1.274.13-.578.424-1.448 1.064-1.795.498-.27.884-.245 1.253-.156l.552.154a2.1 2.1 0 00.598.076 2.2 2.2 0 001.238-.45l.112-.09.064-.06zM12 8.804l-.106.221c-.508.993-1.658 2.415-4.027 2.61.183 2.321 1.796 4.648 4.133 4.648 2.336 0 3.95-2.327 4.133-4.648-2.551-.21-3.688-1.843-4.133-2.83z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileGirl.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/40291.aaa78bd4.js b/pr-preview/pr-186/assets/js/40291.aaa78bd4.js new file mode 100644 index 000000000..ab6c5eec2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/40291.aaa78bd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[40291],{40291:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_device_watch:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M17.19 20.875l-.08.3a2.5 2.5 0 01-2.234 1.82L14.7 23H9.3a2.5 2.5 0 01-2.357-1.657l-.053-.168-.08-.3h10.38zM15.97 3.5a4 4 0 013.995 3.8l.005.2v9a4 4 0 01-3.8 3.995l-.2.005H8.03a4 4 0 01-3.995-3.8l-.005-.2v-9a4 4 0 013.8-3.995l.2-.005h7.94zm5.53 7v3h-1.05v-3h1.05zM14.7.955a2.5 2.5 0 012.357 1.657l.053.168.08.3H6.81l.08-.3A2.5 2.5 0 019.124.96L9.3.956h5.4z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M21.5 10.5H20v-3c0-1.75-1.1-3.2-2.65-3.75l-.25-.9C16.8 1.75 15.8 1 14.7 1H9.3c-1.1 0-2.1.75-2.4 1.8l-.25.9C5.1 4.3 4 5.75 4 7.5v9c0 1.75 1.1 3.2 2.65 3.75l.25.9c.3 1.1 1.3 1.8 2.4 1.8h5.4c1.1 0 2.1-.75 2.4-1.8l.25-.9A4.004 4.004 0 0020 16.5v-3h1.5v-3zm-3 6c0 1.4-1.1 2.5-2.5 2.5H8c-1.4 0-2.5-1.1-2.5-2.5v-9C5.5 6.1 6.6 5 8 5h8c1.4 0 2.5 1.1 2.5 2.5v9z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4032.eb63e167.js b/pr-preview/pr-186/assets/js/4032.eb63e167.js new file mode 100644 index 000000000..30a63b06d --- /dev/null +++ b/pr-preview/pr-186/assets/js/4032.eb63e167.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4032; +exports.ids = [4032]; +exports.modules = { + +/***/ 34032: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_biometric: () => (/* binding */ ContentBiometric) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentBiometric = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.1 9.95c1.1 0 2.25.4 3.3 1.15.28.2.528.432.744.67l.156.18c.311.356.622.711 1.144 1.067l.206.133c.85.6 1.95 1 3.25 1.35.45.15.65.55.55.95-.1.4-.5.65-.9.55-1.5-.4-2.7-.9-3.7-1.55a8.522 8.522 0 01-1.127-.925L15.2 13l-.282-.294c-.09-.093-.18-.18-.273-.255l-.145-.101c-.75-.55-1.6-.85-2.4-.85-.85 0-1.65.3-2.3.85-1.55 1.3-1.75 3.5-.5 5.25.55.75 1.5 1.7 2.45 2.45.7.55 1.5 1.05 2.35 1.5.35.2.5.65.3 1s-.65.5-1 .3c-.95-.45-1.8-1-2.6-1.65-1.1-.8-2.1-1.85-2.75-2.75C6.3 16 6.6 13 8.8 11.15c.95-.75 2.1-1.2 3.3-1.2zm0-2.95c1.45 0 2.9.4 4.25 1.15a7.53 7.53 0 011.527 1.177l.838.835.243.226c.536.476 1.164.86 2.392 1.112.4.1.65.5.65.85-.1.4-.5.7-.9.6-1.76-.368-2.648-1.004-3.351-1.689l-.229-.23-.22-.231c-.5-.5-.95-.95-1.7-1.4-1.1-.6-2.35-.95-3.5-.95-1.55 0-3.05.55-4.25 1.55-2.683 2.293-3.13 6.06-1.153 9.075l.153.225c.394.613.94 1.225 1.574 1.837l.276.263c.3.25.35.75.05 1.05-.3.3-.75.35-1.05.05-.8-.75-1.5-1.55-2.05-2.3C3 16.55 3.5 11.75 6.9 8.9 8.35 7.7 10.2 7 12.1 7zm-1.35 6.5c.95-.85 2.3-.65 3.25.45.45.55.8.95 1.4 1.4 1.35 1 2.8 1.55 4.35 2 .4.15.65.55.55.95-.15.4-.55.6-.95.5l-.94-.295-.432-.146A12.556 12.556 0 0114.6 16.6l-.506-.438c-.113-.1-.228-.205-.352-.324l-.192-.188-.403-.47-.247-.296-.1-.134c-.25-.3-.75-.4-1.1-.1-.3.3-.35.75-.1 1.05.525.656 1.05 1.236 1.709 1.773l.291.227c.93.75 1.95 1.284 2.768 1.645l.391.167.35.138.541.2c.35.15.6.55.45.95-.15.35-.55.6-.95.45l-.234-.08-.29-.107-.338-.131-.185-.076-.398-.17-.43-.198A14.686 14.686 0 0112.65 18.9c-.85-.65-1.65-1.5-2.15-2.15-.85-1.15-.75-2.4.25-3.25zM12.1 4c3.35 0 6.55 1.5 8.85 4.15.25.3.2.8-.1 1.05-.3.25-.8.2-1.05-.1-2-2.3-4.75-3.6-7.65-3.6-2.138 0-4.23.767-5.934 2.087L5.95 7.8c-.6.45-1.1 1-1.55 1.6-.23.275-.668.382-.971.167L3.35 9.5c-.35-.25-.4-.7-.15-1.05.5-.65 1.1-1.3 1.75-1.85C6.95 4.9 9.5 4 12.1 4zm0-3c2.3 0 4.55.55 6.65 1.65.35.2.5.65.3 1-.183.32-.577.474-.91.343l-.09-.043C16.2 3 14.2 2.5 12.15 2.5 10.05 2.5 8 3 6.2 4c-.4.15-.85.05-1.05-.35-.2-.35-.05-.8.3-1C7.5 1.55 9.8 1 12.1 1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.1 9.95c1.1 0 2.25.4 3.3 1.15.28.2.528.432.744.67l.156.18c.311.356.622.711 1.144 1.067l.206.133c.85.6 1.95 1 3.25 1.35.45.15.65.55.55.95-.1.4-.5.65-.9.55-1.5-.4-2.7-.9-3.7-1.55a8.522 8.522 0 01-1.127-.925L15.2 13l-.282-.294c-.09-.093-.18-.18-.273-.255l-.145-.101c-.75-.55-1.6-.85-2.4-.85-.85 0-1.65.3-2.3.85-1.55 1.3-1.75 3.5-.5 5.25.55.75 1.5 1.7 2.45 2.45.7.55 1.5 1.05 2.35 1.5.35.2.5.65.3 1s-.65.5-1 .3c-.95-.45-1.8-1-2.6-1.65-1.1-.8-2.1-1.85-2.75-2.75C6.3 16 6.6 13 8.8 11.15c.95-.75 2.1-1.2 3.3-1.2zm0-2.95c1.45 0 2.9.4 4.25 1.15a7.53 7.53 0 011.527 1.177l.838.835.243.226c.536.476 1.164.86 2.392 1.112.4.1.65.5.65.85-.1.4-.5.7-.9.6-1.76-.368-2.648-1.004-3.351-1.689l-.229-.23-.22-.231c-.5-.5-.95-.95-1.7-1.4-1.1-.6-2.35-.95-3.5-.95-1.55 0-3.05.55-4.25 1.55-2.683 2.293-3.13 6.06-1.153 9.075l.153.225c.394.613.94 1.225 1.574 1.837l.276.263c.3.25.35.75.05 1.05-.3.3-.75.35-1.05.05-.8-.75-1.5-1.55-2.05-2.3C3 16.55 3.5 11.75 6.9 8.9 8.35 7.7 10.2 7 12.1 7zm-1.35 6.5c.95-.85 2.3-.65 3.25.45.45.55.8.95 1.4 1.4 1.35 1 2.8 1.55 4.35 2 .4.15.65.55.55.95-.15.4-.55.6-.95.5l-.94-.295-.432-.146A12.556 12.556 0 0114.6 16.6l-.506-.438c-.113-.1-.228-.205-.352-.324l-.192-.188-.403-.47-.247-.296-.1-.134c-.25-.3-.75-.4-1.1-.1-.3.3-.35.75-.1 1.05.525.656 1.05 1.236 1.709 1.773l.291.227c.93.75 1.95 1.284 2.768 1.645l.391.167.35.138.541.2c.35.15.6.55.45.95-.15.35-.55.6-.95.45l-.234-.08-.29-.107-.338-.131-.185-.076-.398-.17-.43-.198A14.686 14.686 0 0112.65 18.9c-.85-.65-1.65-1.5-2.15-2.15-.85-1.15-.75-2.4.25-3.25zM12.1 4c3.35 0 6.55 1.5 8.85 4.15.25.3.2.8-.1 1.05-.3.25-.8.2-1.05-.1-2-2.3-4.75-3.6-7.65-3.6-2.138 0-4.23.767-5.934 2.087L5.95 7.8c-.6.45-1.1 1-1.55 1.6-.23.275-.668.382-.971.167L3.35 9.5c-.35-.25-.4-.7-.15-1.05.5-.65 1.1-1.3 1.75-1.85C6.95 4.9 9.5 4 12.1 4zm0-3c2.3 0 4.55.55 6.65 1.65.35.2.5.65.3 1-.183.32-.577.474-.91.343l-.09-.043C16.2 3 14.2 2.5 12.15 2.5 10.05 2.5 8 3 6.2 4c-.4.15-.85.05-1.05-.35-.2-.35-.05-.8.3-1C7.5 1.55 9.8 1 12.1 1z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentBiometric.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/40410.717f3de9.js b/pr-preview/pr-186/assets/js/40410.717f3de9.js new file mode 100644 index 000000000..42488a119 --- /dev/null +++ b/pr-preview/pr-186/assets/js/40410.717f3de9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[40410],{40410:(l,e,t)=>{t.r(e),t.d(e,{scale_icon_device_mobile_services:()=>s});var i=t(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M11.5.5a3 3 0 012.995 2.824l.005.176v1l-.165.855-.18 1-.845-.585-.685-.5-2.26 2.26-.59.595.475.685.57.855L9 10v4l.83.2 1 .185-1.055 1.53 2.85 2.85.685-.5.845-.585.18 1 .165.82v1a3 3 0 01-2.824 2.995l-.176.005h-8a3 3 0 01-2.995-2.824L.5 20.5v-17A3 3 0 013.324.505L3.5.5h8zm-4 17.75a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0 .5a1 1 0 110 2 1 1 0 010-2zM17.685 5.5L18 7.135a.595.595 0 00.816.41L18.9 7.5l1.375-.93 1.67 1.67L21 9.605a.59.59 0 00.279.867l.091.028 1.635.32v2.38l-1.635.3a.59.59 0 00-.415.81l.045.085.935 1.38-1.67 1.67L18.9 16.5a.595.595 0 00-.871.279L18 16.87l-.315 1.63H15.32l-.295-1.615a.595.595 0 00-.833-.434l-.087.049-1.38.93-1.67-1.67.945-1.365a.59.59 0 00-.268-.908l-.097-.027-1.63-.3V10.8l1.63-.3a.59.59 0 00.41-.811L12 9.605l-.93-1.365 1.67-1.67 1.365.94a.59.59 0 00.894-.284l.026-.096.295-1.63h2.365zM16.5 10a2 2 0 100 4 2 2 0 000-4zm-7-7.75h-4v1h4v-1z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M11.5.5a3.01 3.01 0 012.995 2.824l.005.176v.75c-.4.12-.8.24-1.2.411L13 4.8V3.5c0-.8-.576-1.423-1.352-1.493L11.5 2h-2v1.5h-4V2h-2c-.8 0-1.423.576-1.493 1.352L2 3.5v17c0 .8.576 1.423 1.352 1.493L3.5 22h8c.8 0 1.423-.576 1.493-1.352L13 20.5v-1.3c.4.2.8.336 1.2.46l.3.09v.75a3.01 3.01 0 01-2.824 2.995l-.176.005h-8a3.01 3.01 0 01-2.995-2.824L.5 20.5v-17A3.01 3.01 0 013.324.505L3.5.5h8zm-4 18a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm7.85-13h2.35l.3 1.6c.046.418.48.62.823.447L18.9 7.5l1.35-.9 1.65 1.65-.95 1.35a.617.617 0 00.311.87l.089.03 1.65.35v2.35l-1.65.3c-.371.046-.57.48-.397.823L21 14.4l.85 1.3-1.65 1.65-1.35-.95a.617.617 0 00-.87.311l-.03.089-.3 1.65H15.3L15 16.8a.566.566 0 00-.823-.447l-.077.047-1.35.95-1.65-1.65.95-1.35a.617.617 0 00-.311-.87l-.089-.03-1.65-.3V10.8l1.65-.3a.566.566 0 00.447-.823L12.05 9.6l-.95-1.35 1.65-1.65 1.35.95a.617.617 0 00.87-.311L15 7.15l.35-1.65zM16.5 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4099.17828e66.js b/pr-preview/pr-186/assets/js/4099.17828e66.js new file mode 100644 index 000000000..f84bb9d8a --- /dev/null +++ b/pr-preview/pr-186/assets/js/4099.17828e66.js @@ -0,0 +1,5302 @@ +"use strict"; +exports.id = 4099; +exports.ids = [4099]; +exports.modules = { + +/***/ 89971: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ _: () => (/* binding */ _typeof), +/* harmony export */ a: () => (/* binding */ addMilliseconds), +/* harmony export */ b: () => (/* binding */ toDate), +/* harmony export */ c: () => (/* binding */ getTimezoneOffsetInMilliseconds), +/* harmony export */ d: () => (/* binding */ assign), +/* harmony export */ g: () => (/* binding */ getDefaultOptions), +/* harmony export */ l: () => (/* binding */ locale), +/* harmony export */ r: () => (/* binding */ requiredArgs), +/* harmony export */ t: () => (/* binding */ toInteger) +/* harmony export */ }); +function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, _typeof(o); +} + +function toInteger(dirtyNumber) { + if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { + return NaN; + } + var number = Number(dirtyNumber); + if (isNaN(number)) { + return number; + } + return number < 0 ? Math.ceil(number) : Math.floor(number); +} + +function requiredArgs(required, args) { + if (args.length < required) { + throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); + } +} + +/** + * @name toDate + * @category Common Helpers + * @summary Convert the given argument to an instance of Date. + * + * @description + * Convert the given argument to an instance of Date. + * + * If the argument is an instance of Date, the function returns its clone. + * + * If the argument is a number, it is treated as a timestamp. + * + * If the argument is none of the above, the function returns Invalid Date. + * + * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. + * + * @param {Date|Number} argument - the value to convert + * @returns {Date} the parsed date in the local time zone + * @throws {TypeError} 1 argument required + * + * @example + * // Clone the date: + * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) + * //=> Tue Feb 11 2014 11:30:30 + * + * @example + * // Convert the timestamp to date: + * const result = toDate(1392098430000) + * //=> Tue Feb 11 2014 11:30:30 + */ +function toDate(argument) { + requiredArgs(1, arguments); + var argStr = Object.prototype.toString.call(argument); + + // Clone the date + if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') { + // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + } else if (typeof argument === 'number' || argStr === '[object Number]') { + return new Date(argument); + } else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"); + // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + +/** + * @name addMilliseconds + * @category Millisecond Helpers + * @summary Add the specified number of milliseconds to the given date. + * + * @description + * Add the specified number of milliseconds to the given date. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. + * @returns {Date} the new date with the milliseconds added + * @throws {TypeError} 2 arguments required + * + * @example + * // Add 750 milliseconds to 10 July 2014 12:45:30.000: + * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) + * //=> Thu Jul 10 2014 12:45:30.750 + */ +function addMilliseconds(dirtyDate, dirtyAmount) { + requiredArgs(2, arguments); + var timestamp = toDate(dirtyDate).getTime(); + var amount = toInteger(dirtyAmount); + return new Date(timestamp + amount); +} + +var defaultOptions = {}; +function getDefaultOptions() { + return defaultOptions; +} + +/** + * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. + * They usually appear for dates that denote time before the timezones were introduced + * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 + * and GMT+01:00:00 after that date) + * + * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, + * which would lead to incorrect calculations. + * + * This function returns the timezone offset in milliseconds that takes seconds in account. + */ +function getTimezoneOffsetInMilliseconds(date) { + var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); + utcDate.setUTCFullYear(date.getFullYear()); + return date.getTime() - utcDate.getTime(); +} + +var formatDistanceLocale = { + lessThanXSeconds: { + one: 'less than a second', + other: 'less than {{count}} seconds' + }, + xSeconds: { + one: '1 second', + other: '{{count}} seconds' + }, + halfAMinute: 'half a minute', + lessThanXMinutes: { + one: 'less than a minute', + other: 'less than {{count}} minutes' + }, + xMinutes: { + one: '1 minute', + other: '{{count}} minutes' + }, + aboutXHours: { + one: 'about 1 hour', + other: 'about {{count}} hours' + }, + xHours: { + one: '1 hour', + other: '{{count}} hours' + }, + xDays: { + one: '1 day', + other: '{{count}} days' + }, + aboutXWeeks: { + one: 'about 1 week', + other: 'about {{count}} weeks' + }, + xWeeks: { + one: '1 week', + other: '{{count}} weeks' + }, + aboutXMonths: { + one: 'about 1 month', + other: 'about {{count}} months' + }, + xMonths: { + one: '1 month', + other: '{{count}} months' + }, + aboutXYears: { + one: 'about 1 year', + other: 'about {{count}} years' + }, + xYears: { + one: '1 year', + other: '{{count}} years' + }, + overXYears: { + one: 'over 1 year', + other: 'over {{count}} years' + }, + almostXYears: { + one: 'almost 1 year', + other: 'almost {{count}} years' + } +}; +var formatDistance = function formatDistance(token, count, options) { + var result; + var tokenValue = formatDistanceLocale[token]; + if (typeof tokenValue === 'string') { + result = tokenValue; + } else if (count === 1) { + result = tokenValue.one; + } else { + result = tokenValue.other.replace('{{count}}', count.toString()); + } + if (options !== null && options !== void 0 && options.addSuffix) { + if (options.comparison && options.comparison > 0) { + return 'in ' + result; + } else { + return result + ' ago'; + } + } + return result; +}; + +function buildFormatLongFn(args) { + return function () { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + // TODO: Remove String() + var width = options.width ? String(options.width) : args.defaultWidth; + var format = args.formats[width] || args.formats[args.defaultWidth]; + return format; + }; +} + +var dateFormats = { + full: 'EEEE, MMMM do, y', + long: 'MMMM do, y', + medium: 'MMM d, y', + short: 'MM/dd/yyyy' +}; +var timeFormats = { + full: 'h:mm:ss a zzzz', + long: 'h:mm:ss a z', + medium: 'h:mm:ss a', + short: 'h:mm a' +}; +var dateTimeFormats = { + full: "{{date}} 'at' {{time}}", + long: "{{date}} 'at' {{time}}", + medium: '{{date}}, {{time}}', + short: '{{date}}, {{time}}' +}; +var formatLong = { + date: buildFormatLongFn({ + formats: dateFormats, + defaultWidth: 'full' + }), + time: buildFormatLongFn({ + formats: timeFormats, + defaultWidth: 'full' + }), + dateTime: buildFormatLongFn({ + formats: dateTimeFormats, + defaultWidth: 'full' + }) +}; + +var formatRelativeLocale = { + lastWeek: "'last' eeee 'at' p", + yesterday: "'yesterday at' p", + today: "'today at' p", + tomorrow: "'tomorrow at' p", + nextWeek: "eeee 'at' p", + other: 'P' +}; +var formatRelative = function formatRelative(token, _date, _baseDate, _options) { + return formatRelativeLocale[token]; +}; + +function buildLocalizeFn(args) { + return function (dirtyIndex, options) { + var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone'; + var valuesArray; + if (context === 'formatting' && args.formattingValues) { + var defaultWidth = args.defaultFormattingWidth || args.defaultWidth; + var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth; + valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; + } else { + var _defaultWidth = args.defaultWidth; + var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth; + valuesArray = args.values[_width] || args.values[_defaultWidth]; + } + var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; + // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it! + return valuesArray[index]; + }; +} + +var eraValues = { + narrow: ['B', 'A'], + abbreviated: ['BC', 'AD'], + wide: ['Before Christ', 'Anno Domini'] +}; +var quarterValues = { + narrow: ['1', '2', '3', '4'], + abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], + wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] +}; + +// Note: in English, the names of days of the week and months are capitalized. +// If you are making a new locale based on this one, check if the same is true for the language you're working on. +// Generally, formatted dates should look like they are in the middle of a sentence, +// e.g. in Spanish language the weekdays and months should be in the lowercase. +var monthValues = { + narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] +}; +var dayValues = { + narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] +}; +var dayPeriodValues = { + narrow: { + am: 'a', + pm: 'p', + midnight: 'mi', + noon: 'n', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'midnight', + noon: 'noon', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' + }, + wide: { + am: 'a.m.', + pm: 'p.m.', + midnight: 'midnight', + noon: 'noon', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' + } +}; +var formattingDayPeriodValues = { + narrow: { + am: 'a', + pm: 'p', + midnight: 'mi', + noon: 'n', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'midnight', + noon: 'noon', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' + }, + wide: { + am: 'a.m.', + pm: 'p.m.', + midnight: 'midnight', + noon: 'noon', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' + } +}; +var ordinalNumber = function ordinalNumber(dirtyNumber, _options) { + var number = Number(dirtyNumber); + + // If ordinal numbers depend on context, for example, + // if they are different for different grammatical genders, + // use `options.unit`. + // + // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', + // 'day', 'hour', 'minute', 'second'. + + var rem100 = number % 100; + if (rem100 > 20 || rem100 < 10) { + switch (rem100 % 10) { + case 1: + return number + 'st'; + case 2: + return number + 'nd'; + case 3: + return number + 'rd'; + } + } + return number + 'th'; +}; +var localize = { + ordinalNumber: ordinalNumber, + era: buildLocalizeFn({ + values: eraValues, + defaultWidth: 'wide' + }), + quarter: buildLocalizeFn({ + values: quarterValues, + defaultWidth: 'wide', + argumentCallback: function argumentCallback(quarter) { + return quarter - 1; + } + }), + month: buildLocalizeFn({ + values: monthValues, + defaultWidth: 'wide' + }), + day: buildLocalizeFn({ + values: dayValues, + defaultWidth: 'wide' + }), + dayPeriod: buildLocalizeFn({ + values: dayPeriodValues, + defaultWidth: 'wide', + formattingValues: formattingDayPeriodValues, + defaultFormattingWidth: 'wide' + }) +}; + +function buildMatchFn(args) { + return function (string) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var width = options.width; + var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; + var matchResult = string.match(matchPattern); + if (!matchResult) { + return null; + } + var matchedString = matchResult[0]; + var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; + var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) { + return pattern.test(matchedString); + }) : findKey(parsePatterns, function (pattern) { + return pattern.test(matchedString); + }); + var value; + value = args.valueCallback ? args.valueCallback(key) : key; + value = options.valueCallback ? options.valueCallback(value) : value; + var rest = string.slice(matchedString.length); + return { + value: value, + rest: rest + }; + }; +} +function findKey(object, predicate) { + for (var key in object) { + if (object.hasOwnProperty(key) && predicate(object[key])) { + return key; + } + } + return undefined; +} +function findIndex(array, predicate) { + for (var key = 0; key < array.length; key++) { + if (predicate(array[key])) { + return key; + } + } + return undefined; +} + +function buildMatchPatternFn(args) { + return function (string) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var matchResult = string.match(args.matchPattern); + if (!matchResult) return null; + var matchedString = matchResult[0]; + var parseResult = string.match(args.parsePattern); + if (!parseResult) return null; + var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; + value = options.valueCallback ? options.valueCallback(value) : value; + var rest = string.slice(matchedString.length); + return { + value: value, + rest: rest + }; + }; +} + +var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; +var parseOrdinalNumberPattern = /\d+/i; +var matchEraPatterns = { + narrow: /^(b|a)/i, + abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, + wide: /^(before christ|before common era|anno domini|common era)/i +}; +var parseEraPatterns = { + any: [/^b/i, /^(a|c)/i] +}; +var matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^q[1234]/i, + wide: /^[1234](th|st|nd|rd)? quarter/i +}; +var parseQuarterPatterns = { + any: [/1/i, /2/i, /3/i, /4/i] +}; +var matchMonthPatterns = { + narrow: /^[jfmasond]/i, + abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, + wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i +}; +var parseMonthPatterns = { + narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i], + any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i] +}; +var matchDayPatterns = { + narrow: /^[smtwf]/i, + short: /^(su|mo|tu|we|th|fr|sa)/i, + abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, + wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i +}; +var parseDayPatterns = { + narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], + any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] +}; +var matchDayPeriodPatterns = { + narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, + any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i +}; +var parseDayPeriodPatterns = { + any: { + am: /^a/i, + pm: /^p/i, + midnight: /^mi/i, + noon: /^no/i, + morning: /morning/i, + afternoon: /afternoon/i, + evening: /evening/i, + night: /night/i + } +}; +var match = { + ordinalNumber: buildMatchPatternFn({ + matchPattern: matchOrdinalNumberPattern, + parsePattern: parseOrdinalNumberPattern, + valueCallback: function valueCallback(value) { + return parseInt(value, 10); + } + }), + era: buildMatchFn({ + matchPatterns: matchEraPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseEraPatterns, + defaultParseWidth: 'any' + }), + quarter: buildMatchFn({ + matchPatterns: matchQuarterPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseQuarterPatterns, + defaultParseWidth: 'any', + valueCallback: function valueCallback(index) { + return index + 1; + } + }), + month: buildMatchFn({ + matchPatterns: matchMonthPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseMonthPatterns, + defaultParseWidth: 'any' + }), + day: buildMatchFn({ + matchPatterns: matchDayPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseDayPatterns, + defaultParseWidth: 'any' + }), + dayPeriod: buildMatchFn({ + matchPatterns: matchDayPeriodPatterns, + defaultMatchWidth: 'any', + parsePatterns: parseDayPeriodPatterns, + defaultParseWidth: 'any' + }) +}; + +/** + * @type {Locale} + * @category Locales + * @summary English locale (United States). + * @language English + * @iso-639-2 eng + * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp} + * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss} + */ +var locale = { + code: 'en-US', + formatDistance: formatDistance, + formatLong: formatLong, + formatRelative: formatRelative, + localize: localize, + match: match, + options: { + weekStartsOn: 0 /* Sunday */, + firstWeekContainsDate: 1 + } +}; + +function assign(target, object) { + if (target == null) { + throw new TypeError('assign requires that input parameter not be null or undefined'); + } + for (var property in object) { + if (Object.prototype.hasOwnProperty.call(object, property)) { + target[property] = object[property]; + } + } + return target; +} + + + + +/***/ }), + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 64099: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_data_grid: () => (/* binding */ DataGrid) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); +/* harmony import */ var _index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(89971); + + + + + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: boolean, eg `true` +// Options +// style?: string 'switch' | 'checkbox' +// editable?: boolean = false +const CheckboxCell = { + defaults: { + sortBy: 'number', + }, + getLongestContent({ rows, columnIndex }) { + // Skip check as content width is always the same + return rows[0][columnIndex]; + }, + render: ({ field, content, component, rowIndex, columnIndex }) => { + const { style = 'checkbox', editable = false, label } = field; + const props = { + checked: content, + disabled: !editable, + label, + }; + if (editable) { + props.onScaleChange = (ev) => { + const { value } = ev.detail; + // Update rows data + component.rows[rowIndex][columnIndex] = value; + // Trigger event + component.triggerEditEvent(value, rowIndex, columnIndex); + }; + } + switch (style) { + case 'switch': + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-switch", Object.assign({ size: "small" }, props)); + default: + // 'checkbox' + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-checkbox", Object.assign({}, props)); + } + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected: date/time string, eg '10:23:00' +// TODO: see if this is even worth it. It may help with sorting/filtering? +// work out format requirements - as date/time formatting is heavy eg moment.js +// const { inputFormat, outputFormat } = field; +// inputFormat: 'HH:mm:ss', // ['timestamp', ''] +// outputFormat: 'HH:mm', +const DateCell = { + defaults: { + sortBy: 'date', + }, + render: ({ content, isAutoWidthCheck }) => { + let value = content; + // Render all digits with 8s as they're the widest + if (isAutoWidthCheck) { + value = value.replace(/[0-9]/g, '8'); + } + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: `scl-body` }, value); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: an email string (eg: 'mailto:example@domain.com) +const EmailCell = { + defaults: { + sortBy: 'text', + }, + render: ({ content }) => { + // Remove protocol (mailto:) + const emailNoProtocol = content.replace(/^mailto:/i, ''); + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-link", { href: content }, emailNoProtocol); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: number, eg 10230.32 +// Options +// style?: string 'bar' | 'progress' +// min?: number 0 +// max?: number 100 +const GraphCell = { + defaults: { + sortBy: 'number', + }, + render: ({ field, content }) => { + const { style = 'progress', min = 0, max = 100 } = field; + // Convert content to 0>100 range for progress bar + const progress = parseFloat((((content - min) / (max - min)) * 100).toPrecision(String(content).replace('.', '').length)); + // I really don't know the difference between bar and progress + switch (style) { + case 'bar': + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `tbody__bar-cell` }, + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-progress-bar", { class: "data-grid-progress-bar", "aria-hidden": "true", percentage: progress, + // showStatus={true} + mute: true }), + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: `scl-body` }, content))); + default: + // progress + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-progress-bar", { class: "data-grid-progress-bar", percentage: progress, showStatus: true, mute: true })); + } + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +var __rest$1 = ( false) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +// Expected content: a url string (eg: 'https://sample.com') +const LinkCell = { + defaults: { + sortBy: 'text', + }, + render: ({ content }) => { + if (typeof content === 'string') { + // Remove protocol (http/https) + const urlNoProtocol = content.replace(/^https?\:\/\//i, ''); + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-link", { href: content, target: "_blank" }, urlNoProtocol)); + } + else { + // if the type of content is not a string, the content is handled as + // object of text and props (spread) which are passed as attributes to + // the scale-link element + const { text } = content, props = __rest$1(content, ["text"]); + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-link", Object.assign({}, props), text); + } + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: HTMLElement +const HTMLCell = { + defaults: {}, + getLongestContent({ rows, columnIndex }) { + // Skip check as content width is always the same + return rows[0][columnIndex]; + }, + render: ({ content, component }) => { + return (content && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-button", { variant: "secondary", size: "small", "icon-only": true, "inner-aria-label": `Activate to ${content.isExpanded ? 'collapse' : 'expand'} content`, onClick: () => { + content.isExpanded = !content.isExpanded; + component.forceRender++; + } }, content.isExpanded ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-up", { size: 14 })) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-down", { size: 14 }))))); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: number or string, eg `120.0` +// Options +// precision +// decimalSymbol +// groupSymbol +// editable?: boolean = false / removed/deprecated in 3.0.0-beta.135 +const NumberCell = { + defaults: { + textAlign: 'right', + sortBy: 'number', + }, + render: ({ field, content, + // component, + // rowIndex, + // columnIndex, + isAutoWidthCheck, }) => { + const { precision = Infinity, decimalSymbol = '.', groupSymbol = '', prefix = '', suffix = '', } = field; + // Input component doesn't expand with content, so need to return a fake element that simulates width + // if (isAutoWidthCheck && editable) { + // return ( + //

+ // {content} + //

+ // ); + // } + // const step = `0.${(String(content).split('.')[1] || '') + // .split('') + // .map(() => '0')}`.replace(/,/g, ''); + // if (editable) { + // const props = { + // type: 'number', + // size: 'small', + // step: step.slice(0, step.length - 1) + '1', + // value: String(content), + // styles: /* css */ `.text-field__control { + // text-align: right !important; + // }`, + // label, + // } as any; + // // TODO: use blur to reduce number of changes - but doesn't pass value + // props.onScaleChange = ({ detail }) => { + // const { value } = detail; + // // Update rows data + // component.rows[rowIndex][columnIndex] = value; + // // Trigger event + // component.triggerEditEvent(value, rowIndex, columnIndex); + // }; + // return ; + // } else { + // } + let value = content; + // Render all digits with 8s as they're the widest + if (isAutoWidthCheck) { + value = Number(value.toString().replace(/[0-9]/g, '8')); + } + // Refine to requested decimal precision + if (precision < 100) { + value = Number(value).toFixed(precision); + } + else { + value = value.toString(); + } + // Replace/add requested delimiters + if (groupSymbol || decimalSymbol !== '.') { + const parts = value.split('.'); + if (groupSymbol) { + parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, groupSymbol); + } + value = parts.join(decimalSymbol); + } + // Add prefix/suffix + if (prefix || suffix) { + value = prefix + value + suffix; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: `scl-body`, style: { textAlign: 'right' } }, value)); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected: string +// Options +// options: string array +// editable?: boolean = false +const SelectCell = { + defaults: { + sortBy: 'text', + }, + render: ({ field, content, component, rowIndex, columnIndex, isAutoWidthCheck, }) => { + const { options, editable = false, label } = field; + // Select component doesn't expand with content, so need to return a fake element that simulates width + if (isAutoWidthCheck) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: `scl-body`, style: { paddingRight: '56px' } }, content)); + } + const props = { + disabled: !editable, + value: content, + label, + }; + if (editable) { + props.onScaleChange = ({ detail }) => { + const { value } = detail; + // Update rows data + component.rows[rowIndex][columnIndex] = value; + // Trigger event + component.triggerEditEvent(value, rowIndex, columnIndex); + }; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-dropdown-select", Object.assign({ floatingStrategy: "fixed" }, props), options.map((option) => { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-dropdown-select-item", { value: option }, option)); + }))); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected: comma delimited string (eg 'one, two, three') +const TagsCell = { + defaults: { + sortBy: 'text', + }, + render: ({ content }) => { + let tags = []; + // for backwards compatibility + if (typeof content === 'string') { + tags = content.split(',').map((el) => ({ + content: el, + color: 'standard', + })); + } + else { + tags = content; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("ul", { class: `tbody__tag-list` }, tags.map((tag) => ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("li", null, + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-tag", { size: "small", type: "strong", color: tag.color }, tag.content)))))); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: a telephone number string (eg: 'tel:+491234567') +const TelephoneCell = { + defaults: { + sortBy: 'text', + }, + render: ({ content }) => { + // Remove protocol (tell:) + const telephoneNoProtocol = content.replace(/^tel:/i, ''); + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-link", { href: content }, telephoneNoProtocol); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +// Expected content: unformated string 'this is a string' +// Options +// variant?: string 'body' | 'h6' | 'h5' | etc +// editable?: boolean = false +// iconPrefix?: string eg 'action-download' +// iconSuffix?: string eg 'action-download' +const TextCell = { + defaults: { + sortBy: 'text', + }, + render: ({ field, content, component, rowIndex, columnIndex, isAutoWidthCheck, }) => { + const { variant = 'body', editable = false, iconPrefix, iconSuffix, label, } = field; + // Input component doesn't expand with content, so need to return a fake element that simulates width + if (isAutoWidthCheck && editable) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: `scl-body`, style: { paddingRight: '26px' } }, content)); + } + if (editable) { + const props = { + type: 'text', + value: content, + label, + }; + // TODO: use blur to reduce number of changes - but doesn't pass value + // TODO: apply variant and iconPrefix/Suffix to editable text + props.onScaleChange = ({ detail }) => { + const { value } = detail; + // Update rows data + component.rows[rowIndex][columnIndex] = value; + // Trigger event + component.triggerEditEvent(value, rowIndex, columnIndex); + }; + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-text-field", Object.assign({}, props)); + } + else { + let value = content; + // Add an extra couple of characters for the width check to avoid clipping + if (isAutoWidthCheck) { + value += 'w'; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `tbody__text-cell` }, + iconPrefix && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: `tbody__text-cell-prefix` }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(`scale-icon-${iconPrefix}`))), + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: `scl-${variant}` }, value), + iconSuffix && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: `tbody__text-cell-suffix` }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(`scale-icon-${iconSuffix}`))))); + } + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +var __rest = ( false) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +const ActionsCell = { + defaults: {}, + render: ({ content }) => { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `tbody__actions` }, content.map((action) => { + const { label } = action, props = __rest(action, ["label"]); + if (typeof label === 'object' && '__html' in label) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-button", Object.assign({ size: "small", innerHTML: label.__html }, props))); + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-button", Object.assign({ size: "small" }, props), label)); + }))); + }, +}; + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const CELL_TYPES = { + checkbox: CheckboxCell, + date: DateCell, + email: EmailCell, + graph: GraphCell, + html: HTMLCell, + link: LinkCell, + number: NumberCell, + select: SelectCell, + tags: TagsCell, + telephone: TelephoneCell, + text: TextCell, + actions: ActionsCell, +}; +// Fallback if no type set on field +const DEFAULT_CELL_TYPE = 'text'; +// Common cell defaults, can be overridden in cell type classes +const CELL_DEFAULTS = { + maxWidth: Infinity, + minWidth: 20, + resizable: true, + sortable: false, + sortBy: 'text', + textAlign: 'left', + visible: true, + width: 'auto', +}; + +/** + * Days in 1 week. + * + * @name daysInWeek + * @constant + * @type {number} + * @default + */ + +/** + * Milliseconds in 1 minute + * + * @name millisecondsInMinute + * @constant + * @type {number} + * @default + */ +var millisecondsInMinute = 60000; + +/** + * Milliseconds in 1 hour + * + * @name millisecondsInHour + * @constant + * @type {number} + * @default + */ +var millisecondsInHour = 3600000; + +/** + * Milliseconds in 1 second + * + * @name millisecondsInSecond + * @constant + * @type {number} + * @default + */ +var millisecondsInSecond = 1000; + +/** + * @name subMilliseconds + * @category Millisecond Helpers + * @summary Subtract the specified number of milliseconds from the given date. + * + * @description + * Subtract the specified number of milliseconds from the given date. + * + * @param {Date|Number} date - the date to be changed + * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. + * @returns {Date} the new date with the milliseconds subtracted + * @throws {TypeError} 2 arguments required + * + * @example + * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000: + * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) + * //=> Thu Jul 10 2014 12:45:29.250 + */ +function subMilliseconds(dirtyDate, dirtyAmount) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(2, arguments); + var amount = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)(dirtyAmount); + return (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.a)(dirtyDate, -amount); +} + +function startOfUTCISOWeek(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var weekStartsOn = 1; + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var day = date.getUTCDay(); + var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + date.setUTCDate(date.getUTCDate() - diff); + date.setUTCHours(0, 0, 0, 0); + return date; +} + +function getUTCISOWeekYear(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var year = date.getUTCFullYear(); + var fourthOfJanuaryOfNextYear = new Date(0); + fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4); + fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0); + var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear); + var fourthOfJanuaryOfThisYear = new Date(0); + fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4); + fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0); + var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear); + if (date.getTime() >= startOfNextYear.getTime()) { + return year + 1; + } else if (date.getTime() >= startOfThisYear.getTime()) { + return year; + } else { + return year - 1; + } +} + +function startOfUTCISOWeekYear(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var year = getUTCISOWeekYear(dirtyDate); + var fourthOfJanuary = new Date(0); + fourthOfJanuary.setUTCFullYear(year, 0, 4); + fourthOfJanuary.setUTCHours(0, 0, 0, 0); + var date = startOfUTCISOWeek(fourthOfJanuary); + return date; +} + +var MILLISECONDS_IN_WEEK$1 = 604800000; +function getUTCISOWeek(dirtyDate) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); + + // Round the number of days to the nearest integer + // because the number of milliseconds in a week is not constant + // (e.g. it's different in the week of the daylight saving time clock shift) + return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1; +} + +function startOfUTCWeek(dirtyDate, options) { + var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var defaultOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.g)(); + var weekStartsOn = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); + + // Test if weekStartsOn is between 0 and 6 _and_ is not NaN + if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { + throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); + } + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var day = date.getUTCDay(); + var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + date.setUTCDate(date.getUTCDate() - diff); + date.setUTCHours(0, 0, 0, 0); + return date; +} + +function getUTCWeekYear(dirtyDate, options) { + var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var year = date.getUTCFullYear(); + var defaultOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.g)(); + var firstWeekContainsDate = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); + + // Test if weekStartsOn is between 1 and 7 _and_ is not NaN + if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { + throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); + } + var firstWeekOfNextYear = new Date(0); + firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate); + firstWeekOfNextYear.setUTCHours(0, 0, 0, 0); + var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options); + var firstWeekOfThisYear = new Date(0); + firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate); + firstWeekOfThisYear.setUTCHours(0, 0, 0, 0); + var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options); + if (date.getTime() >= startOfNextYear.getTime()) { + return year + 1; + } else if (date.getTime() >= startOfThisYear.getTime()) { + return year; + } else { + return year - 1; + } +} + +function startOfUTCWeekYear(dirtyDate, options) { + var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var defaultOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.g)(); + var firstWeekContainsDate = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); + var year = getUTCWeekYear(dirtyDate, options); + var firstWeek = new Date(0); + firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate); + firstWeek.setUTCHours(0, 0, 0, 0); + var date = startOfUTCWeek(firstWeek, options); + return date; +} + +var MILLISECONDS_IN_WEEK = 604800000; +function getUTCWeek(dirtyDate, options) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(1, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); + + // Round the number of days to the nearest integer + // because the number of milliseconds in a week is not constant + // (e.g. it's different in the week of the daylight saving time clock shift) + return Math.round(diff / MILLISECONDS_IN_WEEK) + 1; +} + +var dateLongFormatter = function dateLongFormatter(pattern, formatLong) { + switch (pattern) { + case 'P': + return formatLong.date({ + width: 'short' + }); + case 'PP': + return formatLong.date({ + width: 'medium' + }); + case 'PPP': + return formatLong.date({ + width: 'long' + }); + case 'PPPP': + default: + return formatLong.date({ + width: 'full' + }); + } +}; +var timeLongFormatter = function timeLongFormatter(pattern, formatLong) { + switch (pattern) { + case 'p': + return formatLong.time({ + width: 'short' + }); + case 'pp': + return formatLong.time({ + width: 'medium' + }); + case 'ppp': + return formatLong.time({ + width: 'long' + }); + case 'pppp': + default: + return formatLong.time({ + width: 'full' + }); + } +}; +var dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) { + var matchResult = pattern.match(/(P+)(p+)?/) || []; + var datePattern = matchResult[1]; + var timePattern = matchResult[2]; + if (!timePattern) { + return dateLongFormatter(pattern, formatLong); + } + var dateTimeFormat; + switch (datePattern) { + case 'P': + dateTimeFormat = formatLong.dateTime({ + width: 'short' + }); + break; + case 'PP': + dateTimeFormat = formatLong.dateTime({ + width: 'medium' + }); + break; + case 'PPP': + dateTimeFormat = formatLong.dateTime({ + width: 'long' + }); + break; + case 'PPPP': + default: + dateTimeFormat = formatLong.dateTime({ + width: 'full' + }); + break; + } + return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong)); +}; +var longFormatters = { + p: timeLongFormatter, + P: dateTimeLongFormatter +}; + +var protectedDayOfYearTokens = ['D', 'DD']; +var protectedWeekYearTokens = ['YY', 'YYYY']; +function isProtectedDayOfYearToken(token) { + return protectedDayOfYearTokens.indexOf(token) !== -1; +} +function isProtectedWeekYearToken(token) { + return protectedWeekYearTokens.indexOf(token) !== -1; +} +function throwProtectedError(token, format, input) { + if (token === 'YYYY') { + throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); + } else if (token === 'YY') { + throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); + } else if (token === 'D') { + throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); + } else if (token === 'DD') { + throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")); + } +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} + +function _possibleConstructorReturn(self, call) { + if (call && ((0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__._)(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); +} + +function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _toPrimitive(input, hint) { + if ((0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__._)(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if ((0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__._)(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__._)(key) === "symbol" ? key : String(key); +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} + +function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} + +var TIMEZONE_UNIT_PRIORITY = 10; +var Setter = /*#__PURE__*/function () { + function Setter() { + _classCallCheck(this, Setter); + _defineProperty(this, "priority", void 0); + _defineProperty(this, "subPriority", 0); + } + _createClass(Setter, [{ + key: "validate", + value: function validate(_utcDate, _options) { + return true; + } + }]); + return Setter; +}(); +var ValueSetter = /*#__PURE__*/function (_Setter) { + _inherits(ValueSetter, _Setter); + var _super = _createSuper(ValueSetter); + function ValueSetter(value, validateValue, setValue, priority, subPriority) { + var _this; + _classCallCheck(this, ValueSetter); + _this = _super.call(this); + _this.value = value; + _this.validateValue = validateValue; + _this.setValue = setValue; + _this.priority = priority; + if (subPriority) { + _this.subPriority = subPriority; + } + return _this; + } + _createClass(ValueSetter, [{ + key: "validate", + value: function validate(utcDate, options) { + return this.validateValue(utcDate, this.value, options); + } + }, { + key: "set", + value: function set(utcDate, flags, options) { + return this.setValue(utcDate, flags, this.value, options); + } + }]); + return ValueSetter; +}(Setter); +var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) { + _inherits(DateToSystemTimezoneSetter, _Setter2); + var _super2 = _createSuper(DateToSystemTimezoneSetter); + function DateToSystemTimezoneSetter() { + var _this2; + _classCallCheck(this, DateToSystemTimezoneSetter); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this2 = _super2.call.apply(_super2, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this2), "priority", TIMEZONE_UNIT_PRIORITY); + _defineProperty(_assertThisInitialized(_this2), "subPriority", -1); + return _this2; + } + _createClass(DateToSystemTimezoneSetter, [{ + key: "set", + value: function set(date, flags) { + if (flags.timestampIsSet) { + return date; + } + var convertedDate = new Date(0); + convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()); + convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()); + return convertedDate; + } + }]); + return DateToSystemTimezoneSetter; +}(Setter); + +var Parser = /*#__PURE__*/function () { + function Parser() { + _classCallCheck(this, Parser); + _defineProperty(this, "incompatibleTokens", void 0); + _defineProperty(this, "priority", void 0); + _defineProperty(this, "subPriority", void 0); + } + _createClass(Parser, [{ + key: "run", + value: function run(dateString, token, match, options) { + var result = this.parse(dateString, token, match, options); + if (!result) { + return null; + } + return { + setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority), + rest: result.rest + }; + } + }, { + key: "validate", + value: function validate(_utcDate, _value, _options) { + return true; + } + }]); + return Parser; +}(); + +var EraParser = /*#__PURE__*/function (_Parser) { + _inherits(EraParser, _Parser); + var _super = _createSuper(EraParser); + function EraParser() { + var _this; + _classCallCheck(this, EraParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 140); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['R', 'u', 't', 'T']); + return _this; + } + _createClass(EraParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + // AD, BC + case 'G': + case 'GG': + case 'GGG': + return match.era(dateString, { + width: 'abbreviated' + }) || match.era(dateString, { + width: 'narrow' + }); + // A, B + case 'GGGGG': + return match.era(dateString, { + width: 'narrow' + }); + // Anno Domini, Before Christ + case 'GGGG': + default: + return match.era(dateString, { + width: 'wide' + }) || match.era(dateString, { + width: 'abbreviated' + }) || match.era(dateString, { + width: 'narrow' + }); + } + } + }, { + key: "set", + value: function set(date, flags, value) { + flags.era = value; + date.setUTCFullYear(value, 0, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return EraParser; +}(Parser); + +var numericPatterns = { + month: /^(1[0-2]|0?\d)/, + // 0 to 12 + date: /^(3[0-1]|[0-2]?\d)/, + // 0 to 31 + dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, + // 0 to 366 + week: /^(5[0-3]|[0-4]?\d)/, + // 0 to 53 + hour23h: /^(2[0-3]|[0-1]?\d)/, + // 0 to 23 + hour24h: /^(2[0-4]|[0-1]?\d)/, + // 0 to 24 + hour11h: /^(1[0-1]|0?\d)/, + // 0 to 11 + hour12h: /^(1[0-2]|0?\d)/, + // 0 to 12 + minute: /^[0-5]?\d/, + // 0 to 59 + second: /^[0-5]?\d/, + // 0 to 59 + + singleDigit: /^\d/, + // 0 to 9 + twoDigits: /^\d{1,2}/, + // 0 to 99 + threeDigits: /^\d{1,3}/, + // 0 to 999 + fourDigits: /^\d{1,4}/, + // 0 to 9999 + + anyDigitsSigned: /^-?\d+/, + singleDigitSigned: /^-?\d/, + // 0 to 9, -0 to -9 + twoDigitsSigned: /^-?\d{1,2}/, + // 0 to 99, -0 to -99 + threeDigitsSigned: /^-?\d{1,3}/, + // 0 to 999, -0 to -999 + fourDigitsSigned: /^-?\d{1,4}/ // 0 to 9999, -0 to -9999 +}; + +var timezonePatterns = { + basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, + basic: /^([+-])(\d{2})(\d{2})|Z/, + basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, + extended: /^([+-])(\d{2}):(\d{2})|Z/, + extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/ +}; + +function mapValue(parseFnResult, mapFn) { + if (!parseFnResult) { + return parseFnResult; + } + return { + value: mapFn(parseFnResult.value), + rest: parseFnResult.rest + }; +} +function parseNumericPattern(pattern, dateString) { + var matchResult = dateString.match(pattern); + if (!matchResult) { + return null; + } + return { + value: parseInt(matchResult[0], 10), + rest: dateString.slice(matchResult[0].length) + }; +} +function parseTimezonePattern(pattern, dateString) { + var matchResult = dateString.match(pattern); + if (!matchResult) { + return null; + } + + // Input is 'Z' + if (matchResult[0] === 'Z') { + return { + value: 0, + rest: dateString.slice(1) + }; + } + var sign = matchResult[1] === '+' ? 1 : -1; + var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0; + var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0; + var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0; + return { + value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond), + rest: dateString.slice(matchResult[0].length) + }; +} +function parseAnyDigitsSigned(dateString) { + return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString); +} +function parseNDigits(n, dateString) { + switch (n) { + case 1: + return parseNumericPattern(numericPatterns.singleDigit, dateString); + case 2: + return parseNumericPattern(numericPatterns.twoDigits, dateString); + case 3: + return parseNumericPattern(numericPatterns.threeDigits, dateString); + case 4: + return parseNumericPattern(numericPatterns.fourDigits, dateString); + default: + return parseNumericPattern(new RegExp('^\\d{1,' + n + '}'), dateString); + } +} +function parseNDigitsSigned(n, dateString) { + switch (n) { + case 1: + return parseNumericPattern(numericPatterns.singleDigitSigned, dateString); + case 2: + return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString); + case 3: + return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString); + case 4: + return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString); + default: + return parseNumericPattern(new RegExp('^-?\\d{1,' + n + '}'), dateString); + } +} +function dayPeriodEnumToHours(dayPeriod) { + switch (dayPeriod) { + case 'morning': + return 4; + case 'evening': + return 17; + case 'pm': + case 'noon': + case 'afternoon': + return 12; + case 'am': + case 'midnight': + case 'night': + default: + return 0; + } +} +function normalizeTwoDigitYear(twoDigitYear, currentYear) { + var isCommonEra = currentYear > 0; + // Absolute number of the current year: + // 1 -> 1 AC + // 0 -> 1 BC + // -1 -> 2 BC + var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear; + var result; + if (absCurrentYear <= 50) { + result = twoDigitYear || 100; + } else { + var rangeEnd = absCurrentYear + 50; + var rangeEndCentury = Math.floor(rangeEnd / 100) * 100; + var isPreviousCentury = twoDigitYear >= rangeEnd % 100; + result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0); + } + return isCommonEra ? result : 1 - result; +} +function isLeapYearIndex(year) { + return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0; +} + +// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns +// | Year | y | yy | yyy | yyyy | yyyyy | +// |----------|-------|----|-------|-------|-------| +// | AD 1 | 1 | 01 | 001 | 0001 | 00001 | +// | AD 12 | 12 | 12 | 012 | 0012 | 00012 | +// | AD 123 | 123 | 23 | 123 | 0123 | 00123 | +// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | +// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | +var YearParser = /*#__PURE__*/function (_Parser) { + _inherits(YearParser, _Parser); + var _super = _createSuper(YearParser); + function YearParser() { + var _this; + _classCallCheck(this, YearParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 130); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(YearParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + var valueCallback = function valueCallback(year) { + return { + year: year, + isTwoDigitYear: token === 'yy' + }; + }; + switch (token) { + case 'y': + return mapValue(parseNDigits(4, dateString), valueCallback); + case 'yo': + return mapValue(match.ordinalNumber(dateString, { + unit: 'year' + }), valueCallback); + default: + return mapValue(parseNDigits(token.length, dateString), valueCallback); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value.isTwoDigitYear || value.year > 0; + } + }, { + key: "set", + value: function set(date, flags, value) { + var currentYear = date.getUTCFullYear(); + if (value.isTwoDigitYear) { + var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear); + date.setUTCFullYear(normalizedTwoDigitYear, 0, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year; + date.setUTCFullYear(year, 0, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return YearParser; +}(Parser); + +// Local week-numbering year +var LocalWeekYearParser = /*#__PURE__*/function (_Parser) { + _inherits(LocalWeekYearParser, _Parser); + var _super = _createSuper(LocalWeekYearParser); + function LocalWeekYearParser() { + var _this; + _classCallCheck(this, LocalWeekYearParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 130); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']); + return _this; + } + _createClass(LocalWeekYearParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + var valueCallback = function valueCallback(year) { + return { + year: year, + isTwoDigitYear: token === 'YY' + }; + }; + switch (token) { + case 'Y': + return mapValue(parseNDigits(4, dateString), valueCallback); + case 'Yo': + return mapValue(match.ordinalNumber(dateString, { + unit: 'year' + }), valueCallback); + default: + return mapValue(parseNDigits(token.length, dateString), valueCallback); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value.isTwoDigitYear || value.year > 0; + } + }, { + key: "set", + value: function set(date, flags, value, options) { + var currentYear = getUTCWeekYear(date, options); + if (value.isTwoDigitYear) { + var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear); + date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate); + date.setUTCHours(0, 0, 0, 0); + return startOfUTCWeek(date, options); + } + var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year; + date.setUTCFullYear(year, 0, options.firstWeekContainsDate); + date.setUTCHours(0, 0, 0, 0); + return startOfUTCWeek(date, options); + } + }]); + return LocalWeekYearParser; +}(Parser); + +var ISOWeekYearParser = /*#__PURE__*/function (_Parser) { + _inherits(ISOWeekYearParser, _Parser); + var _super = _createSuper(ISOWeekYearParser); + function ISOWeekYearParser() { + var _this; + _classCallCheck(this, ISOWeekYearParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 130); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(ISOWeekYearParser, [{ + key: "parse", + value: function parse(dateString, token) { + if (token === 'R') { + return parseNDigitsSigned(4, dateString); + } + return parseNDigitsSigned(token.length, dateString); + } + }, { + key: "set", + value: function set(_date, _flags, value) { + var firstWeekOfYear = new Date(0); + firstWeekOfYear.setUTCFullYear(value, 0, 4); + firstWeekOfYear.setUTCHours(0, 0, 0, 0); + return startOfUTCISOWeek(firstWeekOfYear); + } + }]); + return ISOWeekYearParser; +}(Parser); + +var ExtendedYearParser = /*#__PURE__*/function (_Parser) { + _inherits(ExtendedYearParser, _Parser); + var _super = _createSuper(ExtendedYearParser); + function ExtendedYearParser() { + var _this; + _classCallCheck(this, ExtendedYearParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 130); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(ExtendedYearParser, [{ + key: "parse", + value: function parse(dateString, token) { + if (token === 'u') { + return parseNDigitsSigned(4, dateString); + } + return parseNDigitsSigned(token.length, dateString); + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCFullYear(value, 0, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return ExtendedYearParser; +}(Parser); + +var QuarterParser = /*#__PURE__*/function (_Parser) { + _inherits(QuarterParser, _Parser); + var _super = _createSuper(QuarterParser); + function QuarterParser() { + var _this; + _classCallCheck(this, QuarterParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 120); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(QuarterParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + // 1, 2, 3, 4 + case 'Q': + case 'QQ': + // 01, 02, 03, 04 + return parseNDigits(token.length, dateString); + // 1st, 2nd, 3rd, 4th + case 'Qo': + return match.ordinalNumber(dateString, { + unit: 'quarter' + }); + // Q1, Q2, Q3, Q4 + case 'QQQ': + return match.quarter(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.quarter(dateString, { + width: 'narrow', + context: 'formatting' + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case 'QQQQQ': + return match.quarter(dateString, { + width: 'narrow', + context: 'formatting' + }); + // 1st quarter, 2nd quarter, ... + case 'QQQQ': + default: + return match.quarter(dateString, { + width: 'wide', + context: 'formatting' + }) || match.quarter(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.quarter(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 4; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMonth((value - 1) * 3, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return QuarterParser; +}(Parser); + +var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) { + _inherits(StandAloneQuarterParser, _Parser); + var _super = _createSuper(StandAloneQuarterParser); + function StandAloneQuarterParser() { + var _this; + _classCallCheck(this, StandAloneQuarterParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 120); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(StandAloneQuarterParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + // 1, 2, 3, 4 + case 'q': + case 'qq': + // 01, 02, 03, 04 + return parseNDigits(token.length, dateString); + // 1st, 2nd, 3rd, 4th + case 'qo': + return match.ordinalNumber(dateString, { + unit: 'quarter' + }); + // Q1, Q2, Q3, Q4 + case 'qqq': + return match.quarter(dateString, { + width: 'abbreviated', + context: 'standalone' + }) || match.quarter(dateString, { + width: 'narrow', + context: 'standalone' + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case 'qqqqq': + return match.quarter(dateString, { + width: 'narrow', + context: 'standalone' + }); + // 1st quarter, 2nd quarter, ... + case 'qqqq': + default: + return match.quarter(dateString, { + width: 'wide', + context: 'standalone' + }) || match.quarter(dateString, { + width: 'abbreviated', + context: 'standalone' + }) || match.quarter(dateString, { + width: 'narrow', + context: 'standalone' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 4; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMonth((value - 1) * 3, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return StandAloneQuarterParser; +}(Parser); + +var MonthParser = /*#__PURE__*/function (_Parser) { + _inherits(MonthParser, _Parser); + var _super = _createSuper(MonthParser); + function MonthParser() { + var _this; + _classCallCheck(this, MonthParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']); + _defineProperty(_assertThisInitialized(_this), "priority", 110); + return _this; + } + _createClass(MonthParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + var valueCallback = function valueCallback(value) { + return value - 1; + }; + switch (token) { + // 1, 2, ..., 12 + case 'M': + return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback); + // 01, 02, ..., 12 + case 'MM': + return mapValue(parseNDigits(2, dateString), valueCallback); + // 1st, 2nd, ..., 12th + case 'Mo': + return mapValue(match.ordinalNumber(dateString, { + unit: 'month' + }), valueCallback); + // Jan, Feb, ..., Dec + case 'MMM': + return match.month(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.month(dateString, { + width: 'narrow', + context: 'formatting' + }); + // J, F, ..., D + case 'MMMMM': + return match.month(dateString, { + width: 'narrow', + context: 'formatting' + }); + // January, February, ..., December + case 'MMMM': + default: + return match.month(dateString, { + width: 'wide', + context: 'formatting' + }) || match.month(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.month(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 11; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMonth(value, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return MonthParser; +}(Parser); + +var StandAloneMonthParser = /*#__PURE__*/function (_Parser) { + _inherits(StandAloneMonthParser, _Parser); + var _super = _createSuper(StandAloneMonthParser); + function StandAloneMonthParser() { + var _this; + _classCallCheck(this, StandAloneMonthParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 110); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(StandAloneMonthParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + var valueCallback = function valueCallback(value) { + return value - 1; + }; + switch (token) { + // 1, 2, ..., 12 + case 'L': + return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback); + // 01, 02, ..., 12 + case 'LL': + return mapValue(parseNDigits(2, dateString), valueCallback); + // 1st, 2nd, ..., 12th + case 'Lo': + return mapValue(match.ordinalNumber(dateString, { + unit: 'month' + }), valueCallback); + // Jan, Feb, ..., Dec + case 'LLL': + return match.month(dateString, { + width: 'abbreviated', + context: 'standalone' + }) || match.month(dateString, { + width: 'narrow', + context: 'standalone' + }); + // J, F, ..., D + case 'LLLLL': + return match.month(dateString, { + width: 'narrow', + context: 'standalone' + }); + // January, February, ..., December + case 'LLLL': + default: + return match.month(dateString, { + width: 'wide', + context: 'standalone' + }) || match.month(dateString, { + width: 'abbreviated', + context: 'standalone' + }) || match.month(dateString, { + width: 'narrow', + context: 'standalone' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 11; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMonth(value, 1); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return StandAloneMonthParser; +}(Parser); + +function setUTCWeek(dirtyDate, dirtyWeek, options) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(2, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var week = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)(dirtyWeek); + var diff = getUTCWeek(date, options) - week; + date.setUTCDate(date.getUTCDate() - diff * 7); + return date; +} + +var LocalWeekParser = /*#__PURE__*/function (_Parser) { + _inherits(LocalWeekParser, _Parser); + var _super = _createSuper(LocalWeekParser); + function LocalWeekParser() { + var _this; + _classCallCheck(this, LocalWeekParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 100); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']); + return _this; + } + _createClass(LocalWeekParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'w': + return parseNumericPattern(numericPatterns.week, dateString); + case 'wo': + return match.ordinalNumber(dateString, { + unit: 'week' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 53; + } + }, { + key: "set", + value: function set(date, _flags, value, options) { + return startOfUTCWeek(setUTCWeek(date, value, options), options); + } + }]); + return LocalWeekParser; +}(Parser); + +function setUTCISOWeek(dirtyDate, dirtyISOWeek) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(2, arguments); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var isoWeek = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)(dirtyISOWeek); + var diff = getUTCISOWeek(date) - isoWeek; + date.setUTCDate(date.getUTCDate() - diff * 7); + return date; +} + +var ISOWeekParser = /*#__PURE__*/function (_Parser) { + _inherits(ISOWeekParser, _Parser); + var _super = _createSuper(ISOWeekParser); + function ISOWeekParser() { + var _this; + _classCallCheck(this, ISOWeekParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 100); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(ISOWeekParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'I': + return parseNumericPattern(numericPatterns.week, dateString); + case 'Io': + return match.ordinalNumber(dateString, { + unit: 'week' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 53; + } + }, { + key: "set", + value: function set(date, _flags, value) { + return startOfUTCISOWeek(setUTCISOWeek(date, value)); + } + }]); + return ISOWeekParser; +}(Parser); + +var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + +// Day of the month +var DateParser = /*#__PURE__*/function (_Parser) { + _inherits(DateParser, _Parser); + var _super = _createSuper(DateParser); + function DateParser() { + var _this; + _classCallCheck(this, DateParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 90); + _defineProperty(_assertThisInitialized(_this), "subPriority", 1); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(DateParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'd': + return parseNumericPattern(numericPatterns.date, dateString); + case 'do': + return match.ordinalNumber(dateString, { + unit: 'date' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(date, value) { + var year = date.getUTCFullYear(); + var isLeapYear = isLeapYearIndex(year); + var month = date.getUTCMonth(); + if (isLeapYear) { + return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month]; + } else { + return value >= 1 && value <= DAYS_IN_MONTH[month]; + } + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCDate(value); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return DateParser; +}(Parser); + +var DayOfYearParser = /*#__PURE__*/function (_Parser) { + _inherits(DayOfYearParser, _Parser); + var _super = _createSuper(DayOfYearParser); + function DayOfYearParser() { + var _this; + _classCallCheck(this, DayOfYearParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 90); + _defineProperty(_assertThisInitialized(_this), "subpriority", 1); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(DayOfYearParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'D': + case 'DD': + return parseNumericPattern(numericPatterns.dayOfYear, dateString); + case 'Do': + return match.ordinalNumber(dateString, { + unit: 'date' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(date, value) { + var year = date.getUTCFullYear(); + var isLeapYear = isLeapYearIndex(year); + if (isLeapYear) { + return value >= 1 && value <= 366; + } else { + return value >= 1 && value <= 365; + } + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMonth(0, value); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return DayOfYearParser; +}(Parser); + +function setUTCDay(dirtyDate, dirtyDay, options) { + var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(2, arguments); + var defaultOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.g)(); + var weekStartsOn = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); + + // Test if weekStartsOn is between 0 and 6 _and_ is not NaN + if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { + throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); + } + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var day = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)(dirtyDay); + var currentDay = date.getUTCDay(); + var remainder = day % 7; + var dayIndex = (remainder + 7) % 7; + var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay; + date.setUTCDate(date.getUTCDate() + diff); + return date; +} + +var DayParser = /*#__PURE__*/function (_Parser) { + _inherits(DayParser, _Parser); + var _super = _createSuper(DayParser); + function DayParser() { + var _this; + _classCallCheck(this, DayParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 90); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['D', 'i', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(DayParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + // Tue + case 'E': + case 'EE': + case 'EEE': + return match.day(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + // T + case 'EEEEE': + return match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + // Tu + case 'EEEEEE': + return match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + // Tuesday + case 'EEEE': + default: + return match.day(dateString, { + width: 'wide', + context: 'formatting' + }) || match.day(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 6; + } + }, { + key: "set", + value: function set(date, _flags, value, options) { + date = setUTCDay(date, value, options); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return DayParser; +}(Parser); + +var LocalDayParser = /*#__PURE__*/function (_Parser) { + _inherits(LocalDayParser, _Parser); + var _super = _createSuper(LocalDayParser); + function LocalDayParser() { + var _this; + _classCallCheck(this, LocalDayParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 90); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']); + return _this; + } + _createClass(LocalDayParser, [{ + key: "parse", + value: function parse(dateString, token, match, options) { + var valueCallback = function valueCallback(value) { + var wholeWeekDays = Math.floor((value - 1) / 7) * 7; + return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays; + }; + switch (token) { + // 3 + case 'e': + case 'ee': + // 03 + return mapValue(parseNDigits(token.length, dateString), valueCallback); + // 3rd + case 'eo': + return mapValue(match.ordinalNumber(dateString, { + unit: 'day' + }), valueCallback); + // Tue + case 'eee': + return match.day(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + // T + case 'eeeee': + return match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + // Tu + case 'eeeeee': + return match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + // Tuesday + case 'eeee': + default: + return match.day(dateString, { + width: 'wide', + context: 'formatting' + }) || match.day(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 6; + } + }, { + key: "set", + value: function set(date, _flags, value, options) { + date = setUTCDay(date, value, options); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return LocalDayParser; +}(Parser); + +var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) { + _inherits(StandAloneLocalDayParser, _Parser); + var _super = _createSuper(StandAloneLocalDayParser); + function StandAloneLocalDayParser() { + var _this; + _classCallCheck(this, StandAloneLocalDayParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 90); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']); + return _this; + } + _createClass(StandAloneLocalDayParser, [{ + key: "parse", + value: function parse(dateString, token, match, options) { + var valueCallback = function valueCallback(value) { + var wholeWeekDays = Math.floor((value - 1) / 7) * 7; + return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays; + }; + switch (token) { + // 3 + case 'c': + case 'cc': + // 03 + return mapValue(parseNDigits(token.length, dateString), valueCallback); + // 3rd + case 'co': + return mapValue(match.ordinalNumber(dateString, { + unit: 'day' + }), valueCallback); + // Tue + case 'ccc': + return match.day(dateString, { + width: 'abbreviated', + context: 'standalone' + }) || match.day(dateString, { + width: 'short', + context: 'standalone' + }) || match.day(dateString, { + width: 'narrow', + context: 'standalone' + }); + // T + case 'ccccc': + return match.day(dateString, { + width: 'narrow', + context: 'standalone' + }); + // Tu + case 'cccccc': + return match.day(dateString, { + width: 'short', + context: 'standalone' + }) || match.day(dateString, { + width: 'narrow', + context: 'standalone' + }); + // Tuesday + case 'cccc': + default: + return match.day(dateString, { + width: 'wide', + context: 'standalone' + }) || match.day(dateString, { + width: 'abbreviated', + context: 'standalone' + }) || match.day(dateString, { + width: 'short', + context: 'standalone' + }) || match.day(dateString, { + width: 'narrow', + context: 'standalone' + }); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 6; + } + }, { + key: "set", + value: function set(date, _flags, value, options) { + date = setUTCDay(date, value, options); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return StandAloneLocalDayParser; +}(Parser); + +function setUTCISODay(dirtyDate, dirtyDay) { + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(2, arguments); + var day = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)(dirtyDay); + if (day % 7 === 0) { + day = day - 7; + } + var weekStartsOn = 1; + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyDate); + var currentDay = date.getUTCDay(); + var remainder = day % 7; + var dayIndex = (remainder + 7) % 7; + var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay; + date.setUTCDate(date.getUTCDate() + diff); + return date; +} + +var ISODayParser = /*#__PURE__*/function (_Parser) { + _inherits(ISODayParser, _Parser); + var _super = _createSuper(ISODayParser); + function ISODayParser() { + var _this; + _classCallCheck(this, ISODayParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 90); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']); + return _this; + } + _createClass(ISODayParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + var valueCallback = function valueCallback(value) { + if (value === 0) { + return 7; + } + return value; + }; + switch (token) { + // 2 + case 'i': + case 'ii': + // 02 + return parseNDigits(token.length, dateString); + // 2nd + case 'io': + return match.ordinalNumber(dateString, { + unit: 'day' + }); + // Tue + case 'iii': + return mapValue(match.day(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }), valueCallback); + // T + case 'iiiii': + return mapValue(match.day(dateString, { + width: 'narrow', + context: 'formatting' + }), valueCallback); + // Tu + case 'iiiiii': + return mapValue(match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }), valueCallback); + // Tuesday + case 'iiii': + default: + return mapValue(match.day(dateString, { + width: 'wide', + context: 'formatting' + }) || match.day(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.day(dateString, { + width: 'short', + context: 'formatting' + }) || match.day(dateString, { + width: 'narrow', + context: 'formatting' + }), valueCallback); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 7; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date = setUTCISODay(date, value); + date.setUTCHours(0, 0, 0, 0); + return date; + } + }]); + return ISODayParser; +}(Parser); + +var AMPMParser = /*#__PURE__*/function (_Parser) { + _inherits(AMPMParser, _Parser); + var _super = _createSuper(AMPMParser); + function AMPMParser() { + var _this; + _classCallCheck(this, AMPMParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 80); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['b', 'B', 'H', 'k', 't', 'T']); + return _this; + } + _createClass(AMPMParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'a': + case 'aa': + case 'aaa': + return match.dayPeriod(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + case 'aaaaa': + return match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + case 'aaaa': + default: + return match.dayPeriod(dateString, { + width: 'wide', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0); + return date; + } + }]); + return AMPMParser; +}(Parser); + +var AMPMMidnightParser = /*#__PURE__*/function (_Parser) { + _inherits(AMPMMidnightParser, _Parser); + var _super = _createSuper(AMPMMidnightParser); + function AMPMMidnightParser() { + var _this; + _classCallCheck(this, AMPMMidnightParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 80); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['a', 'B', 'H', 'k', 't', 'T']); + return _this; + } + _createClass(AMPMMidnightParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'b': + case 'bb': + case 'bbb': + return match.dayPeriod(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + case 'bbbbb': + return match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + case 'bbbb': + default: + return match.dayPeriod(dateString, { + width: 'wide', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0); + return date; + } + }]); + return AMPMMidnightParser; +}(Parser); + +var DayPeriodParser = /*#__PURE__*/function (_Parser) { + _inherits(DayPeriodParser, _Parser); + var _super = _createSuper(DayPeriodParser); + function DayPeriodParser() { + var _this; + _classCallCheck(this, DayPeriodParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 80); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['a', 'b', 't', 'T']); + return _this; + } + _createClass(DayPeriodParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'B': + case 'BB': + case 'BBB': + return match.dayPeriod(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + case 'BBBBB': + return match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + case 'BBBB': + default: + return match.dayPeriod(dateString, { + width: 'wide', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'abbreviated', + context: 'formatting' + }) || match.dayPeriod(dateString, { + width: 'narrow', + context: 'formatting' + }); + } + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0); + return date; + } + }]); + return DayPeriodParser; +}(Parser); + +var Hour1to12Parser = /*#__PURE__*/function (_Parser) { + _inherits(Hour1to12Parser, _Parser); + var _super = _createSuper(Hour1to12Parser); + function Hour1to12Parser() { + var _this; + _classCallCheck(this, Hour1to12Parser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 70); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['H', 'K', 'k', 't', 'T']); + return _this; + } + _createClass(Hour1to12Parser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'h': + return parseNumericPattern(numericPatterns.hour12h, dateString); + case 'ho': + return match.ordinalNumber(dateString, { + unit: 'hour' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 12; + } + }, { + key: "set", + value: function set(date, _flags, value) { + var isPM = date.getUTCHours() >= 12; + if (isPM && value < 12) { + date.setUTCHours(value + 12, 0, 0, 0); + } else if (!isPM && value === 12) { + date.setUTCHours(0, 0, 0, 0); + } else { + date.setUTCHours(value, 0, 0, 0); + } + return date; + } + }]); + return Hour1to12Parser; +}(Parser); + +var Hour0to23Parser = /*#__PURE__*/function (_Parser) { + _inherits(Hour0to23Parser, _Parser); + var _super = _createSuper(Hour0to23Parser); + function Hour0to23Parser() { + var _this; + _classCallCheck(this, Hour0to23Parser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 70); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['a', 'b', 'h', 'K', 'k', 't', 'T']); + return _this; + } + _createClass(Hour0to23Parser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'H': + return parseNumericPattern(numericPatterns.hour23h, dateString); + case 'Ho': + return match.ordinalNumber(dateString, { + unit: 'hour' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 23; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCHours(value, 0, 0, 0); + return date; + } + }]); + return Hour0to23Parser; +}(Parser); + +var Hour0To11Parser = /*#__PURE__*/function (_Parser) { + _inherits(Hour0To11Parser, _Parser); + var _super = _createSuper(Hour0To11Parser); + function Hour0To11Parser() { + var _this; + _classCallCheck(this, Hour0To11Parser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 70); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['h', 'H', 'k', 't', 'T']); + return _this; + } + _createClass(Hour0To11Parser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'K': + return parseNumericPattern(numericPatterns.hour11h, dateString); + case 'Ko': + return match.ordinalNumber(dateString, { + unit: 'hour' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 11; + } + }, { + key: "set", + value: function set(date, _flags, value) { + var isPM = date.getUTCHours() >= 12; + if (isPM && value < 12) { + date.setUTCHours(value + 12, 0, 0, 0); + } else { + date.setUTCHours(value, 0, 0, 0); + } + return date; + } + }]); + return Hour0To11Parser; +}(Parser); + +var Hour1To24Parser = /*#__PURE__*/function (_Parser) { + _inherits(Hour1To24Parser, _Parser); + var _super = _createSuper(Hour1To24Parser); + function Hour1To24Parser() { + var _this; + _classCallCheck(this, Hour1To24Parser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 70); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['a', 'b', 'h', 'H', 'K', 't', 'T']); + return _this; + } + _createClass(Hour1To24Parser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'k': + return parseNumericPattern(numericPatterns.hour24h, dateString); + case 'ko': + return match.ordinalNumber(dateString, { + unit: 'hour' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 1 && value <= 24; + } + }, { + key: "set", + value: function set(date, _flags, value) { + var hours = value <= 24 ? value % 24 : value; + date.setUTCHours(hours, 0, 0, 0); + return date; + } + }]); + return Hour1To24Parser; +}(Parser); + +var MinuteParser = /*#__PURE__*/function (_Parser) { + _inherits(MinuteParser, _Parser); + var _super = _createSuper(MinuteParser); + function MinuteParser() { + var _this; + _classCallCheck(this, MinuteParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 60); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['t', 'T']); + return _this; + } + _createClass(MinuteParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 'm': + return parseNumericPattern(numericPatterns.minute, dateString); + case 'mo': + return match.ordinalNumber(dateString, { + unit: 'minute' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 59; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMinutes(value, 0, 0); + return date; + } + }]); + return MinuteParser; +}(Parser); + +var SecondParser = /*#__PURE__*/function (_Parser) { + _inherits(SecondParser, _Parser); + var _super = _createSuper(SecondParser); + function SecondParser() { + var _this; + _classCallCheck(this, SecondParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 50); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['t', 'T']); + return _this; + } + _createClass(SecondParser, [{ + key: "parse", + value: function parse(dateString, token, match) { + switch (token) { + case 's': + return parseNumericPattern(numericPatterns.second, dateString); + case 'so': + return match.ordinalNumber(dateString, { + unit: 'second' + }); + default: + return parseNDigits(token.length, dateString); + } + } + }, { + key: "validate", + value: function validate(_date, value) { + return value >= 0 && value <= 59; + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCSeconds(value, 0); + return date; + } + }]); + return SecondParser; +}(Parser); + +var FractionOfSecondParser = /*#__PURE__*/function (_Parser) { + _inherits(FractionOfSecondParser, _Parser); + var _super = _createSuper(FractionOfSecondParser); + function FractionOfSecondParser() { + var _this; + _classCallCheck(this, FractionOfSecondParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 30); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['t', 'T']); + return _this; + } + _createClass(FractionOfSecondParser, [{ + key: "parse", + value: function parse(dateString, token) { + var valueCallback = function valueCallback(value) { + return Math.floor(value * Math.pow(10, -token.length + 3)); + }; + return mapValue(parseNDigits(token.length, dateString), valueCallback); + } + }, { + key: "set", + value: function set(date, _flags, value) { + date.setUTCMilliseconds(value); + return date; + } + }]); + return FractionOfSecondParser; +}(Parser); + +var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) { + _inherits(ISOTimezoneWithZParser, _Parser); + var _super = _createSuper(ISOTimezoneWithZParser); + function ISOTimezoneWithZParser() { + var _this; + _classCallCheck(this, ISOTimezoneWithZParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 10); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['t', 'T', 'x']); + return _this; + } + _createClass(ISOTimezoneWithZParser, [{ + key: "parse", + value: function parse(dateString, token) { + switch (token) { + case 'X': + return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString); + case 'XX': + return parseTimezonePattern(timezonePatterns.basic, dateString); + case 'XXXX': + return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString); + case 'XXXXX': + return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString); + case 'XXX': + default: + return parseTimezonePattern(timezonePatterns.extended, dateString); + } + } + }, { + key: "set", + value: function set(date, flags, value) { + if (flags.timestampIsSet) { + return date; + } + return new Date(date.getTime() - value); + } + }]); + return ISOTimezoneWithZParser; +}(Parser); + +var ISOTimezoneParser = /*#__PURE__*/function (_Parser) { + _inherits(ISOTimezoneParser, _Parser); + var _super = _createSuper(ISOTimezoneParser); + function ISOTimezoneParser() { + var _this; + _classCallCheck(this, ISOTimezoneParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 10); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['t', 'T', 'X']); + return _this; + } + _createClass(ISOTimezoneParser, [{ + key: "parse", + value: function parse(dateString, token) { + switch (token) { + case 'x': + return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString); + case 'xx': + return parseTimezonePattern(timezonePatterns.basic, dateString); + case 'xxxx': + return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString); + case 'xxxxx': + return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString); + case 'xxx': + default: + return parseTimezonePattern(timezonePatterns.extended, dateString); + } + } + }, { + key: "set", + value: function set(date, flags, value) { + if (flags.timestampIsSet) { + return date; + } + return new Date(date.getTime() - value); + } + }]); + return ISOTimezoneParser; +}(Parser); + +var TimestampSecondsParser = /*#__PURE__*/function (_Parser) { + _inherits(TimestampSecondsParser, _Parser); + var _super = _createSuper(TimestampSecondsParser); + function TimestampSecondsParser() { + var _this; + _classCallCheck(this, TimestampSecondsParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 40); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", '*'); + return _this; + } + _createClass(TimestampSecondsParser, [{ + key: "parse", + value: function parse(dateString) { + return parseAnyDigitsSigned(dateString); + } + }, { + key: "set", + value: function set(_date, _flags, value) { + return [new Date(value * 1000), { + timestampIsSet: true + }]; + } + }]); + return TimestampSecondsParser; +}(Parser); + +var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) { + _inherits(TimestampMillisecondsParser, _Parser); + var _super = _createSuper(TimestampMillisecondsParser); + function TimestampMillisecondsParser() { + var _this; + _classCallCheck(this, TimestampMillisecondsParser); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + _defineProperty(_assertThisInitialized(_this), "priority", 20); + _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", '*'); + return _this; + } + _createClass(TimestampMillisecondsParser, [{ + key: "parse", + value: function parse(dateString) { + return parseAnyDigitsSigned(dateString); + } + }, { + key: "set", + value: function set(_date, _flags, value) { + return [new Date(value), { + timestampIsSet: true + }]; + } + }]); + return TimestampMillisecondsParser; +}(Parser); + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | Milliseconds in day | + * | b | AM, PM, noon, midnight | B | Flexible day period | + * | c | Stand-alone local day of week | C* | Localized hour w/ day period | + * | d | Day of month | D | Day of year | + * | e | Local day of week | E | Day of week | + * | f | | F* | Day of week in month | + * | g* | Modified Julian day | G | Era | + * | h | Hour [1-12] | H | Hour [0-23] | + * | i! | ISO day of week | I! | ISO week of year | + * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | + * | k | Hour [1-24] | K | Hour [0-11] | + * | l* | (deprecated) | L | Stand-alone month | + * | m | Minute | M | Month | + * | n | | N | | + * | o! | Ordinal number modifier | O* | Timezone (GMT) | + * | p | | P | | + * | q | Stand-alone quarter | Q | Quarter | + * | r* | Related Gregorian year | R! | ISO week-numbering year | + * | s | Second | S | Fraction of second | + * | t! | Seconds timestamp | T! | Milliseconds timestamp | + * | u | Extended year | U* | Cyclic year | + * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | + * | w | Local week of year | W* | Week of month | + * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | + * | y | Year (abs) | Y | Local week-numbering year | + * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + * + * Letters marked by ! are non-standard, but implemented by date-fns: + * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs) + * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, + * i.e. 7 for Sunday, 1 for Monday, etc. + * - `I` is ISO week of year, as opposed to `w` which is local week of year. + * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. + * `R` is supposed to be used in conjunction with `I` and `i` + * for universal ISO week-numbering date, whereas + * `Y` is supposed to be used in conjunction with `w` and `e` + * for week-numbering date specific to the locale. + */ +var parsers = { + G: new EraParser(), + y: new YearParser(), + Y: new LocalWeekYearParser(), + R: new ISOWeekYearParser(), + u: new ExtendedYearParser(), + Q: new QuarterParser(), + q: new StandAloneQuarterParser(), + M: new MonthParser(), + L: new StandAloneMonthParser(), + w: new LocalWeekParser(), + I: new ISOWeekParser(), + d: new DateParser(), + D: new DayOfYearParser(), + E: new DayParser(), + e: new LocalDayParser(), + c: new StandAloneLocalDayParser(), + i: new ISODayParser(), + a: new AMPMParser(), + b: new AMPMMidnightParser(), + B: new DayPeriodParser(), + h: new Hour1to12Parser(), + H: new Hour0to23Parser(), + K: new Hour0To11Parser(), + k: new Hour1To24Parser(), + m: new MinuteParser(), + s: new SecondParser(), + S: new FractionOfSecondParser(), + X: new ISOTimezoneWithZParser(), + x: new ISOTimezoneParser(), + t: new TimestampSecondsParser(), + T: new TimestampMillisecondsParser() +}; + +// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token +// (one of the certain letters followed by `o`) +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; + +// This RegExp catches symbols escaped by quotes, and also +// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` +var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; +var escapedStringRegExp = /^'([^]*?)'?$/; +var doubleQuoteRegExp = /''/g; +var notWhitespaceRegExp = /\S/; +var unescapedLatinCharacterRegExp = /[a-zA-Z]/; + +/** + * @name parse + * @category Common Helpers + * @summary Parse the date. + * + * @description + * Return the date parsed from string using the given format string. + * + * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. + * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * The characters in the format string wrapped between two single quotes characters (') are escaped. + * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. + * + * Format of the format string is based on Unicode Technical Standard #35: + * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table + * with a few additions (see note 5 below the table). + * + * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited + * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception: + * + * ```javascript + * parse('23 AM', 'HH a', new Date()) + * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time + * ``` + * + * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true + * + * Accepted format string patterns: + * | Unit |Prior| Pattern | Result examples | Notes | + * |---------------------------------|-----|---------|-----------------------------------|-------| + * | Era | 140 | G..GGG | AD, BC | | + * | | | GGGG | Anno Domini, Before Christ | 2 | + * | | | GGGGG | A, B | | + * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 | + * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 | + * | | | yy | 44, 01, 00, 17 | 4 | + * | | | yyy | 044, 001, 123, 999 | 4 | + * | | | yyyy | 0044, 0001, 1900, 2017 | 4 | + * | | | yyyyy | ... | 2,4 | + * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 | + * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 | + * | | | YY | 44, 01, 00, 17 | 4,6 | + * | | | YYY | 044, 001, 123, 999 | 4 | + * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 | + * | | | YYYYY | ... | 2,4 | + * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 | + * | | | RR | -43, 01, 00, 17 | 4,5 | + * | | | RRR | -043, 001, 123, 999, -999 | 4,5 | + * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 | + * | | | RRRRR | ... | 2,4,5 | + * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 | + * | | | uu | -43, 01, 99, -99 | 4 | + * | | | uuu | -043, 001, 123, 999, -999 | 4 | + * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 | + * | | | uuuuu | ... | 2,4 | + * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | | + * | | | Qo | 1st, 2nd, 3rd, 4th | 5 | + * | | | QQ | 01, 02, 03, 04 | | + * | | | QQQ | Q1, Q2, Q3, Q4 | | + * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | + * | | | QQQQQ | 1, 2, 3, 4 | 4 | + * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | | + * | | | qo | 1st, 2nd, 3rd, 4th | 5 | + * | | | qq | 01, 02, 03, 04 | | + * | | | qqq | Q1, Q2, Q3, Q4 | | + * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 | + * | | | qqqqq | 1, 2, 3, 4 | 3 | + * | Month (formatting) | 110 | M | 1, 2, ..., 12 | | + * | | | Mo | 1st, 2nd, ..., 12th | 5 | + * | | | MM | 01, 02, ..., 12 | | + * | | | MMM | Jan, Feb, ..., Dec | | + * | | | MMMM | January, February, ..., December | 2 | + * | | | MMMMM | J, F, ..., D | | + * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | | + * | | | Lo | 1st, 2nd, ..., 12th | 5 | + * | | | LL | 01, 02, ..., 12 | | + * | | | LLL | Jan, Feb, ..., Dec | | + * | | | LLLL | January, February, ..., December | 2 | + * | | | LLLLL | J, F, ..., D | | + * | Local week of year | 100 | w | 1, 2, ..., 53 | | + * | | | wo | 1st, 2nd, ..., 53th | 5 | + * | | | ww | 01, 02, ..., 53 | | + * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 | + * | | | Io | 1st, 2nd, ..., 53th | 5 | + * | | | II | 01, 02, ..., 53 | 5 | + * | Day of month | 90 | d | 1, 2, ..., 31 | | + * | | | do | 1st, 2nd, ..., 31st | 5 | + * | | | dd | 01, 02, ..., 31 | | + * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 | + * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 | + * | | | DD | 01, 02, ..., 365, 366 | 7 | + * | | | DDD | 001, 002, ..., 365, 366 | | + * | | | DDDD | ... | 2 | + * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | | + * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 | + * | | | EEEEE | M, T, W, T, F, S, S | | + * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | + * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 | + * | | | io | 1st, 2nd, ..., 7th | 5 | + * | | | ii | 01, 02, ..., 07 | 5 | + * | | | iii | Mon, Tue, Wed, ..., Sun | 5 | + * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 | + * | | | iiiii | M, T, W, T, F, S, S | 5 | + * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 | + * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | | + * | | | eo | 2nd, 3rd, ..., 1st | 5 | + * | | | ee | 02, 03, ..., 01 | | + * | | | eee | Mon, Tue, Wed, ..., Sun | | + * | | | eeee | Monday, Tuesday, ..., Sunday | 2 | + * | | | eeeee | M, T, W, T, F, S, S | | + * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | + * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | | + * | | | co | 2nd, 3rd, ..., 1st | 5 | + * | | | cc | 02, 03, ..., 01 | | + * | | | ccc | Mon, Tue, Wed, ..., Sun | | + * | | | cccc | Monday, Tuesday, ..., Sunday | 2 | + * | | | ccccc | M, T, W, T, F, S, S | | + * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | + * | AM, PM | 80 | a..aaa | AM, PM | | + * | | | aaaa | a.m., p.m. | 2 | + * | | | aaaaa | a, p | | + * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | | + * | | | bbbb | a.m., p.m., noon, midnight | 2 | + * | | | bbbbb | a, p, n, mi | | + * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | | + * | | | BBBB | at night, in the morning, ... | 2 | + * | | | BBBBB | at night, in the morning, ... | | + * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | | + * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 | + * | | | hh | 01, 02, ..., 11, 12 | | + * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | | + * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 | + * | | | HH | 00, 01, 02, ..., 23 | | + * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | | + * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 | + * | | | KK | 01, 02, ..., 11, 00 | | + * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | | + * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 | + * | | | kk | 24, 01, 02, ..., 23 | | + * | Minute | 60 | m | 0, 1, ..., 59 | | + * | | | mo | 0th, 1st, ..., 59th | 5 | + * | | | mm | 00, 01, ..., 59 | | + * | Second | 50 | s | 0, 1, ..., 59 | | + * | | | so | 0th, 1st, ..., 59th | 5 | + * | | | ss | 00, 01, ..., 59 | | + * | Seconds timestamp | 40 | t | 512969520 | | + * | | | tt | ... | 2 | + * | Fraction of second | 30 | S | 0, 1, ..., 9 | | + * | | | SS | 00, 01, ..., 99 | | + * | | | SSS | 000, 001, ..., 999 | | + * | | | SSSS | ... | 2 | + * | Milliseconds timestamp | 20 | T | 512969520900 | | + * | | | TT | ... | 2 | + * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | | + * | | | XX | -0800, +0530, Z | | + * | | | XXX | -08:00, +05:30, Z | | + * | | | XXXX | -0800, +0530, Z, +123456 | 2 | + * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | + * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | | + * | | | xx | -0800, +0530, +0000 | | + * | | | xxx | -08:00, +05:30, +00:00 | 2 | + * | | | xxxx | -0800, +0530, +0000, +123456 | | + * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | + * | Long localized date | NA | P | 05/29/1453 | 5,8 | + * | | | PP | May 29, 1453 | | + * | | | PPP | May 29th, 1453 | | + * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 | + * | Long localized time | NA | p | 12:00 AM | 5,8 | + * | | | pp | 12:00:00 AM | | + * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | | + * | | | PPpp | May 29, 1453, 12:00:00 AM | | + * | | | PPPpp | May 29th, 1453 at ... | | + * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 | + * Notes: + * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale + * are the same as "stand-alone" units, but are different in some languages. + * "Formatting" units are declined according to the rules of the language + * in the context of a date. "Stand-alone" units are always nominative singular. + * In `format` function, they will produce different result: + * + * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` + * + * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` + * + * `parse` will try to match both formatting and stand-alone units interchangably. + * + * 2. Any sequence of the identical letters is a pattern, unless it is escaped by + * the single quote characters (see below). + * If the sequence is longer than listed in table: + * - for numerical units (`yyyyyyyy`) `parse` will try to match a number + * as wide as the sequence + * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit. + * These variations are marked with "2" in the last column of the table. + * + * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. + * These tokens represent the shortest form of the quarter. + * + * 4. The main difference between `y` and `u` patterns are B.C. years: + * + * | Year | `y` | `u` | + * |------|-----|-----| + * | AC 1 | 1 | 1 | + * | BC 1 | 1 | 0 | + * | BC 2 | 2 | -1 | + * + * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`: + * + * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00` + * + * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00` + * + * while `uu` will just assign the year as is: + * + * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00` + * + * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00` + * + * The same difference is true for local and ISO week-numbering years (`Y` and `R`), + * except local week-numbering years are dependent on `options.weekStartsOn` + * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear} + * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}). + * + * 5. These patterns are not in the Unicode Technical Standard #35: + * - `i`: ISO day of week + * - `I`: ISO week of year + * - `R`: ISO week-numbering year + * - `o`: ordinal number modifier + * - `P`: long localized date + * - `p`: long localized time + * + * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. + * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month. + * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based + * on the given locale. + * + * using `en-US` locale: `P` => `MM/dd/yyyy` + * using `en-US` locale: `p` => `hh:mm a` + * using `pt-BR` locale: `P` => `dd/MM/yyyy` + * using `pt-BR` locale: `p` => `HH:mm` + * + * Values will be assigned to the date in the descending order of its unit's priority. + * Units of an equal priority overwrite each other in the order of appearance. + * + * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year), + * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing. + * + * `referenceDate` must be passed for correct work of the function. + * If you're not sure which `referenceDate` to supply, create a new instance of Date: + * `parse('02/11/2014', 'MM/dd/yyyy', new Date())` + * In this case parsing will be done in the context of the current date. + * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`, + * then `Invalid Date` will be returned. + * + * The result may vary by locale. + * + * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned. + * + * If parsing failed, `Invalid Date` will be returned. + * Invalid Date is a Date, whose time value is NaN. + * Time value of Date: http://es5.github.io/#x15.9.1.1 + * + * @param {String} dateString - the string to parse + * @param {String} formatString - the string of tokens + * @param {Date|Number} referenceDate - defines values missing from the parsed dateString + * @param {Object} [options] - an object with options. + * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale} + * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday) + * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year + * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`; + * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`; + * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * @returns {Date} the parsed date + * @throws {TypeError} 3 arguments required + * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6 + * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7 + * @throws {RangeError} `options.locale` must contain `match` property + * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * @throws {RangeError} format string contains an unescaped latin alphabet character + * + * @example + * // Parse 11 February 2014 from middle-endian format: + * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date()) + * //=> Tue Feb 11 2014 00:00:00 + * + * @example + * // Parse 28th of February in Esperanto locale in the context of 2010 year: + * import eo from 'date-fns/locale/eo' + * var result = parse('28-a de februaro', "do 'de' MMMM", new Date(2010, 0, 1), { + * locale: eo + * }) + * //=> Sun Feb 28 2010 00:00:00 + */ +function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) { + var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.r)(3, arguments); + var dateString = String(dirtyDateString); + var formatString = String(dirtyFormatString); + var defaultOptions = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.g)(); + var locale$1 = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : _index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.l; + if (!locale$1.match) { + throw new RangeError('locale must contain match property'); + } + var firstWeekContainsDate = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); + + // Test if weekStartsOn is between 1 and 7 _and_ is not NaN + if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { + throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); + } + var weekStartsOn = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.t)((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); + + // Test if weekStartsOn is between 0 and 6 _and_ is not NaN + if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { + throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); + } + if (formatString === '') { + if (dateString === '') { + return (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyReferenceDate); + } else { + return new Date(NaN); + } + } + var subFnOptions = { + firstWeekContainsDate: firstWeekContainsDate, + weekStartsOn: weekStartsOn, + locale: locale$1 + }; + + // If timezone isn't specified, it will be set to the system timezone + var setters = [new DateToSystemTimezoneSetter()]; + var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) { + var firstCharacter = substring[0]; + if (firstCharacter in longFormatters) { + var longFormatter = longFormatters[firstCharacter]; + return longFormatter(substring, locale$1.formatLong); + } + return substring; + }).join('').match(formattingTokensRegExp); + var usedTokens = []; + var _iterator = _createForOfIteratorHelper(tokens), + _step; + try { + var _loop = function _loop() { + var token = _step.value; + if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) { + throwProtectedError(token, formatString, dirtyDateString); + } + if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) { + throwProtectedError(token, formatString, dirtyDateString); + } + var firstCharacter = token[0]; + var parser = parsers[firstCharacter]; + if (parser) { + var incompatibleTokens = parser.incompatibleTokens; + if (Array.isArray(incompatibleTokens)) { + var incompatibleToken = usedTokens.find(function (usedToken) { + return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter; + }); + if (incompatibleToken) { + throw new RangeError("The format string mustn't contain `".concat(incompatibleToken.fullToken, "` and `").concat(token, "` at the same time")); + } + } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) { + throw new RangeError("The format string mustn't contain `".concat(token, "` and any other token at the same time")); + } + usedTokens.push({ + token: firstCharacter, + fullToken: token + }); + var parseResult = parser.run(dateString, token, locale$1.match, subFnOptions); + if (!parseResult) { + return { + v: new Date(NaN) + }; + } + setters.push(parseResult.setter); + dateString = parseResult.rest; + } else { + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); + } + + // Replace two single quote characters with one single quote character + if (token === "''") { + token = "'"; + } else if (firstCharacter === "'") { + token = cleanEscapedString(token); + } + + // Cut token from string, or, if string doesn't match the token, return Invalid Date + if (dateString.indexOf(token) === 0) { + dateString = dateString.slice(token.length); + } else { + return { + v: new Date(NaN) + }; + } + } + }; + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _ret = _loop(); + if ((0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__._)(_ret) === "object") return _ret.v; + } + + // Check if the remaining input contains something other than whitespace + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) { + return new Date(NaN); + } + var uniquePrioritySetters = setters.map(function (setter) { + return setter.priority; + }).sort(function (a, b) { + return b - a; + }).filter(function (priority, index, array) { + return array.indexOf(priority) === index; + }).map(function (priority) { + return setters.filter(function (setter) { + return setter.priority === priority; + }).sort(function (a, b) { + return b.subPriority - a.subPriority; + }); + }).map(function (setterArray) { + return setterArray[0]; + }); + var date = (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.b)(dirtyReferenceDate); + if (isNaN(date.getTime())) { + return new Date(NaN); + } + + // Convert the date in system timezone to the same date in UTC+00:00 timezone. + var utcDate = subMilliseconds(date, (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.c)(date)); + var flags = {}; + var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var setter = _step2.value; + if (!setter.validate(utcDate, subFnOptions)) { + return new Date(NaN); + } + var result = setter.set(utcDate, flags, subFnOptions); + // Result is tuple (date, flags) + if (Array.isArray(result)) { + utcDate = result[0]; + (0,_index_264b2c3e_js__WEBPACK_IMPORTED_MODULE_2__.d)(flags, result[1]); + // Result is date + } else { + utcDate = result; + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + return utcDate; +} +function cleanEscapedString(input) { + return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'"); +} + +const dataGridCss = ".scl-body{margin:0;font:var(--telekom-text-style-body)}.scl-label{margin:0;font:var(--telekom-text-style-small)}.scl-h1{margin:0;font:var(--telekom-text-style-heading-1)}.scl-h2{margin:0;font:var(--telekom-text-style-heading-2)}.scl-h3{margin:0;font:var(--telekom-text-style-heading-3)}.scl-h4{margin:0;font:var(--telekom-text-style-heading-4)}.scl-h5{margin:0;font:var(--telekom-text-style-heading-5)}.scl-h6{margin:0;font:var(--telekom-text-style-heading-6)}:host{font-family:var(--telekom-typography-font-family-sans);font-size:var(--telekom-typography-font-size-body);font-weight:var(--telekom-typography-font-weight-regular);line-height:var(--telekom-typography-line-spacing-standard);color:var(--telekom-color-text-and-icon-standard)}.data-grid input,.data-grid select{letter-spacing:inherit;font-weight:inherit;font-family:inherit;line-height:inherit}.data-grid{position:relative;display:block;background:var(--telekom-color-ui-state-fill-standard);border-radius:var(--telekom-radius-large);border:1px solid var(--telekom-color-ui-faint);overflow:hidden}.data-grid--hide-border{border:none}.data-grid__auto-width-check{opacity:0}.data-grid__title-block{display:flex;align-items:center;justify-content:flex-end;padding-right:var(--telekom-spacing-composition-space-06);padding-left:var(--telekom-spacing-composition-space-08)}.data-grid__heading{flex-grow:1}.data-grid__title-block ::slotted(*){margin-left:var(--telekom-spacing-composition-space-04)}.data-grid__settings-menu{margin-left:var(--telekom-spacing-composition-space-04)}.data-grid__scroll-container{overflow:auto;overflow-x:overlay;overflow-y:overlay;ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-gutter:stable}.data-grid__table{border-spacing:0;border-collapse:collapse;overflow:hidden}.data-grid--hide-menu .data-grid__settings-menu{display:none}.data-grid:not(.data-grid--hide-menu.data-grid--no-heading) .data-grid__title-block{min-height:var(--telekom-spacing-composition-space-18, 72px)}.data-grid--hide-menu .data-grid__title-block{padding-right:var(--telekom-spacing-composition-space-06)}.thead{display:block;white-space:nowrap;border-bottom:1px solid var(--telekom-color-ui-faint);position:relative;background:var(--telekom-color-ui-state-fill-standard);z-index:1}.data-grid--freeze-header .thead{z-index:30;background-color:var(--telekom-color-background-canvas)}.thead-sortable{cursor:pointer}.thead-sortable:focus{box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-focus-standard)}.thead__cell{display:inline-flex;align-items:center;height:var(--telekom-spacing-composition-space-10);text-align:left;user-select:none;position:relative;padding:0 var(--telekom-spacing-composition-space-06);color:var(--telekom-color-text-and-icon-additional)}.thead__cell--numbered{text-align:right;justify-content:flex-end}.thead__cell--selection{justify-content:center;text-align:center}.thead__cell--selection xds-checkbox::part(container){justify-content:center}.thead__title{color:var(--telekom-color-text-and-icon-standard)}.thead__text{font-size:var(--telekom-typography-font-size-small);line-height:var(--telekom-typography-line-spacing-standard);position:relative}.thead__arrow-top,.thead__arrow-bottom{position:absolute;display:none !important;top:-2px;left:-16px}.thead__sort-prompt{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;background:none;border:0;opacity:1;cursor:pointer}.thead__divider{position:absolute;right:calc(-1 * var(--telekom-spacing-composition-space-04));bottom:0px;height:100%;padding:19px var(--telekom-spacing-composition-space-04) 0px;box-sizing:border-box;cursor:col-resize;z-index:1}.thead__divider-line{pointer-events:none;height:100%;width:1px;background:var(--telekom-color-ui-faint)}.thead__cell:first-child{padding-left:var(--telekom-spacing-composition-space-08)}.thead__cell:focus{outline:none}.thead__cell[aria-sort='ascending'] .thead__arrow-top{display:inline-flex !important}.thead__cell[aria-sort='descending'] .thead__arrow-bottom{display:inline-flex !important}.thead__cell[aria-sort]:hover{color:var(--telekom-color-text-and-icon-primary-hovered)}.thead__cell[aria-sort='none']:hover .thead__arrow-top,.thead__cell[aria-sort='none']:hover .thead__arrow-bottom{display:none !important}.thead__cell[aria-sort='ascending']:hover .thead__arrow-top{color:var(--telekom-color-text-and-icon-primary-hovered)}.thead__cell[aria-sort='descending']:hover .thead__arrow-bottom{color:var(--telekom-color-text-and-icon-primary-hovered)}.tbody{display:block}.tbody__row{display:block;white-space:nowrap}.tbody__mobile-title{display:none}.tbody__mobile-label{display:none}.tbody__cell{display:inline-block;margin:8px;padding:8px;overflow:hidden;}.tbody__cell--numbered{text-align:right}.tbody__cell--selection{justify-content:center;text-align:center}.tbody__cell--selection scale-checkbox::part(container),.tbody__cell--selection scale-checkbox [part='container']{justify-content:center}.tbody__cell scale-checkbox{width:auto}.tbody__nested{white-space:nowrap;padding:0px;margin:0px}.tbody__nested-cell{display:block;padding:var(--telekom-spacing-composition-space-06);margin:0px}.tbody__cell:first-of-type{margin-left:var(--telekom-spacing-composition-space-06);}.tbody__nested-cell:first-child{margin-left:0px}.data-grid--shade-alternate .tbody__row:nth-of-type(even),.data-grid--shade-alternate .tbody__nested:nth-of-type(even){background:var(--telekom-color-background-surface-subtle)}.data-grid__auto-width-check .tbody__cell{padding:0}.tbody__tag-list{list-style:none;padding:0;margin:0}.tbody__tag-list li{display:inline-block;margin-right:8px}.tbody__tag-list li:last-child{margin-right:0}.data-grid input[type='checkbox']{display:block;height:14px;margin:5px 4px}.tbody__text-cell{display:flex;align-items:center}.tbody__text-cell-prefix{display:inline-flex;align-items:center;margin-right:0.5em}.tbody__text-cell-suffix{display:inline-flex;align-items:center;margin-left:0.5em}.tbody__cell p{overflow:hidden;text-overflow:ellipsis}.tbody__cell scale-link{overflow:hidden;text-overflow:ellipsis}.tbody__bar-cell{display:inline-flex;width:100%}.tbody__cell scale-progress-bar{flex-grow:1}.tbody__actions scale-button{margin-right:var(--telekom-spacing-composition-space-04)}.data-grid-progress-bar::part(progress-bar){min-width:50px;max-width:200px}.data-grid-progress-bar::part(status){padding-top:0}.info{height:44px;position:relative;border-top:var(--telekom-line-weight-standard) solid\n var(--telekom-color-ui-subtle);display:flex;justify-content:center}.info__selection{position:absolute;bottom:0;line-height:54px;left:var(--telekom-spacing-composition-space-08)}.data-grid--hide-border:not(.data-grid--mobile) .info__pagination{border-bottom:1px solid var(--telekom-color-ui-subtle);border-right:1px solid var(--telekom-color-ui-subtle)}.data-grid--mobile{border:none;background:none}.data-grid--mobile .data-grid__title-block{padding-left:0;padding-right:0}.data-grid--hide-menu.data-grid--mobile .data-grid__title-block{padding-right:0}.data-grid--mobile .data-grid__settings-menu{right:0}.data-grid--mobile .data-grid__scroll-container{height:auto !important}.data-grid--mobile .data-grid__table{display:block;height:auto !important}.data-grid--mobile .thead{display:none}.data-grid--mobile .tbody{display:block}.data-grid--mobile .tbody__row{display:block;position:relative;white-space:initial;margin:0 0 var(--telekom-spacing-composition-space-04);padding:var(--telekom-spacing-composition-space-08);border-radius:var(--telekom-radius-standard);background:var(--telekom-color-background-surface);border:1px solid var(--telekom-color-ui-faint)}.data-grid--mobile .tbody__row:hover{background:var(--telekom-color-background-surface)}.data-grid--mobile .tbody__mobile-title{display:block;margin-bottom:var(--telekom-spacing-composition-space-04)}.data-grid--mobile .tbody__mobile-label{display:block}.data-grid--mobile .tbody__cell{display:flex;align-items:center;width:auto !important;padding:5px 0;margin:0;min-height:var(--telekom-spacing-composition-space-08);line-height:var(--telekom-spacing-composition-space-08);overflow:auto;overflow-x:hidden}.data-grid--mobile .tbody__cell--used-as-mobile-title{display:none}.data-grid--mobile .tbody__mobile-label{display:block;width:100px;flex-shrink:0;color:var(--telekom-color-text-and-icon-additional);font-size:var(--telekom-typography-font-size-small);font-weight:var(--telekom-typography-font-weight-medium)}.data-grid--mobile .tbody__cell:first-child{margin-left:0px}.data-grid--mobile .tbody__cell--selection{position:absolute;top:19px;right:12px}.data-grid--mobile .tbody__cell--numbered{position:absolute;top:19px;right:56px}.data-grid--mobile .tbody__cell scale-text-field,.data-grid--mobile .tbody__cell scale-dropdown{width:100%}.data-grid--mobile .tbody__nested{width:auto !important}.data-grid--mobile .tbody__nested-cell{padding:0;margin-bottom:var(--telekom-spacing-composition-space-04)}.data-grid--mobile.data-grid--shade-alternate .tbody__row:nth-of-type(even){background:var(--telekom-color-background-surface)}.data-grid--mobile .info{height:auto;border-top:none;text-align:center}.data-grid--mobile .info__selection{position:relative;left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}"; + +/* Reused Private Variables */ +let resizeObserver; +const name = 'data-grid'; +const DataGrid = class { + /* 6. Lifecycle Events (call order) */ + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleEdit = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-edit", 7); + this.scaleEditLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleEdit", 7); + this.scaleSort = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-sort", 7); + this.scaleSortLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleSort", 7); + /* 2. State Variables (alphabetical) */ + /** Used to force render after sorting/selection */ + this.forceRender = 0; + /** Pagination starting index */ + this.paginationStart = 0; + /** Table scroll value for frozen header */ + this.scrollY = 0; + /** (optional) Freeze header row from scrolling */ + this.freezeHeader = false; + /** (optional) Heading string */ + this.heading = ''; + /** (optional) Set to true to remove border */ + this.hideBorder = false; + /** (optional) Set to true to hide header row */ + this.hideHeader = false; + /** (optional) Set to true to remove info footer block including pagination and selection status */ + this.hideInfo = false; + /** (optional) Set to true to hide settings menu */ + this.hideMenu = false; + /** (optional) Set to true to add numbers column */ + this.numbered = false; + /** (optional) Set number of rows to display per pagination page */ + this.pageSize = Infinity; + /** (optional) Set to true to add selection column */ + this.selectable = false; + /** Read-only selection array - populated with raw data from selected rows */ + this.selection = []; + /** (optional) Shade every second row darker */ + this.shadeAlternate = true; + /** (optional) Set to false to hide table, used for nested tables to re-render upon toggle */ + this.visible = true; + /** (optional) Title for sortable columns */ + this.sortableColumnTitle = 'Activate to sort column'; + /** Stored active sorting column index, for state removal */ + this.activeSortingIndex = -1; + /** Track component width to constrict nested content, which is necessary with table layout */ + this.contentWidth = 100; + /** Flag to know to check for data completeness */ + this.dataNeedsCheck = true; + /** Flag to know if rendering can commence */ + this.hasData = false; + /** Flag that is true when width below a certain limit */ + this.isMobile = false; + /** Flag that enough data supplied to warrant pagination */ + this.isPagination = false; + /** Flag that is true if any fields are sortable */ + this.isSortable = false; + /** Track container width to avoid re-calculating column stretching */ + this.lastContainerWidth = 100; + /** Index of field to use as mobile title, if any */ + this.mobileTitleIndex = -1; + /** Determine if auto-width parsing needed */ + this.needsAutoWidthParse = false; + /** Force column resize after render */ + this.needsColumnResize = false; + /** Auto-calculated number column width */ + this.numberColumnWidth = 0; + /** Selection column width */ + this.selectionColumnWidth = 22; + this.handleMenuListClick = (event) => { + const menuItems = ['sortBy', 'toggleVisibility']; + const currentMenuItemsIndex = menuItems.indexOf(event.target.id); + if (currentMenuItemsIndex > -1) { + // check if there is already opened flyout menu list with different id, if opened, close it + const inactiveMenuItem = this.hostElement.shadowRoot.querySelector(`#${menuItems[1 - currentMenuItemsIndex]}List`); + if (inactiveMenuItem) { + inactiveMenuItem.setAttribute('opened', 'false'); + } + } + }; + // Bind certain callbacks to scope + this.onDividerMove = this.onDividerMove.bind(this); + this.onDividerUp = this.onDividerUp.bind(this); + this.applyResponsiveClasses = this.applyResponsiveClasses.bind(this); + this.updateColumnStretching = this.updateColumnStretching.bind(this); + } + componentWillLoad() { + this.fieldsHandler(); + this.rowsHandler(); + } + componentWillUpdate() { } + componentDidRender() { + if (this.needsAutoWidthParse) { + this.calculateAutoWidths(); + } + // Wait a frame to avoid warning about possible infinite loop + setTimeout(() => { + if (this.needsColumnResize) { + this.updateColumnStretching(); + } + }); + } + componentDidLoad() { + this.addResizeObserver(); + } + componentDidUpdate() { } + disconnectedCallback() { + this.removeResizeObserver(); + } + /* 7. Listeners */ + fieldsHandler() { + this.parseFields(); + this.checkForMobileTitle(); + this.checkForSortableFields(); + this.dataNeedsCheck = true; + } + rowsHandler() { + // Reset pagination to the last page of the new records if new records are less than previous. + if (this.paginationStart > this.rows.length) { + this.paginationStart = + this.rows.length - (this.rows.length % this.pageSize); + } + this.parseRows(); + this.setInitialRowProps(); + this.resetSortingToggle(); + this.dataNeedsCheck = true; + // Set flag to dirty to redo column width with new data + this.needsAutoWidthParse = true; + this.needsColumnResize = true; + if ( + // when we run out of items on the current page + this.rows.length <= this.paginationStart && + // and we are NOT on the first page + this.paginationStart - this.pageSize > -1) { + // step back one page + this.paginationStart = this.paginationStart - this.pageSize; + } + } + /* 8. Public Methods */ + /* 9. Local Methods */ + parseFields() { + if (this.fields && typeof this.fields === 'string') { + this.fields = JSON.parse(this.fields); + } + } + parseRows() { + if (this.rows && typeof this.rows === 'string') { + this.rows = JSON.parse(this.rows); + } + } + setInitialRowProps() { + if (!this.rows || !this.rows.length) { + return; + } + this.rows.forEach((row, i) => { + // Store indices of original order on rows for resetting sorting + row.initialIndex = i; + // Set initial selected flag + row.selected = false; + }); + // Determine if pagination will be required + this.isPagination = this.pageSize <= this.rows.length - 1; + } + checkHasData() { + // Need both fields and data content in order to populate + if (!this.fields) { + return false; + } + for (let i = 0; i < this.fields.length; i++) { + // Use default type if none set + if (!this.fields[i].type) { + this.fields[i].type = DEFAULT_CELL_TYPE; + } + if (!CELL_TYPES[this.fields[i].type]) { + // tslint:disable-next-line: no-console + console.warn(`Unrecognised field type: "${this.fields[i].type}"`); + return false; + } + } + if (!this.rows || !this.rows.length) { + return false; + } + for (let i = 0; i < this.rows.length; i++) { + if (this.rows[i].length !== this.fields.length) { + // tslint:disable-next-line: no-console + console.warn(`Unable to render ${this.heading && `"${this.heading}" `}table: row data length not equal to supplied fields.`); + return false; + } + } + return true; + } + checkForMobileTitle() { + // Reset for new data + this.mobileTitleIndex = -1; + if (!this.fields) { + return; + } + this.fields.every(({ mobileTitle }, i) => { + if (mobileTitle) { + this.mobileTitleIndex = i; + return false; + } + return true; + }); + } + checkForSortableFields() { + this.isSortable = false; + if (!this.fields) { + return; + } + this.fields.forEach(({ sortable }) => { + if (sortable) { + this.isSortable = true; + } + }); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)(name, !this.isMobile && `${name}--desktop`, this.isMobile && `${name}--mobile`, this.shadeAlternate && `${name}--shade-alternate`, this.freezeHeader && `${name}--freeze-header`, this.hideBorder && `${name}--hide-border`, this.hideMenu && `${name}--hide-menu`, !this.heading && `${name}--no-heading`); + } + polyfillMousePosition(e) { + // For touch + if (e.changedTouches && e.changedTouches.length) { + e.x = e.changedTouches[0].pageX; + e.y = e.changedTouches[0].pageY; + } + // For cross browser support + if (e.x === undefined) { + e.x = e.clientX; + e.y = e.clientY; + } + } + getDefaultLongestContent({ rows, columnIndex }) { + let maxLength = 0; + let longestContent; + rows.forEach((row) => { + const length = row[columnIndex].toString().length; + if (length > maxLength) { + longestContent = row[columnIndex]; + maxLength = length; + } + }); + return longestContent; + } + // Selection handlers + toggleSelectAll() { + if (!this.elToggleSelectAll) { + return; + } + this.rows.forEach((row) => (row.selected = this.elToggleSelectAll.checked)); + this.updateReadableSelection(); + this.forceRender++; + } + toggleRowSelect({ target }, rowIndex) { + this.rows[rowIndex].selected = target.checked; + this.updateReadableSelection(); + this.forceRender++; + } + updateReadableSelection() { + this.selection.length = 0; + this.rows.forEach((row) => row.selected && this.selection.push(row)); + // Check header checkbox if any or none are selected + const selectAll = this.hostElement.shadowRoot.querySelector('.thead__cell--selection scale-checkbox'); + selectAll.checked = !!this.selection.length; + // selectAll.indeterminate = !!this.selection.length; + } + // Sorting handlers + toggleTableSorting(sortDirection, columnIndex, type) { + // Remove sorting from previous column index + if (this.activeSortingIndex > -1 && + this.activeSortingIndex !== columnIndex) { + this.fields[this.activeSortingIndex].sortDirection = 'none'; + } + // Store new column index + this.activeSortingIndex = columnIndex; + const newSortDirection = sortDirection === 'none' + ? 'ascending' + : sortDirection === 'ascending' + ? 'descending' + : 'none'; + this.fields[columnIndex].sortDirection = newSortDirection; + this.sortTable(newSortDirection, type, columnIndex); + } + sortTable(sortDirection, type, columnIndex) { + const format = this.fields[columnIndex].format; + if (sortDirection === 'none') { + this.rows.sort((a, b) => { + return a.initialIndex - b.initialIndex; + }); + } + else if (type === 'date' && format) { + this.rows.sort((a, b) => { + const getDateObject = (dateString) => { + const parsed = parse(dateString, format, new Date()); + return parsed; + }; + const dateObjectA = getDateObject(a[columnIndex]); + const dateObjectB = getDateObject(b[columnIndex]); + // valueOf here for typescript to not complain about dateObjectA and dateObjectB not being numbers + return sortDirection === 'ascending' + ? dateObjectA.valueOf() - dateObjectB.valueOf() + : dateObjectB.valueOf() - dateObjectA.valueOf(); + }); + } + else { + switch ((CELL_TYPES[type] && + CELL_TYPES[type].defaults && + CELL_TYPES[type].defaults.sortBy) || + CELL_DEFAULTS.sortBy) { + case 'text': + case 'date': + if (sortDirection === 'ascending') { + this.rows.sort((a, b) => { + const textA = a[columnIndex].toLowerCase(); + const textB = b[columnIndex].toLowerCase(); + return textA < textB ? -1 : textA > textB ? 1 : 0; + }); + } + else { + this.rows.sort((a, b) => { + const textA = a[columnIndex].toLowerCase(); + const textB = b[columnIndex].toLowerCase(); + return textA > textB ? -1 : textA < textB ? 1 : 0; + }); + } + break; + case 'number': + if (sortDirection === 'ascending') { + this.rows.sort((a, b) => { + return Number(a[columnIndex]) - Number(b[columnIndex]); + }); + } + else { + this.rows.sort((a, b) => { + return Number(b[columnIndex]) - Number(a[columnIndex]); + }); + } + break; + } + } + this.forceRender++; + // Trigger event + this.triggerSortEvent(sortDirection, type, columnIndex); + } + resetSortingToggle() { + if (this.activeSortingIndex > -1) { + this.fields[this.activeSortingIndex].sortDirection = 'none'; + } + this.activeSortingIndex = -1; + } + // Column resize handlers + onDividerDown(e) { + this.polyfillMousePosition(e); + // For touch - Prevent mousedown firing, and native scroll + e.preventDefault(); + // Store divider elem for use in move and end events + this.activeDivider = e.target; + // Store initial value to calculate change + e.target.downX = e.x; + // Reset to avoid reapplying previous change + this.activeDivider.interactiveWidth = 0; + window.addEventListener('mousemove', this.onDividerMove); + window.addEventListener('touchmove', this.onDividerMove); + window.addEventListener('mouseup', this.onDividerUp); + window.addEventListener('touchend', this.onDividerUp); + } + onDividerMove(e) { + // TODO: calculate width stretchWidth to drop in correct location + this.polyfillMousePosition(e); + const { width, min, max } = this.activeDivider.dataset; + const diff = e.x - this.activeDivider.downX; + const newWidth = Math.min(Number(max), Math.max(Number(min), Number(width) + diff)); + const adjustedDiff = newWidth - Number(width); + this.activeDivider.interactiveWidth = newWidth; + // Give immediate visual feedback + this.activeDivider.style.transform = `translateX(${adjustedDiff}px)`; + } + onDividerUp() { + const { index } = this.activeDivider.dataset; + // Store new width on the field data + if (this.activeDivider.interactiveWidth) { + this.fields[Number(index)].width = this.activeDivider.interactiveWidth; + } + // Reset visual feedback + this.activeDivider.style.transform = `translateX(0px)`; + window.removeEventListener('mousemove', this.onDividerMove); + window.removeEventListener('touchmove', this.onDividerMove); + window.removeEventListener('mouseup', this.onDividerUp); + window.removeEventListener('touchend', this.onDividerUp); + // Update column stretching before rendering + this.needsColumnResize = true; + this.updateColumnStretching(); + // Render to apply change + this.forceRender++; + } + // Column visibility toggle handlers + toggleVisibilityMenu(e) { + e.preventDefault(); + // TODO: replace this with contextual menu component, when available + const visibilityToggle = this.hostElement.shadowRoot.querySelector('.visibility-toggle'); + const menu = visibilityToggle.children[1]; + // By default + if (visibilityToggle.style.display === 'none') { + visibilityToggle.style.display = 'block'; + menu.style.transform = `translate(${e.clientX}px, ${e.clientY}px)`; + } + else { + visibilityToggle.style.display = 'none'; + } + } + toggleColumnVisibility(value, columnIndex) { + this.fields[columnIndex].visible = value; + this.forceRender++; + // Update column stretching + this.needsColumnResize = true; + this.updateColumnStretching(); + } + // Resize handlers + addResizeObserver() { + if (!resizeObserver) { + // @ts-ignore + resizeObserver = new ResizeObserver((entries) => { + for (const entry of entries) { + // Skip if table not visible/attached + if (entry.target.offsetParent === null) { + return; + } + entry.target.applyResponsiveClasses(entry); + entry.target.updateColumnStretching(); + } + }); + } + this.elMmainContainer = this.hostElement.shadowRoot.querySelector(`.${name}`); + // Add this instance's callbacks, as resizeObserver is reused + this.elMmainContainer.applyResponsiveClasses = this.applyResponsiveClasses; + this.elMmainContainer.updateColumnStretching = this.updateColumnStretching; + resizeObserver.observe(this.elMmainContainer); + } + removeResizeObserver() { + if (this.elMmainContainer) { + resizeObserver.unobserve(this.elMmainContainer); + } + } + applyResponsiveClasses() { + // Apply container-scoped media-query-style classes + const newIsMobile = this.elMmainContainer.offsetWidth <= 500; + if (this.isMobile !== newIsMobile) { + this.forceRender++; + } + this.isMobile = newIsMobile; + } + updateColumnStretching() { + // NOTE: any styling padding/margin width changes need to be adjusted here as well + // Ignore auto-width-check content renders + if (this.needsAutoWidthParse) { + return; + } + const container = this.elMmainContainer; + // Minus 2 for border + const containerWidth = container.offsetWidth - 2; + const hasContainerWidthChanged = this.lastContainerWidth !== containerWidth; + // If width hasn't changed, don't re-calculate + if (!hasContainerWidthChanged && !this.needsColumnResize) { + return; + } + this.needsColumnResize = false; + this.lastContainerWidth = containerWidth; + // Don't calculate when mobile layout + if (container.offsetWidth <= 500) { + return; + } + // The theoretical target width - ignoring any previously applied stretching + const targetContentWidth = (() => { + let total = 0; + // Extra margin on first column + total += 8; + if (this.numbered) { + // 32 for padding+margin + total += this.numberColumnWidth + 32; + // this.selectionColumnWidth; + } + if (this.selectable) { + // 32 for padding+margin + total += this.selectionColumnWidth + 32; + // If both selectable and numbered - adjust for reduced margin between + if (this.numbered) { + total -= 16; + } + } + // Add each visible column's target width + this.fields.forEach(({ visible = true, width }) => { + if (visible) { + // 32 for padding+margin + total += width + 32; + } + }); + return total; + })(); + // Update value passed to nested content to overcome table display layout + this.contentWidth = Math.max(targetContentWidth, containerWidth); + const diff = containerWidth - targetContentWidth; + if (diff <= 0) { + // content larger than container (scrollbar), remove all stretching + this.fields.forEach((field) => (field.stretchWidth = 0)); + } + else { + // container larger than content (gap to the right), calculate stretching + // If stretchWeight set, divide value between total to get final weight + // If stretchWeight unset, share remainder of 1 (if any) between all unset cols + let totalSetWeight = 0; + let unsetColsCount = 0; + this.fields.forEach(({ visible = true, stretchWeight }) => { + // Disregard invisible columns + if (!visible) { + return; + } + if (typeof stretchWeight === 'number') { + totalSetWeight += stretchWeight; + } + else { + unsetColsCount++; + } + }); + const remainderWeight = Math.max(0, 1 - totalSetWeight); + // Set total to be divided against to be above 1 to keep total set/unset weights equal to 1 + totalSetWeight = Math.max(1, totalSetWeight); + this.fields.forEach((field) => { + const { visible = true, stretchWeight } = field; + if (!visible) { + return; + } + // Actual stretch weight, out of a total 1 for all columns + let weight = 0; + if (typeof stretchWeight === 'number') { + weight = stretchWeight / totalSetWeight; + } + else if (remainderWeight > 0) { + weight = remainderWeight / unsetColsCount; + } + // Apply stretching with the weight percentage + field.stretchWidth = diff * weight; + }); + } + this.forceRender++; + } + // Auto column width handlers + calculateAutoWidths() { + let isVisible = false; + const columns = this.hostElement.shadowRoot.querySelectorAll(`.${name}__auto-width-check td`); + columns.forEach((cell) => { + // Make sure table is actually rendered (eg not display:none etc) + if (!isVisible && cell.offsetParent !== null) { + isVisible = true; + } + if (!isVisible) { + return; + } + // Update field width with that of largest content + this.fields[cell.dataset.columnindex].width = cell.clientWidth; + }); + if (!isVisible) { + return; + } + // Wrap in setTimeout to avoid warning about forcing render within render callback + setTimeout(() => { + this.needsAutoWidthParse = false; + this.forceRender++; + }); + } + // Event triggers + triggerSortEvent(sortDirection, type, columnIndex) { + const data = { + rows: this.rows, + type, + sortDirection, + columnIndex, + }; + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleSort', data); + } + triggerEditEvent(value, rowIndex, columnIndex) { + const data = { + rows: this.rows, + rowIndex, + columnIndex, + value, + }; + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleEdit', data); + // Force render for checkboxes + this.forceRender++; + } + onTableScroll() { + if (!this.freezeHeader || this.hideHeader) { + return; + } + // Freeze header + const scrollY = this.elScrollContainer.scrollTop; + this.elTableHead.style.transform = `translateY(${scrollY}px)`; + } + renderSettingsMenu() { + var _a, _b, _c; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout", { class: `${name}__settings-menu` }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-button", { slot: "trigger", variant: "secondary", "icon-only": true, "data-sortable": this.isSortable }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-service-settings", { accessibilityTitle: "Table options" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-list", null, this.isSortable && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-item", { id: "sortBy", onClick: this.handleMenuListClick }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-sort", { slot: "prefix" }), ((_a = this.localization) === null || _a === void 0 ? void 0 : _a.sortBy) || 'Sort By', (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-list", { slot: "sublist", id: "sortByList" }, this.fields.map(({ label, type, sortable, sortDirection = 'none' }, columnIndex) => { + if (!sortable) { + return ''; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-item", { "onScale-select": () => this.toggleTableSorting(sortDirection, columnIndex, type) }, sortDirection === 'ascending' && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-up", { size: 16, slot: "prefix" })), sortDirection === 'descending' && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-down", { size: 16, slot: "prefix" })), sortDirection === 'none' && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-navigation-collapse-up", { size: 16, slot: "prefix", style: { opacity: '0' } })), label || type)); + })))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-item", { id: "toggleVisibility", onClick: this.handleMenuListClick }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-hide-password", { slot: "prefix" }), ((_b = this.localization) === null || _b === void 0 ? void 0 : _b.toggle) || 'Toggle Visibility', (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-list", { slot: "sublist", "close-on-select": "false", id: "toggleVisibilityList" }, this.fields.map(({ label, type, visible = CELL_TYPES[type].defaults.visible !== undefined + ? CELL_TYPES[type].defaults.visible + : CELL_DEFAULTS.visible, }, columnIndex) => { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-item", { checkable: "checkbox", checked: !!visible, "onScale-select": () => this.toggleColumnVisibility(!visible, columnIndex) }, label || type)); + }))), this.selectable && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-item", { "onScale-select": () => { + this.elToggleSelectAll.checked = + !this.elToggleSelectAll.checked; + this.toggleSelectAll(); + } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon", { slot: "prefix", path: "M20.9328 10.6668C20.5132 10.6668 20.1731 11.0069 20.1731 11.4265V20.3269H1.5194V1.67309H16.5049C16.9245 1.67309 17.2646 1.33292 17.2646 0.913386C17.2646 0.49385 16.9245 0.153687 16.5049 0.153687H0.759699C0.340163 0.153687 0 0.49385 0 0.913386V21.0866C0 21.5062 0.340163 21.8463 0.759699 21.8463H20.9328C21.3523 21.8463 21.6925 21.5062 21.6925 21.0866V11.4265C21.6925 11.0069 21.3524 10.6668 20.9328 10.6668ZM23.7774 0.653387C23.4807 0.356739 22.9997 0.356739 22.703 0.653387L10.3293 13.0272L7.25501 9.9529C6.9583 9.65625 6.47732 9.65625 6.18061 9.9529C5.88396 10.2496 5.88396 10.7306 6.18061 11.0273L9.7921 14.6388C9.94045 14.7871 10.1349 14.8613 10.3293 14.8613C10.5237 14.8613 10.7181 14.7871 10.8665 14.6388L23.7774 1.72778C24.0741 1.43108 24.0741 0.950095 23.7774 0.653387Z" }), ((_c = this.localization) === null || _c === void 0 ? void 0 : _c.select) || 'Select / Deselect All')), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "menu" })))); + } + renderTable() { + if (this.needsAutoWidthParse) { + return this.renderAutoWidthCheck(); + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { ref: (el) => (this.elScrollContainer = el), class: `${name}__scroll-container`, style: { height: this.height || 'auto' }, onScroll: () => this.onTableScroll() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("table", { class: `${name}__table` }, this.renderTableHead(), this.renderTableBody()))); + } + renderAutoWidthCheck() { + // Calculate number column width + this.numberColumnWidth = this.rows.length.toString().length * 9; + // Get columns with width option set to 'auto' + const autoCols = []; + this.fields.forEach(({ type, width = CELL_TYPES[type].defaults.width || CELL_DEFAULTS.width, }, columnIndex) => { + if (width === 'auto') { + autoCols.push(columnIndex); + } + }); + if (!autoCols.length) { + this.needsAutoWidthParse = false; + return this.renderTable(); + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("table", { class: `${name}__auto-width-check ${name}__table` }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("tr", { class: `tbody__row` }, autoCols.map((columnIndex) => { + const field = this.fields[columnIndex]; + const { type, cell = CELL_TYPES[type] } = field; + // Find largest content of each type. Use custom getter if exists + const getLongestContent = cell.getLongestContent || this.getDefaultLongestContent; + const content = getLongestContent({ + rows: this.rows, + columnIndex, + field, + }); + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("td", { class: `tbody__cell`, style: { width: 'auto' }, "data-columnindex": columnIndex }, cell.render({ + field, + content, + component: this, + isAutoWidthCheck: true, + }))); + })))); + } + renderTableHead() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("thead", { ref: (el) => (this.elTableHead = el), class: `thead ${this.hideHeader ? 'sr-only' : ''}` }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("tr", { class: `thead__row` }, this.numbered && this.renderTableHeadNumberedCell(), this.selectable && this.renderTableHeadSelectableCell(), this.fields.map(({ type, label = '', + // Params can be set optionally in the fields options, in the cell type + // descriptor class, or falls back to common defaults + visible = CELL_TYPES[type].defaults.visible !== undefined + ? CELL_TYPES[type].defaults.visible + : CELL_DEFAULTS.visible, sortable, sortDirection = 'none', resizable = CELL_TYPES[type].defaults.resizable !== undefined + ? CELL_TYPES[type].defaults.resizable + : CELL_DEFAULTS.resizable, width = CELL_TYPES[type].defaults.width || CELL_DEFAULTS.width, minWidth = CELL_TYPES[type].defaults.minWidth || + CELL_DEFAULTS.minWidth, maxWidth = CELL_TYPES[type].defaults.maxWidth || + CELL_DEFAULTS.maxWidth, textAlign = CELL_TYPES[type].defaults.textAlign || + CELL_DEFAULTS.textAlign, stretchWidth = 0, }, columnIndex) => { + if (!visible) { + return; + } + const props = { + class: `thead__cell`, + style: { + width: `calc(${width}px + ${stretchWidth}px)`, + 'justify-content': textAlign, + }, + 'data-type': type, + }; + if (sortable) { + props['aria-sort'] = sortDirection; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("th", Object.assign({ title: sortable ? this.sortableColumnTitle : undefined }, props, (sortable + ? { + onKeyDown: (event) => { + if (['Enter', ' '].includes(event.key)) { + this.toggleTableSorting(sortDirection, columnIndex, type); + } + }, + onClick: (e) => { + const clickedElement = e.target; + if (!clickedElement.matches('.thead__divider')) { + this.toggleTableSorting(sortDirection, columnIndex, type); + } + }, + tabindex: 0, + class: `${props.class} thead-sortable`, + } + : {})), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `thead__title` }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: `thead__text` }, sortable && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-content-sort-indicator-up", { size: 16, class: `thead__arrow-top` })), sortable && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-content-sort-indicator-down", { size: 16, class: `thead__arrow-bottom` })), label)), resizable && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `thead__divider`, "data-index": columnIndex, "data-width": width, "data-min": minWidth, "data-max": maxWidth, onMouseDown: (e) => this.onDividerDown(e), onTouchStart: (e) => this.onDividerDown(e), "aria-hidden": "true" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `thead__divider-line` }))))); + })))); + } + renderTableHeadNumberedCell() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("th", { class: `thead__cell thead__cell--numbered`, style: { width: this.numberColumnWidth + 'px' } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "scl-body" }, "#"))); + } + renderTableHeadSelectableCell() { + const style = { + width: this.selectionColumnWidth + 'px', + }; + // Make selection and numbered cells closer than regular padding + if (this.numbered) { + style.paddingLeft = '0px'; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("th", { class: `thead__cell thead__cell--selection`, style: style, title: "Select" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-checkbox", { ref: (el) => (this.elToggleSelectAll = el), onScaleChange: () => this.toggleSelectAll(), hideLabel: true, "aria-label": "Select" }))); + } + renderTableBody() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("tbody", { class: `tbody` }, (() => { + const rows = []; + // Pagination functionality + const total = this.rows.length; + const start = this.paginationStart; + const end = Math.min(total, this.paginationStart + this.pageSize); + for (let rowIndex = start; rowIndex < end; rowIndex++) { + const rowData = this.rows[rowIndex]; + const rowNestedContent = []; + let isNestedExpanded = false; + rows.push((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("tr", { class: `tbody__row` }, this.renderMobileTitle(rowData), this.numbered && this.renderTableBodyNumberedCell(rowIndex), this.selectable && + this.renderTableBodySelectableCell(rowIndex), rowData.map((cellContent, columnIndex) => { + const field = this.fields[columnIndex]; + const visible = field.visible !== undefined + ? field.visible + : CELL_TYPES[field.type].defaults.visible !== undefined + ? CELL_TYPES[field.type].defaults.visible + : CELL_DEFAULTS.visible; + if (!visible) { + return; + } + // Add rows nested tables to array + if (field.type === 'html') { + if (!cellContent) { + return this.renderTableCell(field, null, rowIndex, columnIndex); + } + if (!!cellContent.isExpanded) { + isNestedExpanded = true; + } + rowNestedContent.push({ + content: cellContent, + }); + } + return this.renderTableCell(field, cellContent, rowIndex, columnIndex); + }))); + // Add second row for nested content if any within the row are expanded + if (rowNestedContent.length) { + rows.push((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `tbody__nested`, style: { + width: this.contentWidth + 'px', + display: isNestedExpanded ? 'block' : 'none', + } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("td", { class: `tbody__nested-cell` }, rowNestedContent.map(({ content }) => { + return (content && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { ref: (el) => { + if (el) { + // Remove content from other pages + let child = el.lastElementChild; + while (child) { + el.removeChild(child); + child = el.lastElementChild; + } + // Append actual content + el.appendChild(content); + } + } }))); + })))); + } + } + return rows; + })())); + } + renderMobileTitle(rowData) { + if (this.mobileTitleIndex === -1) { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("h5", { class: `tbody__mobile-title scl-h5` }, "\u00A0"); + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("h5", { class: `tbody__mobile-title scl-h5` }, rowData[this.mobileTitleIndex])); + } + renderTableBodyNumberedCell(rowIndex) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("td", { class: `tbody__cell tbody__cell--numbered`, style: { width: this.numberColumnWidth + 'px' } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", { class: "scl-body" }, rowIndex + 1))); + } + renderTableBodySelectableCell(rowIndex) { + const style = { + width: this.selectionColumnWidth + 'px', + }; + if (this.numbered) { + style.marginLeft = '0px'; + style.paddingLeft = '0px'; + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("td", { title: this.rows[rowIndex][0], class: `tbody__cell tbody__cell--selection`, style: style }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-checkbox", { checked: this.rows[rowIndex].selected, onScaleChange: (e) => this.toggleRowSelect(e, rowIndex), hideLabel: true }))); + } + renderTableCell(field, content, rowIndex, columnIndex) { + const cell = CELL_TYPES[field.type]; + const { label, + // Use custom field, or default defined in class, or fallback default + width = cell.defaults.width || CELL_DEFAULTS.width, stretchWidth = 0, mobileTitle, // For text cells + } = field; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("td", { class: `tbody__cell${mobileTitle ? ` tbody__cell--used-as-mobile-title` : ``}`, style: { width: `calc(${width}px + ${stretchWidth}px)` } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `tbody__mobile-label` }, label), cell.render({ + field, + content, + component: this, + rowIndex, + columnIndex, + }))); + } + renderTableInfo() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `info` }, this.selectable && !!this.selection.length && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `info__selection` }, `${this.selection.length} row${this.selection.length > 1 ? 's' : ''} selected`)), this.isPagination && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-pagination", { class: `info__pagination`, hideBorder: !this.isMobile, startElement: this.paginationStart, totalElements: this.rows.length, pageSize: this.pageSize, onScalePagination: ({ detail }) => (this.paginationStart = detail.startElement) })))); + } + /* 10. Render */ + render() { + if (this.dataNeedsCheck) { + this.hasData = this.checkHasData(); + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { style: { + display: this.visible ? 'block' : 'none', + } }, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: `${name}__title-block` }, this.heading && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("h4", { class: `${name}__heading scl-h5` }, this.heading)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)), this.hasData && this.renderSettingsMenu()), this.hasData && this.renderTable(), this.hasData && + !this.hideInfo && + !this.needsAutoWidthParse && + (this.selectable || this.isPagination) && + this.renderTableInfo()))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "fields": ["fieldsHandler"], + "rows": ["rowsHandler"] + }; } +}; +DataGrid.style = dataGridCss; + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/410.91f06294.js b/pr-preview/pr-186/assets/js/410.91f06294.js new file mode 100644 index 000000000..8d26e416b --- /dev/null +++ b/pr-preview/pr-186/assets/js/410.91f06294.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 410; +exports.ids = [410]; +exports.modules = { + +/***/ 40410: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_mobile_services: () => (/* binding */ DeviceMobileServices) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceMobileServices = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.5.5a3 3 0 012.995 2.824l.005.176v1l-.165.855-.18 1-.845-.585-.685-.5-2.26 2.26-.59.595.475.685.57.855L9 10v4l.83.2 1 .185-1.055 1.53 2.85 2.85.685-.5.845-.585.18 1 .165.82v1a3 3 0 01-2.824 2.995l-.176.005h-8a3 3 0 01-2.995-2.824L.5 20.5v-17A3 3 0 013.324.505L3.5.5h8zm-4 17.75a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0 .5a1 1 0 110 2 1 1 0 010-2zM17.685 5.5L18 7.135a.595.595 0 00.816.41L18.9 7.5l1.375-.93 1.67 1.67L21 9.605a.59.59 0 00.279.867l.091.028 1.635.32v2.38l-1.635.3a.59.59 0 00-.415.81l.045.085.935 1.38-1.67 1.67L18.9 16.5a.595.595 0 00-.871.279L18 16.87l-.315 1.63H15.32l-.295-1.615a.595.595 0 00-.833-.434l-.087.049-1.38.93-1.67-1.67.945-1.365a.59.59 0 00-.268-.908l-.097-.027-1.63-.3V10.8l1.63-.3a.59.59 0 00.41-.811L12 9.605l-.93-1.365 1.67-1.67 1.365.94a.59.59 0 00.894-.284l.026-.096.295-1.63h2.365zM16.5 10a2 2 0 100 4 2 2 0 000-4zm-7-7.75h-4v1h4v-1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.5.5a3.01 3.01 0 012.995 2.824l.005.176v.75c-.4.12-.8.24-1.2.411L13 4.8V3.5c0-.8-.576-1.423-1.352-1.493L11.5 2h-2v1.5h-4V2h-2c-.8 0-1.423.576-1.493 1.352L2 3.5v17c0 .8.576 1.423 1.352 1.493L3.5 22h8c.8 0 1.423-.576 1.493-1.352L13 20.5v-1.3c.4.2.8.336 1.2.46l.3.09v.75a3.01 3.01 0 01-2.824 2.995l-.176.005h-8a3.01 3.01 0 01-2.995-2.824L.5 20.5v-17A3.01 3.01 0 013.324.505L3.5.5h8zm-4 18a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm7.85-13h2.35l.3 1.6c.046.418.48.62.823.447L18.9 7.5l1.35-.9 1.65 1.65-.95 1.35a.617.617 0 00.311.87l.089.03 1.65.35v2.35l-1.65.3c-.371.046-.57.48-.397.823L21 14.4l.85 1.3-1.65 1.65-1.35-.95a.617.617 0 00-.87.311l-.03.089-.3 1.65H15.3L15 16.8a.566.566 0 00-.823-.447l-.077.047-1.35.95-1.65-1.65.95-1.35a.617.617 0 00-.311-.87l-.089-.03-1.65-.3V10.8l1.65-.3a.566.566 0 00.447-.823L12.05 9.6l-.95-1.35 1.65-1.65 1.35.95a.617.617 0 00.87-.311L15 7.15l.35-1.65zM16.5 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceMobileServices.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4130.a22a6625.js b/pr-preview/pr-186/assets/js/4130.a22a6625.js new file mode 100644 index 000000000..fd1cd6ae8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4130.a22a6625.js @@ -0,0 +1,319 @@ +"use strict"; +exports.id = 4130; +exports.ids = [4130]; +exports.modules = { + +/***/ 34130: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_checkbox: () => (/* binding */ Checkbox), +/* harmony export */ scale_icon_action_minus: () => (/* binding */ ActionMinus) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91779); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94200); + + + + +const checkboxCss = ":host,scale-checkbox{--spacing-x:var(--telekom-spacing-composition-space-04);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--color-text:var(--telekom-color-text-and-icon-standard);--color-error:var(--telekom-color-functional-danger-standard);--color-disabled:var(--telekom-color-text-and-icon-disabled);--color-standard:var(--telekom-color-background-surface);--background-disabled:none;--color-primary:var(--telekom-color-primary-standard);--color-focus:var(--telekom-color-functional-focus-standard);--color-primary-hover:var(--telekom-color-text-and-icon-standard);--color-primary-active:var(--telekom-color-text-and-icon-standard);--width-control:var(--telekom-spacing-composition-space-07);--height-control:var(--telekom-spacing-composition-space-07);--transition-control:var(--transition);--spacing-control:var(--telekom-spacing-composition-space-02);--spacing-left-control:var(--telekom-spacing-composition-space-03);--radius-control:var(--telekom-radius-small);--border-width-control:var(--telekom-line-weight-standard);--transition-helper-text:var(--transition);--spacing-left-helper-text:calc(var(--width-control) + var(--spacing-x));--font-size-helper-text:var(--telekom-typography-font-size-small);--font-weight-helper-text:var(--telekom-typography-font-weight-bold);--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--color-helper-text:var(\n --telekom-color-text-and-icon-functional-informational\n );--font-weight-label:var(--telekom-typography-font-weight-medium);--transition-label:var(--transition);--color-icon-checked-disabled:var(--telekom-color-text-and-icon-disabled);--color-icon-checked-active:var(\n --telekom-color-text-and-icon-white-standard\n );--width-icon:var(--telekom-spacing-composition-space-06);--height-icon:var(--telekom-spacing-composition-space-06);--stroke-width:var(--stroke-width-checkbox, 0.5px)}scale-checkbox{position:relative;display:flex;width:fit-content;flex-direction:column;color:var(--color-text)}scale-checkbox [part='icon'],scale-checkbox [part='checkbox'],scale-checkbox [part='label'],scale-checkbox [part='helper-text']{transition:var(--transition)}scale-checkbox [part='input'],scale-checkbox.hideLabel [part='label']{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}scale-checkbox [part='checkbox']{box-sizing:border-box;display:flex;flex:0 0 auto;justify-content:center;align-items:center;width:var(--width-control);height:var(--height-control);border-radius:var(--radius-control);border:var(--border-width-control) solid\n var(--telekom-color-ui-border-standard)}scale-checkbox [part='label']{font-weight:var(--font-weight-label);margin-left:var(--spacing-x)}scale-checkbox [part='icon']{width:var(--width-icon);height:var(--height-icon);color:var(--color-icon-checked-active)}scale-checkbox [part='icon'] svg{width:100%;height:100%}scale-checkbox [part='icon'] svg rect,scale-checkbox [part='icon'] svg path{stroke:currentColor;stroke-width:var(--stroke-width)}scale-checkbox [part='container']{align-items:center;display:flex;line-height:var(--telekom-typography-line-spacing-standard)}scale-checkbox [part='helper-text']{font-size:var(--font-size-helper-text);font-weight:var(--font-weight-helper-text);line-height:var(--line-height-helper-text);color:var(--color-helper-text);padding-left:calc(\n var(--width-control) + var(--spacing-control) + var(--spacing-x) +\n calc(var(--border-width-control) * 2)\n );display:flex;align-items:center}scale-checkbox.indeterminate [part='checkbox']{background:var(--telekom-color-primary-standard);border:none;color:var(--color-icon-checked-active)}scale-checkbox.indeterminate [part='icon']{color:var(--color-icon-checked-active)}scale-checkbox.checked [part='checkbox']{background:var(--telekom-color-primary-standard);border-color:var(--telekom-color-primary-standard);color:var(--color-icon-checked-active)}scale-checkbox [part='container']:hover [part='checkbox']{background:var(--telekom-color-ui-state-fill-hovered);border-color:var(--telekom-color-ui-border-hovered);color:var(--color-icon-checked-active)}scale-checkbox.checked [part='container']:hover [part='checkbox']{background:var(--telekom-color-primary-hovered);border-color:var(--telekom-color-ui-border-hovered);color:var(--color-icon-checked-active)}scale-checkbox [part='container']:active [part='checkbox']{background:var(--telekom-color-ui-state-fill-pressed);border-color:var(--telekom-color-ui-border-pressed);color:var(--color-icon-checked-active)}scale-checkbox [part='input']:focus~[part='container'] [part='checkbox']{outline:var(--telekom-spacing-composition-space-02) solid var(--color-focus);outline-offset:var(--telekom-spacing-composition-space-01)}scale-checkbox [part='container']:hover{color:var(--color-primary-hover);cursor:pointer}scale-checkbox.checked [part='container']:hover [part='checkbox'],scale-checkbox.indeterminate [part='container']:hover [part='checkbox']{background:var(--telekom-color-primary-hovered);border-color:var(--telekom-color-primary-hovered)}scale-checkbox.checked [part='input']:active~[part='container'],scale-checkbox.checked [part='container']:active{color:var(--color-primary-active)}scale-checkbox [part='input']:active~[part='container'] [part='checkbox'],scale-checkbox.checked [part='container']:active [part='checkbox'],scale-checkbox.indeterminate [part='container']:active [part='checkbox']{background:var(--telekom-color-primary-pressed);border-color:var(--telekom-color-primary-pressed)}scale-checkbox:not(.checked) [part='container']:active [part='checkbox']{background:var(--telekom-color-ui-state-fill-pressed);border-color:var(--telekom-color-ui-border-pressed)}scale-icon-alert-information,scale-icon-alert-error{color:var(--color-helper-text);display:flex;justify-content:center;align-items:center;margin-right:var(--telekom-spacing-composition-space-03)}scale-checkbox.error [part='helper-text']{color:var(--telekom-color-text-and-icon-functional-danger)}scale-checkbox.error [part='helper-text'] scale-icon-alert-error{color:var(--telekom-color-text-and-icon-functional-danger)}scale-checkbox.error [part='checkbox']{box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--color-error);border:none}scale-checkbox.error [part='input']:focus~[part='container'] [part='checkbox']{box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--color-error)}scale-checkbox.error [part='checkbox']:hover{background-color:var(--telekom-color-ui-state-fill-hovered);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-hovered)}scale-checkbox.error [part='checkbox']:active{background-color:var(--telekom-color-ui-state-fill-pressed);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-pressed)}scale-checkbox.error:not(.checked) [part='container']:active [part='checkbox']{background:var(--telekom-color-ui-state-fill-pressed);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-pressed)}scale-checkbox.checked.error [part='container']:hover [part='checkbox']{background-color:var(--telekom-color-primary-hovered);box-shadow:inset 0 0 0 var(--telekom-spacing-composition-space-02)\n var(--telekom-color-functional-danger-hovered)}scale-checkbox.error [part='helper-text']{padding-left:calc(\n var(--width-control) + var(--spacing-control) + var(--spacing-x)\n )}scale-checkbox.disabled{cursor:not-allowed}scale-checkbox.disabled [part='container'],scale-checkbox.disabled [part='helper-text']{color:var(--color-disabled);pointer-events:none}scale-checkbox.disabled [part='checkbox']{background:var(--telekom-color-ui-solid-fill-disabled);border-color:var(--telekom-color-ui-border-disabled)}scale-checkbox.checked.disabled [part='checkbox']{background-color:var(--telekom-color-ui-disabled);border-color:transparent}scale-checkbox.checked.disabled [part='icon']{color:var(--color-icon-checked-disabled);background-color:var(--telekom-color-ui-disabled)}scale-checkbox.disabled [part='helper-text'] scale-icon-alert-information,scale-checkbox.disabled.error [part='helper-text'] scale-icon-alert-error{color:var(--color-disabled)}"; + +const Checkbox = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + /** (optional) Input label */ + this.label = ''; + /** (optional) Hides the specified label visually */ + this.hideLabel = false; + /** @deprecated - invalid should replace status */ + this.status = ''; + /** (optional) Input status */ + this.invalid = false; + /** (optional) Input disabled */ + this.disabled = false; + /** (optional) Active switch */ + this.checked = false; + /** (optional) indeterminate */ + this.indeterminate = false; + /** (optional) Input value */ + this.value = ''; + this.internalId = (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.g)(); + this.handleChange = (ev) => { + if (this.indeterminate) { + this.indeterminate = false; + this.checked = true; + ev.target.checked = true; + } + else { + this.checked = ev.target.checked; + } + const { checked, indeterminate, value, disabled } = this; + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleChange', { checked, indeterminate, value, disabled }); + }; + } + componentDidRender() { + if (this.status !== '') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ + tag: 'deprecated', + message: 'Property "status" is deprecated. Please use the "invalid" property!', + type: 'warn', + source: this.host, + }); + } + if (this.host.hasAttribute('aria-label')) { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_1__.s)({ + tag: 'deprecated', + message: 'Property "ariaLabel" is deprecated. Please use the "ariaLabelCheckbox" property!', + type: 'warn', + source: this.host, + }); + } + } + connectedCallback() { + if (!this.inputId) { + this.inputId = 'input-checkbox-' + this.internalId; + } + } + /* Accessibility: rendering the icon *only* when checked, otherwise is always visible in HCM */ + renderIcon() { + if (this.indeterminate) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-minus", { part: "icon", decorative: true })); + } + if (this.checked) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-checkmark", { part: "icon", decorative: true })); + } + } + renderHelperIcon() { + if (this.helperText && !this.invalid) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-information", { size: 11 })); + } + if (this.invalid) { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-error", { size: 11 }); + } + } + renderHelperText(text) { + if (this.helperText && this.helperText !== '') { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { part: "helper-text", id: text.id, "aria-live": "polite", "aria-relevant": "additions removals" }, this.renderHelperIcon(), text.content)); + } + } + render() { + const helperText = { + id: this.helperText ? `helper-message-${this.internalId}` : null, + content: this.helperText, + }; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, { class: { + checked: this.checked, + indeterminate: this.indeterminate, + disabled: this.disabled, + error: this.status === 'error' || this.invalid, + hideLabel: this.hideLabel, + } }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("input", { type: "checkbox", part: "input", name: this.name || null, id: this.inputId, value: this.value, checked: this.checked, indeterminate: this.indeterminate, "aria-label": this.ariaLabelCheckbox, "aria-checked": this.indeterminate ? 'mixed' : false, "aria-invalid": this.status === 'error' || this.invalid ? 'true' : null, "aria-describedBy": helperText.id, disabled: this.disabled, required: this.required, onChange: this.handleChange }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("label", { part: "container", htmlFor: this.inputId }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "checkbox" }, this.renderIcon()), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { part: "label" }, this.label || (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))), this.renderHelperText(helperText))); + } + get host() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +Checkbox.style = checkboxCss; + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionMinus = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 10.75h-15a1.25 1.25 0 000 2.5h15a1.25 1.25 0 100-2.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 12.75h-15a.75.75 0 110-1.5h15a.75.75 0 110 1.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionMinus.style = iconCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/41340.3a7ed7d5.js b/pr-preview/pr-186/assets/js/41340.3a7ed7d5.js new file mode 100644 index 000000000..b5fa316e9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/41340.3a7ed7d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[41340],{41340:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_weather_moon_snow:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M6.681 18.621l1.04.6L7.04 20.4H8.4v1.2H7.04l.68 1.178-1.039.6-.68-1.178-.68 1.178-1.04-.6.68-1.178h-1.36v-1.2h1.36l-.68-1.179 1.04-.6L6 19.8l.68-1.179zm5.2-3.6l1.04.6-.681 1.179h1.36V18h-1.36l.68 1.178-1.039.6-.68-1.178-.68 1.178-1.04-.6.68-1.178h-1.36v-1.2h1.36l-.68-1.179 1.04-.6.68 1.179.68-1.179zM10.108 5.95a5.56 5.56 0 015.233 3.674 4.25 4.25 0 012.261 3.753 4.24 4.24 0 01-2.514 3.873l-.187.078v-1.482a1 1 0 00-.4-.8l-.1-.065-2.7-1.565a1 1 0 00-.882-.06l-.119.06-2.699 1.554a1 1 0 00-.493.748l-.007.118v1.757l-.996-.581a1 1 0 00-.889-.06l-.12.06-1.012.591H4.04a3.858 3.858 0 01-3.639-3.857c0-1.4.755-2.684 1.952-3.366.102-1.822 1.608-3.273 3.443-3.273.27 0 .54.033.806.098a5.53 5.53 0 013.505-1.255zm8.07-5.445a5.37 5.37 0 012.62-.03 4.548 4.548 0 003.057 8.515 5.377 5.377 0 01-2.933 1.969 5.37 5.37 0 01-2.685.015A5.424 5.424 0 0016.3 8.79a6.749 6.749 0 00-2.137-2.676A5.403 5.403 0 0118.177.505z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M6.68 18.622l1.04.6-.68 1.178H8.4v1.2H7.04l.68 1.178-1.04.6L6 22.2l-.68 1.178-1.04-.6.68-1.178H3.6v-1.2h1.36l-.68-1.178 1.04-.6L6 19.8l.68-1.178zm5.2-3.6l1.04.6-.68 1.178h1.36V18h-1.36l.68 1.178-1.04.6-.68-1.178-.68 1.178-1.04-.6.68-1.178H8.8v-1.2h1.36l-.68-1.178 1.04-.6.68 1.178.68-1.178zm-1.78-9.04a5.577 5.577 0 015.242 3.638 4.245 4.245 0 012.258 3.744 4.238 4.238 0 01-2.607 3.905l-.193.075v-1.306a3.039 3.039 0 001.6-2.674 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 7.18a4.377 4.377 0 00-2.757.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44 2.676 2.676 0 002.504 2.668l.169.005H7.6v1.2H4.273A3.877 3.877 0 01.4 13.727c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 5.981zM18.176.504a5.38 5.38 0 012.622-.03 4.548 4.548 0 003.057 8.515 5.376 5.376 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676A5.403 5.403 0 0118.176.505z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/41352.f323fd27.js b/pr-preview/pr-186/assets/js/41352.f323fd27.js new file mode 100644 index 000000000..cb2c2c49d --- /dev/null +++ b/pr-preview/pr-186/assets/js/41352.f323fd27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[41352],{41352:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_fax:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M.501 9.507v10c0 1.65 1.35 3 3 3h3.5v-16h-3.5c-1.65 0-3 1.35-3 3zm9.507-3h9.512V3.022h-9.512v3.485zm1.993 6.993h6.5V10h-6.5v3.5zm5.75 3a.75.75 0 110-1.5.75.75 0 010 1.5zm0 2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm-2.5-2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm0 2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm-2.5-2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm0 2.5a.75.75 0 110-1.5.75.75 0 010 1.5zm8.184-12.457h.085V1.522H8.508v4.985h-.007v16h12c1.65 0 3-1.35 3-3v-10a3.008 3.008 0 00-2.566-2.964z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M15.251 17.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.5-2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm2.5 0a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.5 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm5-2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-5.75-1.5h6.5V10h-6.5v3.5zm5.75 4a.75.75 0 100 1.5.75.75 0 000-1.5zm4.25 2.007c0 .85-.65 1.5-1.5 1.5h-12v-13h12c.85 0 1.5.65 1.5 1.5v10zm-15 1.5h-3.5c-.85 0-1.5-.65-1.5-1.5v-10c0-.85.65-1.5 1.5-1.5h3.5v13zm3.007-14.501h9.512V3.021h-9.512v3.485zm10.677.011h.335V1.521H8.508v4.986H3.501c-1.65 0-3 1.35-3 3v10c0 1.65 1.35 3 3 3h17c1.65 0 3-1.35 3-3v-10a3.005 3.005 0 00-2.816-2.99z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/41420.7f41670c.js b/pr-preview/pr-186/assets/js/41420.7f41670c.js new file mode 100644 index 000000000..2853256ff --- /dev/null +++ b/pr-preview/pr-186/assets/js/41420.7f41670c.js @@ -0,0 +1,2 @@ +/*! For license information please see 41420.7f41670c.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[41420],{88114:(e,t,s)=>{s.d(t,{c:()=>n});var r,i,a,n=(r=function(e){!function(){var t={}.hasOwnProperty;function s(){for(var e=[],r=0;r{s.r(t),s.d(t,{scale_carousel:()=>n});var r=s(90936),i=s(88114),a=s(94200);const n=class{constructor(e){(0,r.r)(this,e),this.vertical=!1,this.slidesArray=[],this.value=0,this.handleSlideChange=e=>{const t=this.value;"prev"===e&&(this.value=0===t?-100*(this.slidesArray.length-1):t+100),"next"===e&&(t===-100*(this.slidesArray.length-1)?this.value=0:this.value=t-100)},this.setActiveSlide=e=>{this.value=-100*e},this.setTransformValue=()=>this.vertical?`translateY(${this.value}%)`:`translateX(${this.value}%)`,this.setActiveCssClass=e=>Math.abs(this.value)/100===e?"carousel__indicator--active":""}connectedCallback(){(0,a.s)({source:this.hostElement,type:"warn"})}componentWillLoad(){if(0===this.slidesArray.length){const e=this.hostElement.children;for(let t=0;tthis.handleSlideChange("prev")},(0,r.h)("slot",{name:"arrow-left"})),this.slidesArray.map((e=>(0,r.h)("div",{class:"carousel__slide",style:{transform:this.setTransformValue()}},(0,r.h)("div",{innerHTML:e.outerHTML})))),(0,r.h)("div",{class:"carousel__arrow carousel__arrow--right",onClick:()=>this.handleSlideChange("next")},(0,r.h)("slot",{name:"arrow-right"}))),(0,r.h)("ul",{class:"carousel__indicators"},Array.from(Array(this.slidesArray.length).keys()).map((e=>(0,r.h)("li",{key:e,class:`carousel__indicator ${this.setActiveCssClass(e)}`,onClick:()=>this.setActiveSlide(e)}))))))}getCssClassMap(){return(0,i.c)("carousel",this.vertical&&"carousel--vertical")}get hostElement(){return(0,r.g)(this)}};n.style=".carousel{width:400px;height:300px;position:relative}.carousel__container{width:100%;height:100%;margin:0;display:flex;padding:0;overflow:hidden;position:relative;box-sizing:border-box;align-items:center}.carousel__slide{height:100%;position:relative;min-width:100%;transition:all 0.3s ease-in-out}.carousel__arrow{top:50%;color:#fff;width:24px;border:none;cursor:pointer;height:24px;display:flex;outline:none;z-index:99;position:absolute;transform:translateY(-50%);background:rgba(31, 45, 61, 0.11);align-items:center;border-radius:50%;justify-content:center}.carousel__arrow--left{left:12px}.carousel__arrow--right{right:12px}.carousel__indicators{left:50%;bottom:12px;margin:0;display:inline-flex;padding:0;z-index:2;position:absolute;transform:translateX(-50%);list-style:none}.carousel__indicator{width:30px;border:none;cursor:pointer;height:4px;margin:0 6px;display:block;opacity:0.5;outline:none;padding:0;background:#fff;transition:0.3s}.carousel__indicator--active{opacity:1}.carousel--vertical .carousel__container{flex-direction:column}.carousel--vertical .carousel__arrow{display:none}.carousel--vertical .carousel__indicators{top:50%;left:unset;right:12px;bottom:0;display:flex;transform:translateY(-50%);flex-direction:column}.carousel--vertical .carousel__indicator{width:4px;height:30px;margin:6px 0}"},94200:(e,t,s)=>{s.d(t,{s:()=>a});const r={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},i={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function a({tag:e="WIP",extraMessage:t=null,message:s=null,source:a=null,type:n="info"}){(0,console[n])(`%c scale \u2013 ${r[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${s||i[e]} ${t?"\n"+t:""}\n `,null!==a?"\nsource:":"","object"==typeof a?a:`${a}`,null!==a?"\n\n":"")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/41420.7f41670c.js.LICENSE.txt b/pr-preview/pr-186/assets/js/41420.7f41670c.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/41420.7f41670c.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/4169.91614c6a.js b/pr-preview/pr-186/assets/js/4169.91614c6a.js new file mode 100644 index 000000000..84b136ef2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4169.91614c6a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4169; +exports.ids = [4169]; +exports.modules = { + +/***/ 44169: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_fast_forward: () => (/* binding */ ActionFastForward) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionFastForward = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm.5 15v-3.6L7 16V8l5.5 3.6V8l6.11 4-6.11 4z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.24 0-9.5 4.26-9.5 9.5s4.26 9.5 9.5 9.5 9.5-4.26 9.5-9.5-4.26-9.5-9.5-9.5zm.5 5.5l6.11 4-6.11 4v-3.6L7 16V8l5.5 3.6V8z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionFastForward.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/417.90f4fc83.js b/pr-preview/pr-186/assets/js/417.90f4fc83.js new file mode 100644 index 000000000..e1ce13e41 --- /dev/null +++ b/pr-preview/pr-186/assets/js/417.90f4fc83.js @@ -0,0 +1,115 @@ +"use strict"; +exports.id = 417; +exports.ids = [417]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 90417: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_divider: () => (/* binding */ Divider) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const dividerCss = ":host{--width:100%;--height:100%;--spacing:var(--telekom-spacing-composition-space-05);--color:var(--telekom-color-ui-faint);--border-width:var(--telekom-spacing-composition-space-01);--min-height-vertical:var(--telekom-spacing-composition-space-08);width:var(--width);height:var(--height)}.divider{padding:var(--spacing)}.divider--vertical{display:inline-flex;height:inherit}.divider__horizontal{margin:0;border:0;border-top:var(--border-width) solid var(--color)}.divider__vertical{display:inline-flex;height:inherit;min-height:var(--min-height-vertical);border-left:var(--border-width) solid var(--color)}"; + +const Divider = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) Divider vertical */ + this.vertical = false; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), "aria-hidden": "true", part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', this.vertical && 'vertical') }, !this.vertical ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("hr", { class: "divider__horizontal", part: "rule-horizontal" })) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "divider__vertical", part: "rule-vertical" }))))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('divider', this.vertical && `divider--vertical`); + } +}; +Divider.style = dividerCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4173.153f6985.js b/pr-preview/pr-186/assets/js/4173.153f6985.js new file mode 100644 index 000000000..62546fa07 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4173.153f6985.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4173; +exports.ids = [4173]; +exports.modules = { + +/***/ 94173: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_right_condensed: () => (/* binding */ NavigationRightCondensed) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationRightCondensed = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.204 19.269a1.252 1.252 0 01-.916-2.1l4.79-5.166-4.79-5.166a1.251 1.251 0 011.833-1.7l6.368 6.866-6.368 6.866c-.246.266-.581.4-.917.4", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.782 5.491A.75.75 0 008.68 6.509L13.748 12 8.68 17.491a.751.751 0 001.104 1.018L15.79 12 9.782 5.491z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationRightCondensed.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/41802.3468ed05.js b/pr-preview/pr-186/assets/js/41802.3468ed05.js new file mode 100644 index 000000000..a36a7986f --- /dev/null +++ b/pr-preview/pr-186/assets/js/41802.3468ed05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[41802],{41802:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_t_product_telekom_shop_b:()=>h});var s=i(90936);const h=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21 1.5V5h.75c.902 0 1.67.722 1.744 1.609l.006.141V9H22v13.5H2V9H.5V6.75c0-.903.722-1.67 1.609-1.744L2.25 5H3V1.5h18zM15.12 11v2.55h-.446v-.075c0-1.2-.67-1.95-1.935-1.95h-.074v5.4c0 .75.297 1.05 1.041 1.05h.224v.525h-3.87v-.525h.224c.744 0 1.041-.3 1.041-1.05v-5.4h-.074c-1.265 0-1.935.75-1.935 1.95v.075H8.87V11h6.25zm0 3.333V16h-1.667v-1.667h1.667zm-4.583 0V16H8.87v-1.667h1.667zM19.5 3v2h-15V3h15z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21 1.5V5h.75c.902 0 1.67.722 1.744 1.609l.006.141V9H22v13.5H2V9H.5V6.75c0-.903.722-1.67 1.609-1.744L2.25 5H3V1.5h18zM20.5 9h-17v12h17V9zm-5.38 2v2.55h-.446v-.075c0-1.2-.67-1.95-1.935-1.95h-.074v5.4c0 .75.297 1.05 1.041 1.05h.224v.525h-3.87v-.525h.224c.744 0 1.041-.3 1.041-1.05v-5.4h-.074c-1.265 0-1.935.75-1.935 1.95v.075H8.87V11h6.25zm0 3.333V16h-1.667v-1.667h1.667zm-4.583 0V16H8.87v-1.667h1.667zM19.5 3v2h-15V3h15z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};h.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/41812.a6a0f997.js b/pr-preview/pr-186/assets/js/41812.a6a0f997.js new file mode 100644 index 000000000..b7fac9ec7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/41812.a6a0f997.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[41812],{41812:(t,i,e)=>{e.r(i),e.d(i,{scale_icon_navigation_location:()=>l});var s=e(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M17.76 2.945A8.145 8.145 0 004.955 12.79l5.545 9.54a1.75 1.75 0 003.03 0l5.515-9.54a8.14 8.14 0 00-1.285-9.845zM12 11.5a3 3 0 110-6 3 3 0 010 6z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M12 .55c2.1 0 4.15.8 5.75 2.4a8.171 8.171 0 011.441 9.596l-.141.254-5.55 9.55c-.3.55-.9.85-1.5.85-.504 0-1.05-.21-1.407-.707l-.093-.143-5.55-9.55a8.17 8.17 0 011.3-9.85C7.85 1.35 9.9.55 12 .55zm0 1.5c-1.8 0-3.45.7-4.7 1.95a6.661 6.661 0 00-1.181 7.812l.131.238 5.55 9.55c.05.05.1.1.2.1.08 0 .128 0 .17-.051l.03-.049 5.55-9.55c1.5-2.6 1.1-5.9-1.05-8.05A6.577 6.577 0 0012 2.05zm0 3.45a3 3 0 110 6 3 3 0 010-6z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4210.e2dd8d00.js b/pr-preview/pr-186/assets/js/4210.e2dd8d00.js new file mode 100644 index 000000000..954862731 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4210.e2dd8d00.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4210; +exports.ids = [4210]; +exports.modules = { + +/***/ 84210: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_sort_indicator_up_mini: () => (/* binding */ ContentSortIndicatorUpMini) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentSortIndicatorUpMini = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 10l-4.332 4h8.666z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 10l-4.332 4h8.666z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentSortIndicatorUpMini.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/42176.11f2adbb.js b/pr-preview/pr-186/assets/js/42176.11f2adbb.js new file mode 100644 index 000000000..87663701f --- /dev/null +++ b/pr-preview/pr-186/assets/js/42176.11f2adbb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[42176],{19795:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_delivery:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M17.25 11.5a6.25 6.25 0 100 12.5 6.25 6.25 0 000-12.5zm2.6 3.814c.2 0 .39.08.53.221.294.29.3.762.015 1.06L16.5 20.5 14.045 18a.75.75 0 011.06-1.06l1.395 1.415 2.82-2.82a.745.745 0 01.53-.221zM9 6.5v14H3a3 3 0 01-3-3v-11h9zm10.5 0v3.835a7.745 7.745 0 00-9 3.615V6.5h9zM9 1.5V5H0l3-3.5h6zm7.5 0l3 3.5h-9V1.5h6z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M17.25 11.5c3.45 0 6.25 2.8 6.25 6.25S20.7 24 17.25 24 11 21.2 11 17.75s2.8-6.25 6.25-6.25zm3.1 4.05a.722.722 0 00-.965-.074l-.085.074-2.8 2.8-1.4-1.4c-.3-.3-.75-.3-1.05 0a.722.722 0 00-.074.965l.074.085 2.45 2.5 3.9-3.9c.3-.3.25-.75-.05-1.05zM16.5 1.5l3 3.5v5.35a8.086 8.086 0 00-1.125-.253L18 10.05V6.5h-7.5v3H9v-3H1.5v11c0 .8.576 1.423 1.352 1.493L3 19h6.6c.08.4.16.8.291 1.2l.109.3H3a3.01 3.01 0 01-2.995-2.824L0 17.5V5l3-3.5h13.5zM15.8 3h-5.3v2h7.05L15.8 3zM9 3H3.7L2 5h7V3z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4220.70402cf3.js b/pr-preview/pr-186/assets/js/4220.70402cf3.js new file mode 100644 index 000000000..39a917be2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4220.70402cf3.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4220; +exports.ids = [4220]; +exports.modules = { + +/***/ 24220: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_data_visualisation: () => (/* binding */ ContentDataVisualisation) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentDataVisualisation = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M1 3.5V16a3 3 0 003 3h5.44l-.11.21A1.5 1.5 0 018 20H5.5v1.5h13V20H16a1.5 1.5 0 01-1.325-.79L14.56 19H20a3 3 0 003-3V3.5H1zm10.925 12a3.925 3.925 0 110-7.845v3.92h3.92a3.92 3.92 0 01-3.92 3.925zm1.075-5V6.575a3.925 3.925 0 013.925 3.925H13z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23 3.5V16a3 3 0 01-2.824 2.995L20 19h-5.441l.113.21a1.5 1.5 0 001.172.783l.149.007H18.5v1.5h-13V20h2.507a1.5 1.5 0 001.244-.662l.077-.129.113-.209H4a3 3 0 01-2.995-2.824L1 16V3.5h22zM21.5 5h-19v11c0 .778.596 1.42 1.356 1.493L4 17.5h16c.778 0 1.42-.596 1.493-1.356L21.5 16V5zm-9.577 2.654v3.923h3.923a3.923 3.923 0 11-4.125-3.918l.202-.005zM13 6.577a3.91 3.91 0 012.774 1.149 3.91 3.91 0 011.142 2.543l.007.231H13V6.577z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentDataVisualisation.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/42210.15d6ecc4.js b/pr-preview/pr-186/assets/js/42210.15d6ecc4.js new file mode 100644 index 000000000..d11f12476 --- /dev/null +++ b/pr-preview/pr-186/assets/js/42210.15d6ecc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[42210],{42210:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_navigation_left_condensed:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M14.797 19.271c-.336 0-.671-.134-.917-.4l-6.368-6.866L13.88 5.14a1.25 1.25 0 111.833 1.7l-4.791 5.166 4.79 5.166a1.252 1.252 0 01-.915 2.1","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M10.252 12l5.069-5.491a.75.75 0 10-1.102-1.017L8.211 12l6.008 6.509a.748.748 0 001.06.042.75.75 0 00.043-1.059L10.252 12z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/42395.6b750f33.js b/pr-preview/pr-186/assets/js/42395.6b750f33.js new file mode 100644 index 000000000..4b9488dc9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/42395.6b750f33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[42395],{42395:(t,s,e)=>{e.r(s),e.d(s,{scale_icon_content_transport:()=>l});var i=e(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},s=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,s),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M6.5 15.5C7.9 15.5 9 16.6 9 18s-1.1 2.5-2.5 2.5S4 19.4 4 18s1.1-2.5 2.5-2.5zm12.5 0c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5-2.5-1.1-2.5-2.5 1.1-2.5 2.5-2.5zm0 1.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6.5 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM17 3.5v3h4.75c.267 0 .533.158.66.404l.04.096 1.25 3.75c.167.458.264.951.292 1.45l.008.3V18h-1.5c0-1.96-1.54-3.5-3.5-3.5a3.463 3.463 0 00-3.495 3.305L15.5 18H10c0-1.96-1.54-3.5-3.5-3.5a3.463 3.463 0 00-3.495 3.305L3 18a3.01 3.01 0 01-2.995-2.824L0 15V3.5h17zM20.5 9H18v4h3.5v-.5l-.01-.233a3.216 3.216 0 00-.089-.544l-.051-.173L20.5 9z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M19 15.5c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5-2.5-1.1-2.5-2.5 1.1-2.5 2.5-2.5zm-12.5 0C7.9 15.5 9 16.6 9 18s-1.1 2.5-2.5 2.5S4 19.4 4 18s1.1-2.5 2.5-2.5zM19 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6.5 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm9.35-.5a3.833 3.833 0 00-.341 1.267L15.5 18H10c0-.471-.073-.906-.252-1.304L9.65 16.5h6.2zM17 3.5v3h4.75c.267 0 .533.158.66.404l.04.096 1.25 3.75c.167.458.264.951.292 1.45l.008.3V18h-1.5v-5.5c0-.32-.032-.672-.122-1.005l-.078-.245L21.2 8H17v6c0 .4-.35.75-.75.75a.772.772 0 01-.743-.651L15.5 14V5h-14v10c0 .8.576 1.423 1.352 1.493L3 16.5h.35c-.2.45-.35.95-.35 1.5a3.01 3.01 0 01-2.995-2.824L0 15V3.5h17zM20.5 9l.85 2.55c.075.225.122.478.14.717l.01.233v.5H18V9h2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4248.a0a32445.js b/pr-preview/pr-186/assets/js/4248.a0a32445.js new file mode 100644 index 000000000..7c1565320 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4248.a0a32445.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4248; +exports.ids = [4248]; +exports.modules = { + +/***/ 74248: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_alert_legal: () => (/* binding */ AlertLegal) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertLegal = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.72 14.865L20.525 2H13v-.75a1 1 0 10-2 0V2H3.5L.28 14.865.25 15v.12c0 1.26.965 3.645 4.625 3.645s4.625-2.4 4.625-3.66V15L6.71 3.75H11V19.5H8.5A2.5 2.5 0 006 22h12a2.5 2.5 0 00-2.5-2.5H13V3.75h4.29l-2.76 11.115a1 1 0 00-.03.24c0 1.26.965 3.645 4.625 3.645s4.625-2.385 4.625-3.645a1 1 0 00-.03-.24zM7.445 15h-5.14l2.57-10.345L7.445 15zm9.11 0l2.57-10.345L21.695 15h-5.14z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.48 14.925L20.27 2h-7.52v-.75a.749.749 0 10-1.5 0V2H3.73L.52 14.925a.736.736 0 00-.02.18c0 1.175.915 3.395 4.375 3.395s4.375-2.22 4.375-3.395c0-.06-.005-.12-.02-.18L6.39 3.5h4.86v16H8.5c-.345 0-.675.07-.975.195-.6.255-1.075.73-1.33 1.33-.125.3-.195.63-.195.975h12c0-.345-.07-.675-.195-.975a2.508 2.508 0 00-1.33-1.33c-.3-.125-.63-.195-.975-.195h-2.75v-16h4.86l-2.835 11.425a.736.736 0 00-.02.18c0 1.175.915 3.395 4.375 3.395s4.37-2.22 4.37-3.395c0-.06-.005-.12-.02-.18zM4.875 3.62L7.7 15H2.05L4.875 3.62zM16.3 15l2.825-11.38L21.95 15H16.3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertLegal.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4273.5e921bdf.js b/pr-preview/pr-186/assets/js/4273.5e921bdf.js new file mode 100644 index 000000000..c60ffcb9b --- /dev/null +++ b/pr-preview/pr-186/assets/js/4273.5e921bdf.js @@ -0,0 +1,156 @@ +"use strict"; +exports.id = 4273; +exports.ids = [4273]; +exports.modules = { + +/***/ 54273: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_telekom_profile_menu: () => (/* binding */ TelekomProfileMenu) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const telekomProfileMenuCss = "/**\n * @license\n * Scale https://github.com/telekom/scale\n *\n * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG\n *\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n\n */\n/**\n * @license\n * Scale https://github.com/telekom/scale\n *\n * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG\n *\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at https://mozilla.org/MPL/2.0/.\n */\n\nscale-telekom-profile-menu scale-menu-flyout {\n display: flex;\n height: 100%;\n\n > a {\n box-sizing: border-box;\n display: flex;\n align-items: flex-end;\n height: 100%;\n position: relative;\n font: inherit;\n color: inherit;\n background: none;\n appearance: none;\n padding: 0 0 var(--_spacing-bottom-slotted-bottom) 0;\n border: none;\n text-decoration: none;\n cursor: pointer;\n transition: padding-bottom var(--telekom-motion-duration-immediate)\n var(--telekom-motion-easing-standard);\n\n line-height: var(--telekom-typography-line-spacing-loose);\n font-weight: var(--telekom-typography-font-weight-extra-bold);\n\n > .flyout-label {\n font-size: var(--scl-font-size-12);\n font-weight: var(--telekom-typography-font-weight-regular);\n margin-left: var(--scl-spacing-8);\n }\n }\n\n > a:hover,\n > a:hover svg {\n color: var(--telekom-color-text-and-icon-primary-hovered);\n }\n\n > a[aria-expanded='true'],\n > a[aria-expanded='true'] svg {\n color: var(--telekom-color-text-and-icon-primary-standard);\n }\n\n > a[aria-expanded='true'] .flyout-label {\n color: var(--telekom-color-text-and-icon-standard);\n }\n}\n\n.user-menu-mobile {\n display: flex;\n height: 100%;\n}\n.user-menu-mobile .flyout-label [aria-hidden='true'] {\n display: none;\n}\n.user-menu-mobile .mydot .scale-icon {\n width: 12px;\n height: 12px;\n}\n\n.scale-telekom-nav-item > button {\n padding-bottom: var(--_spacing-bottom-slotted-bottom);\n}\n\n.user-menu-desktop {\n display: none;\n}\n\n.user-menu-desktop scale-menu-flyout {\n display: flex;\n}\n\n.user-menu-trigger {\n position: relative;\n left: 24px;\n}\n\n@media screen and (min-width: 640px) {\n .user-menu-trigger {\n top: calc(var(--_spacing-bottom-slotted-bottom) + 8px);\n }\n}\n\n@media screen and (min-width: 1040px) {\n .user-menu-mobile {\n display: none;\n }\n\n .user-menu-desktop {\n display: flex;\n height: 100%;\n }\n\n scale-telekom-profile-menu scale-menu-flyout-list::part(base) {\n top: calc(100% + var(--telekom-spacing-composition-space-03) - 16px);\n }\n}\n\n@media screen and (min-width: 1296px) {\n scale-telekom-header-data-back-compat .user-menu-trigger {\n top: calc(var(--_spacing-bottom-slotted-bottom) + 12px);\n }\n}\n\n.profile-menu-login {\n min-width: 15em;\n padding-right: var(--telekom-spacing-composition-space-06);\n\n > scale-button {\n display: block;\n --width: 100%;\n margin: 1.5em 0;\n }\n}\n\n.profile-menu-login > strong {\n display: flex;\n font: var(--telekom-text-style-heading-5);\n padding: var(--telekom-spacing-composition-space-04) 0;\n}\n@media screen and (min-width: 640px) {\n .profile-menu-login > strong {\n padding-top: var(--telekom-spacing-composition-space-10);\n }\n .profile-menu-login .footer {\n padding-top: var(--telekom-spacing-composition-space-04);\n }\n}\n@media screen and (min-width: 1040px) {\n .profile-menu-login {\n padding: 12px 24px 4px 24px;\n }\n .profile-menu-login > strong {\n padding-top: 0;\n }\n .profile-menu-login > scale-button {\n margin: 16px 0;\n }\n .profile-menu-login .footer {\n padding-top: 0;\n }\n}\n\n.profile-menu-login p {\n line-height: 1.4em;\n color: var(--telekom-color-text-and-icon-additional);\n margin: 0;\n}\n.profile-menu-login #signUp {\n margin-top: var(--telekom-spacing-composition-space-04);\n}\n.profile-menu-login #signUp p {\n margin: 0;\n}\n\n.scale-telekom-nav-list[variant='functions']::part(circle) .scale-icon {\n height: 12px;\n width: 12px;\n}\n\n.mydot {\n background: var(--telekom-color-functional-success-standard);\n border: 2px solid #fff;\n border-radius: 50%;\n color: #fff;\n display: flex;\n height: 12px;\n width: 12px;\n position: absolute;\n top: -4px;\n right: -6px;\n}\nscale-telekom-profile-menu scale-menu-flyout a .mydot .scale-icon {\n color: #fff !important;\n height: 12px;\n width: 12px;\n}\n\napp-navigation-user-menu {\n --color-divider: transparent;\n}\n\napp-navigation-user-menu::part(userInfo) {\n margin: 0;\n}\napp-navigation-user-menu::part(userInfo)\n .app-navigation-user-menu__user-info--name {\n margin-bottom: 0;\n}\n\napp-navigation-user-menu::part(rule-horizontal) {\n visibility: hidden;\n margin: var(--telekom-spacing-composition-space-05) 0;\n}\n\n@media screen and (min-width: 640px) {\n app-navigation-user-menu::part(userInfo) {\n padding-top: var(--telekom-spacing-composition-space-08);\n }\n app-navigation-user-menu::part(rule-horizontal) {\n margin: var(--telekom-spacing-composition-space-08) 0\n var(--telekom-spacing-composition-space-06) 0;\n }\n}\n\napp-navigation-user-menu::part(item) {\n margin-top: var(--telekom-spacing-composition-space-05);\n margin-bottom: var(--telekom-spacing-composition-space-05);\n padding: 0;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n}\n\napp-navigation-user-menu::part(button) {\n padding-top: 0;\n padding-left: 0;\n}\n@media screen and (min-width: 640px) {\n app-navigation-user-menu::part(button) {\n margin-top: -10px;\n }\n}\n\n@media screen and (min-width: 1040px) {\n app-navigation-user-menu::part(item) {\n line-height: 200%;\n margin-top: 10px;\n margin-bottom: 10px;\n padding-top: 0;\n padding-bottom: 0;\n border: 0;\n }\n\n app-navigation-user-menu::part(userInfo) {\n padding-top: 0;\n }\n app-navigation-user-menu::part(rule-horizontal) {\n padding-top: 16px;\n padding-bottom: 6px;\n margin: 0;\n }\n app-navigation-user-menu::part(button) {\n margin-top: 7px;\n padding-bottom: 0;\n }\n}\n\n.visually-hidden {\n /* see https://www.a11yproject.com/posts/how-to-hide-content/ */\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n"; + +const LOGIN_DEFAULT = 'https://www.telekom.de'; +const LOGIN_HELP_DEFAULT = 'https://www.telekom.de'; +const REGISTER_DEFAULT = 'https://www.telekom.de'; +const LOGIN_SETTINGS_DEFAULT = 'https://account.idm.telekom.com/account-manager/'; +const LOGOUT_DEFAULT = 'https://accounts.login.idm.telekom.com/sessionmessage/logout'; +const readData = (data) => { + let parsedData; + try { + parsedData = JSON.parse(data); + } + catch (error) { + // console.error("Error parsing data! error: " + error); + // console.error("data: " + data); + parsedData = data; + } + return parsedData; +}; +const TelekomProfileMenu = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.menuOpen = false; + } + onKeydown(event) { + if (this.menuOpen && 'Escape' === event.key) { + this.userMenuDesktopTrigger.click(); + } + } + openMenu(event) { + if (event.target.id === 'user-menu-desktop') { + this.menuOpen = true; + } + } + closeMenu(event) { + if (event.target.id === 'user-menu-desktop') { + this.menuOpen = false; + } + } + printSignInMenu() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "profile-menu-login" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("strong", null, this.serviceName), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", null, this.serviceDescription), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-button", { href: this.loginUrl || LOGIN_DEFAULT }, this.loginLabel), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "footer" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-link", { "omit-underline": "true", href: this.loginHelpUrl || LOGIN_HELP_DEFAULT }, this.loginHelpLabel)), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { id: "signUp" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", null, this.registerHeadline), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("p", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-link", { "omit-underline": "true", href: this.registerUrl || REGISTER_DEFAULT }, this.registerLabel)))))); + } + printProfileTrigger() { + if (!this.loggedIn) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-user-file-user", { selected: this.menuOpen })); + } + // logged in + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-badge", { "no-dot": "true" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-user-file-user", { selected: this.menuOpen }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { slot: "dot", class: "mydot" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-action-checkmark", null)))); + } + buildLogoutButton() { + return { + type: 'button', + name: this.logoutLabel, + href: this.logoutUrl || LOGOUT_DEFAULT, + variant: 'secondary', + onClick: this.logoutHandler, + }; + } + buildUserNavigation() { + const divider = [{ type: 'divider' }]; + const userInfo = readData(this.userInfo); + userInfo.type = 'userInfo'; + let serviceLinks = readData(this.serviceLinks); + if (!serviceLinks) { + // console.error("serviceLinks missing"); + serviceLinks = []; + } + for (const el of serviceLinks) { + el.type = 'item'; + } + const loginSettings = { + type: 'item', + name: this.loginSettingsLabel || 'Login-Settings', + href: this.loginSettingsUrl || LOGIN_SETTINGS_DEFAULT, + icon: 'service-settings', + }; + let menu = []; + menu = menu.concat(userInfo); + if (!this.serviceLinksEmpty()) { + menu = menu.concat(divider); + } + menu = menu.concat(serviceLinks); + if (!this.hideLoginSettings) { + menu = menu.concat(loginSettings); + } + if (!this.serviceLinksEmpty()) { + menu = menu.concat(divider); + } + menu = menu.concat(this.buildLogoutButton()); + return menu; + } + serviceLinksEmpty() { + return (this.hideLoginSettings && this.serviceLinks.length < 1) === true; + } + buildDesktopMenuStyles() { + let style = '.app-navigation-user-menu { padding: 12px 24px 4px 24px; box-sizing: border-box; }'; + style += + '.scale-icon { width: 20px; height: 20px; display: flex; align-self: center; }'; + if (this.serviceLinksEmpty()) { + style += 'scale-button { margin-top: 32px !important; }'; + } + return style; + } + buildMobileMenuStyles() { + let style = '.app-navigation-user-menu__user-info--name { margin-bottom: 0 !important; }'; + style += '.scale-icon { width: 20px; height: 20px; }'; + if (this.serviceLinksEmpty()) { + style += 'scale-button { margin-top: 32px !important; }'; + } + return style; + } + printLabel() { + if (!this.accessibilityLabel) { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "flyout-label" }, this.label); + } + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "flyout-label" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { "aria-hidden": "true" }, this.label), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "visually-hidden" }, this.accessibilityLabel))); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-telekom-nav-item", { class: "user-menu-desktop" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout", { direction: "bottom-left", "onScale-open": (event) => this.openMenu(event), "onScale-close": (event) => this.closeMenu(event), triggerHasPopup: false }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("a", { href: "javascript:void(0);", slot: "trigger", role: "button", "aria-controls": "user-menu-desktop" }, this.printProfileTrigger(), this.printLabel()), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-menu-flyout-list", { id: "user-menu-desktop", preventFlipVertical: true, role: "none" }, this.loggedIn && [ + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("app-navigation-user-menu", { hide: () => { + this.userMenuDesktopTrigger.click(); + }, navigation: this.buildUserNavigation(), styles: this.buildDesktopMenuStyles() }), + ], !this.loggedIn && [ + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("app-navigation-user-menu", { navigation: [] }, this.printSignInMenu()), + ]), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { slot: "trigger", class: "user-menu-trigger", ref: (el) => (this.userMenuDesktopTrigger = el) }))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-telekom-nav-item", { class: "user-menu-mobile" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("button", null, this.printProfileTrigger(), this.printLabel()), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-telekom-nav-flyout", { variant: "mobile" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-telekom-mobile-flyout-canvas", { appName: this.appName, closeButtonLabel: this.closeMenuAccessibilityLabel }, this.loggedIn && [ + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("app-navigation-user-menu", { slot: "mobile-main-nav", navigation: this.buildUserNavigation(), styles: this.buildMobileMenuStyles() }), + ], !this.loggedIn && [ + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("app-navigation-user-menu", { slot: "mobile-main-nav", navigation: [] }, this.printSignInMenu()), + ]))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +TelekomProfileMenu.style = telekomProfileMenuCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4275.dcc76471.js b/pr-preview/pr-186/assets/js/4275.dcc76471.js new file mode 100644 index 000000000..d77cc91b9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4275.dcc76471.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4275; +exports.ids = [4275]; +exports.modules = { + +/***/ 34275: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_arrange: () => (/* binding */ ActionArrange) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionArrange = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.25 1l3.6 5.5H6.5V17h2.35l-3.6 5.5-3.6-5.5H4V6.5H1.65L5.25 1zm15.499 15.52a1.25 1.25 0 01.128 2.494l-.128.007H11v-2.5h9.749zM11 10.477l9.753.034a1.25 1.25 0 01.123 2.494l-.132.006L11 12.976v-2.5zM20.749 4.5a1.25 1.25 0 01.128 2.493L20.749 7H11V4.5h9.749z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22 5.75a.75.75 0 00-.75-.75H11v1.5h10.25a.75.75 0 00.75-.75zM8.85 6.5L5.25 1l-3.6 5.5H4.5V17H1.65l3.6 5.5 3.6-5.5H6V6.5h2.85zm12.4 4.5H11v1.5h10.25a.75.75 0 100-1.5zm0 6H11v1.5h10.25a.75.75 0 100-1.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionArrange.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/42840.cb80cc7d.js b/pr-preview/pr-186/assets/js/42840.cb80cc7d.js new file mode 100644 index 000000000..f83b67bea --- /dev/null +++ b/pr-preview/pr-186/assets/js/42840.cb80cc7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[42840],{42840:(t,l,e)=>{e.r(l),e.d(l,{scale_icon_home_wifi_manual_login:()=>s});var i=e(90936);const s=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},l=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,l),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12.006 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.399c.15.682.394 1.329.722 1.924a4.494 4.494 0 00-3.502 2.163l-.11.195L6.6 16.394a6.49 6.49 0 014.326-2.793zm7.018-7.226a5.687 5.687 0 110 11.375 5.687 5.687 0 010-11.375zm.512 7.069v1.153h-1.154v-1.153h1.154zm-7.013-4.428a7.118 7.118 0 00-.611 2.062 8.985 8.985 0 00-5.802 3.251l-.189.241-1.408-1.46a10.98 10.98 0 018.01-4.094zm6.517.312c.92 0 1.645.61 1.645 1.514 0 .552-.265.88-.546 1.147l-.309.283c-.16.152-.291.304-.33.495l-.012.132h-1.059v-.16c0-.529.289-.816.578-1.058l.212-.176c.203-.174.366-.35.366-.613 0-.351-.219-.546-.545-.546-.3 0-.502.17-.563.508l-.015.118h-1.099c.024-.887.618-1.644 1.677-1.644zM12.006 4.5c1.469 0 2.889.205 4.236.588a7.16 7.16 0 00-2.922 1.479 13.465 13.465 0 00-11.404 4.47l-.229.263L.293 9.854A15.464 15.464 0 0112.006 4.5z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12.006 18a2 2 0 110 4 2 2 0 010-4zm-1.08-4.399c.15.682.394 1.329.722 1.924a4.494 4.494 0 00-3.502 2.163l-.11.195L6.6 16.394a6.49 6.49 0 014.326-2.793zm7.018-7.226a5.687 5.687 0 110 11.375 5.687 5.687 0 010-11.375zm0 1.5a4.193 4.193 0 00-4.188 4.187 4.193 4.193 0 004.188 4.188 4.192 4.192 0 004.187-4.188 4.192 4.192 0 00-4.187-4.187zm.512 5.569v1.153h-1.154v-1.153h1.154zm-7.013-4.428a7.118 7.118 0 00-.611 2.062 8.985 8.985 0 00-5.802 3.251l-.189.241-1.408-1.46a10.98 10.98 0 018.01-4.094zm6.517.312c.92 0 1.645.61 1.645 1.514 0 .552-.265.88-.546 1.147l-.309.283c-.16.152-.291.304-.33.495l-.012.132h-1.059v-.16c0-.529.289-.816.578-1.058l.212-.176c.203-.174.366-.35.366-.613 0-.351-.219-.546-.545-.546-.3 0-.502.17-.563.508l-.015.118h-1.099c.024-.887.618-1.644 1.677-1.644zM12.006 4.5c1.469 0 2.889.205 4.236.588a7.16 7.16 0 00-2.922 1.479 13.465 13.465 0 00-11.404 4.47l-.229.263L.293 9.854A15.464 15.464 0 0112.006 4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4289.49a23463.js b/pr-preview/pr-186/assets/js/4289.49a23463.js new file mode 100644 index 000000000..ef36292a1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4289.49a23463.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4289; +exports.ids = [4289]; +exports.modules = { + +/***/ 4289: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_pause: () => (/* binding */ ActionPause) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPause = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm-1 15H9V8h2v8zm4 0h-2V8h2v8z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.24 0-9.5 4.26-9.5 9.5s4.26 9.5 9.5 9.5 9.5-4.26 9.5-9.5-4.26-9.5-9.5-9.5zM11 8v8H9V8h2zm4 0v8h-2V8h2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPause.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4289.808e9dce.js b/pr-preview/pr-186/assets/js/4289.808e9dce.js new file mode 100644 index 000000000..11876462a --- /dev/null +++ b/pr-preview/pr-186/assets/js/4289.808e9dce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[4289],{4289:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_action_pause:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm-1 15H9V8h2v8zm4 0h-2V8h2v8z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.24 0-9.5 4.26-9.5 9.5s4.26 9.5 9.5 9.5 9.5-4.26 9.5-9.5-4.26-9.5-9.5-9.5zM11 8v8H9V8h2zm4 0v8h-2V8h2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/430.65a2c2fd.js b/pr-preview/pr-186/assets/js/430.65a2c2fd.js new file mode 100644 index 000000000..afe7171d6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/430.65a2c2fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[430],{430:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_outbox:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M9.316 15.5l.202.428A2.764 2.764 0 0012 17.5c.992 0 1.913-.547 2.396-1.407l.085-.165.204-.428H21v4a3.003 3.003 0 01-2.823 2.995L18 22.5H6a3.004 3.004 0 01-2.994-2.824L3 19.5v-4h6.314zM11.998 1l4.582 7h-3.83v5.75a.75.75 0 01-1.493.102l-.007-.102V8H7.42L12 1z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M9.314 15.5l.205.428A2.761 2.761 0 0012 17.5c.991 0 1.912-.547 2.396-1.407l.085-.165.204-.428H21v4a3.004 3.004 0 01-2.824 2.995L18 22.5H6a3.004 3.004 0 01-2.995-2.824L3 19.5v-4h6.314zM8.398 17H4.5v2.5c0 .778.596 1.42 1.356 1.493L6 21h12c.778 0 1.42-.596 1.493-1.356l.007-.144V17h-3.899A4.27 4.27 0 0112 19a4.272 4.272 0 01-3.602-2zM12 1l4.582 7H12.75v5.75a.75.75 0 01-1.5 0V8H7.418L12 1z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/430.b85da96f.js b/pr-preview/pr-186/assets/js/430.b85da96f.js new file mode 100644 index 000000000..5d5260bb0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/430.b85da96f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 430; +exports.ids = [430]; +exports.modules = { + +/***/ 430: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_outbox: () => (/* binding */ CommunicationOutbox) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationOutbox = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.316 15.5l.202.428A2.764 2.764 0 0012 17.5c.992 0 1.913-.547 2.396-1.407l.085-.165.204-.428H21v4a3.003 3.003 0 01-2.823 2.995L18 22.5H6a3.004 3.004 0 01-2.994-2.824L3 19.5v-4h6.314zM11.998 1l4.582 7h-3.83v5.75a.75.75 0 01-1.493.102l-.007-.102V8H7.42L12 1z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.314 15.5l.205.428A2.761 2.761 0 0012 17.5c.991 0 1.912-.547 2.396-1.407l.085-.165.204-.428H21v4a3.004 3.004 0 01-2.824 2.995L18 22.5H6a3.004 3.004 0 01-2.995-2.824L3 19.5v-4h6.314zM8.398 17H4.5v2.5c0 .778.596 1.42 1.356 1.493L6 21h12c.778 0 1.42-.596 1.493-1.356l.007-.144V17h-3.899A4.27 4.27 0 0112 19a4.272 4.272 0 01-3.602-2zM12 1l4.582 7H12.75v5.75a.75.75 0 01-1.5 0V8H7.418L12 1z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationOutbox.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4315.7821205f.js b/pr-preview/pr-186/assets/js/4315.7821205f.js new file mode 100644 index 000000000..8b6959ac6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4315.7821205f.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4315; +exports.ids = [4315]; +exports.modules = { + +/***/ 74315: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_reply: () => (/* binding */ ActionReply) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionReply = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.483 6.263H10.5V3.352l-6.75 4.4 6.75 4.4v-2.89h1.982c3.033 0 5.5 2.469 5.5 5.5v4.288a1.5 1.5 0 003 0v-4.287c0-4.687-3.813-8.5-8.5-8.5", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.5 8.513h2.239a6.257 6.257 0 016.25 6.25v4.987a.75.75 0 001.5 0v-4.987c0-4.273-3.477-7.75-7.75-7.75H10.5V3.352l-6.75 4.4 6.75 4.4v-3.64z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionReply.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4322.037a3eb3.js b/pr-preview/pr-186/assets/js/4322.037a3eb3.js new file mode 100644 index 000000000..4e5e52fd3 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4322.037a3eb3.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4322; +exports.ids = [4322]; +exports.modules = { + +/***/ 71941: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_send: () => (/* binding */ ActionSend) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionSend = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.885 2.515L10.1 16.953l-.01-.001-1.513-.541 12.25-13.833-19.405 9.91a.749.749 0 00.084 1.372l7.03 2.564V21.1a.75.75 0 001.36.435l2.636-3.7 5.917 2.079a.761.761 0 00.616-.053.755.755 0 00.366-.5l3.476-16.474a.746.746 0 00-.02-.373", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.83 2.07a.758.758 0 011.101.711l-.011.109-3.48 16.48c-.05.21-.18.39-.37.5a.927.927 0 01-.52.076l-.1-.026-5.92-2.08-2.64 3.7a.74.74 0 01-.61.31c-.08 0-.15-.02-.23-.04a.727.727 0 01-.512-.602L8.53 21.1v-4.68L1.5 13.86a.748.748 0 01-.49-.66.77.77 0 01.317-.654l.093-.056L21.83 2.07zm-1.04 3.6l-10.12 9.92 7.47 2.63 2.65-12.55zm-1.52-.62L3.63 13.04l5.46 1.99 10.18-9.98z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionSend.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/433.f79affda.js b/pr-preview/pr-186/assets/js/433.f79affda.js new file mode 100644 index 000000000..9b015cc5e --- /dev/null +++ b/pr-preview/pr-186/assets/js/433.f79affda.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 433; +exports.ids = [433]; +exports.modules = { + +/***/ 30433: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_mms_incoming: () => (/* binding */ CommunicationMmsIncoming) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationMmsIncoming = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 3v8.406l-6.32 4.088a1.5 1.5 0 00-.68 1.255c0 .215.05.422.136.611l.071.139H10.62l-3.274 3.274a1.63 1.63 0 01-1.166.491c-.812 0-1.592-.597-1.672-1.514l-.007-.156V17.5H3.358a2.857 2.857 0 01-2.852-2.69l-.005-.168V3h19zm0 10.15v2.849h3.75a.75.75 0 01.102 1.493l-.102.007H19.5v2.85l-5.5-3.6 5.5-3.6zm-4.575-4.906c-.767 0-1.355.495-1.355 1.287 0 .48.221.923.776 1.13l.146.046.476.136c.322.086.495.216.495.476 0 .266-.18.464-.538.464-.27 0-.48-.107-.576-.374l-.03-.108h-.83c.075.816.582 1.262 1.436 1.262.779 0 1.391-.464 1.391-1.293 0-.548-.327-.975-.859-1.164l-.137-.043-.476-.13c-.229-.062-.42-.167-.42-.458 0-.29.216-.451.5-.451.286 0 .455.122.528.366l.023.098h.817c-.08-.761-.532-1.244-1.367-1.244zm-5.41.093h-.767v4.133h.835v-2.333h.037l1.009 1.82h.266l1.015-1.82h.037v2.333h.829V8.337h-.768l-1.225 2.29h-.037l-1.23-2.29zm-5.012 0h-.767v4.133h.835v-2.333h.037l1.01 1.82h.265l1.015-1.82h.037v2.333h.829V8.337h-.767l-1.225 2.29h-.038l-1.23-2.29z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 3v8.357l-1.5.982V4.5H2v10.143c0 .704.54 1.285 1.227 1.35l.13.007H6v3.596c0 .07.045.131.105.157.055.023.122.017.18-.04L9.998 16H12.5v1.5h-1.881l-3.274 3.274a1.63 1.63 0 01-1.167.491c-.81 0-1.591-.597-1.671-1.514l-.007-.155V17.5H3.357a2.857 2.857 0 01-2.852-2.69L.5 14.644V3h19zm0 10.15V16h3.75a.75.75 0 01.102 1.493l-.102.007H19.5v2.85l-5.5-3.6 5.5-3.6zm-4.576-4.905c.783 0 1.23.424 1.348 1.104l.02.14h-.818c-.056-.31-.229-.465-.55-.465-.285 0-.502.161-.502.452 0 .259.152.37.347.436l.075.022.476.13c.612.161.996.613.996 1.207 0 .829-.612 1.292-1.392 1.292-.8 0-1.296-.391-1.416-1.113l-.02-.148h.83c.075.346.303.482.606.482.359 0 .539-.198.539-.464 0-.228-.133-.355-.382-.442l-.114-.034-.476-.136c-.662-.18-.922-.656-.922-1.176 0-.792.588-1.287 1.355-1.287zm-5.41.093l1.232 2.289h.037l1.225-2.29h.767v4.133h-.829v-2.332h-.037l-1.015 1.819h-.266L9.62 10.138h-.037v2.332h-.836V8.337h.768zm-5.012 0l1.231 2.289h.038l1.224-2.29h.768v4.133h-.829v-2.332h-.037l-1.016 1.819h-.265l-1.009-1.819H4.57v2.332h-.836V8.337h.768z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationMmsIncoming.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/43392.ab19f822.js b/pr-preview/pr-186/assets/js/43392.ab19f822.js new file mode 100644 index 000000000..9a638ab84 --- /dev/null +++ b/pr-preview/pr-186/assets/js/43392.ab19f822.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[43392],{43392:(t,i,s)=>{s.r(i),s.d(i,{scale_icon_action_notification:()=>l});var e=s(90936);const l=class{constructor(t){(0,e.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,e.h)(e.a,null,(0,e.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,e.h)("title",null,this.accessibilityTitle),(0,e.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,e.h)("g",null,(0,e.h)("path",{d:"M22 16.95c-2.35-2.35-2.7-4.65-2.8-5.8L19 9.4c-.25-3.15-2.55-5.6-5.5-6.25V3c0-.85-.65-1.5-1.5-1.5s-1.5.65-1.5 1.5v.15C7.55 3.8 5.25 6.25 5 9.4l-.15 1.75c-.15 1.1-.5 3.4-2.85 5.8v3.55h7.05C9.3 21.9 10.5 23 12 23c1.5 0 2.7-1.1 2.95-2.5H22v-3.55z"})):(0,e.h)("g",null,(0,e.h)("path",{d:"M22 16.95c-2.35-2.35-2.7-4.65-2.8-5.8L19 9.4c-.25-3.15-2.55-5.6-5.5-6.25V3c0-.85-.65-1.5-1.5-1.5s-1.5.65-1.5 1.5v.15C7.55 3.8 5.25 6.25 5 9.4l-.15 1.75c-.15 1.1-.5 3.4-2.85 5.8v3.55h7.05C9.3 21.9 10.5 23 12 23c1.5 0 2.7-1.1 2.95-2.5H22v-3.55zM20.5 19h-17v-1.45c1.6-1.7 2.6-3.9 2.8-6.25l.15-1.75C6.75 6.65 9.1 4.5 12 4.5s5.25 2.15 5.5 5.05l.15 1.75c.2 2.35 1.2 4.55 2.8 6.25V19h.05z","fill-rule":"evenodd"})))))}get hostElement(){return(0,e.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4353.31b421f9.js b/pr-preview/pr-186/assets/js/4353.31b421f9.js new file mode 100644 index 000000000..aba193d50 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4353.31b421f9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4353; +exports.ids = [4353]; +exports.modules = { + +/***/ 94353: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_weather_moon_cloudy_a: () => (/* binding */ WeatherMoonCloudyA) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const WeatherMoonCloudyA = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.1 8.381a5.577 5.577 0 015.242 3.639 4.246 4.246 0 012.258 3.744 4.242 4.242 0 01-4.024 4.23l-.212.006h-9.09A3.877 3.877 0 01.4 16.127a3.88 3.88 0 011.941-3.355 3.486 3.486 0 014.262-3.158A5.575 5.575 0 0110.1 8.381zm8.077-5.476a5.383 5.383 0 012.621-.03 4.55 4.55 0 003.058 8.515 5.374 5.374 0 01-2.934 1.969 5.37 5.37 0 01-2.685.015 5.421 5.421 0 00-1.938-2.184 6.749 6.749 0 00-2.137-2.675 5.404 5.404 0 014.015-5.61z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.1 8.381a5.577 5.577 0 015.242 3.639 4.246 4.246 0 012.258 3.744 4.242 4.242 0 01-4.025 4.23l-.211.006H4.273A3.877 3.877 0 01.4 16.127c0-1.391.75-2.669 1.942-3.355a3.486 3.486 0 014.262-3.158A5.574 5.574 0 0110.1 8.381zm0 1.2a4.377 4.377 0 00-2.758.978l-.191.165-.262.238-.335-.115a2.286 2.286 0 00-.738-.125c-1.206 0-2.196.94-2.277 2.126l-.005.156.024.517-.373.166a2.677 2.677 0 00-1.585 2.44 2.676 2.676 0 002.504 2.668l.169.005h9.09a3.04 3.04 0 003.037-3.036 3.044 3.044 0 00-1.613-2.68l-.178-.088-.243-.11-.082-.253A4.381 4.381 0 0010.1 9.58zm8.076-6.675a5.38 5.38 0 012.622-.03 4.549 4.549 0 003.057 8.515 5.376 5.376 0 01-2.934 1.968 5.37 5.37 0 01-2.685.015 5.42 5.42 0 00-1.938-2.184 6.748 6.748 0 00-2.137-2.676 5.403 5.403 0 014.015-5.608z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +WeatherMoonCloudyA.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/43562.09cddb3b.js b/pr-preview/pr-186/assets/js/43562.09cddb3b.js new file mode 100644 index 000000000..95956ac68 --- /dev/null +++ b/pr-preview/pr-186/assets/js/43562.09cddb3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[43562],{43562:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_filter_2:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M22 2H2v3.568c0 1.233.507 2.413 1.4 3.263L9 14.15v9.35l6-3v-6.35l5.6-5.319c.893-.85 1.4-2.03 1.4-3.263V2z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M22 2H2v3.568c0 1.233.507 2.413 1.4 3.263L9 14.15v9.35l6-3v-6.35l5.6-5.319c.893-.85 1.4-2.03 1.4-3.263V2zm-1.5 1.5v2.068c0 .819-.34 1.612-.934 2.175l-5.598 5.32-.468.443v6.067l-3 1.5v-7.567l-.467-.443-5.599-5.32A3.009 3.009 0 013.5 5.568V3.5h17z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4366.d6410e6d.js b/pr-preview/pr-186/assets/js/4366.d6410e6d.js new file mode 100644 index 000000000..f67637bf4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4366.d6410e6d.js @@ -0,0 +1,120 @@ +"use strict"; +exports.id = 4366; +exports.ids = [4366]; +exports.modules = { + +/***/ 54366: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_success: () => (/* binding */ ActionSuccess), +/* harmony export */ scale_icon_alert_error: () => (/* binding */ AlertError), +/* harmony export */ scale_icon_alert_information: () => (/* binding */ AlertInformation) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss$2 = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionSuccess = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm5.53 8.295l-6.865 6.865-4.195-4.195a.75.75 0 111.06-1.06l3.135 3.135 5.805-5.805a.755.755 0 011.06 0 .745.745 0 010 1.06z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { "fill-rule": "evenodd" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1zm0 20.5c-5.239 0-9.5-4.262-9.5-9.5 0-5.239 4.261-9.5 9.5-9.5 5.238 0 9.5 4.261 9.5 9.5 0 5.238-4.262 9.5-9.5 9.5z" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.47 8.236l-5.803 5.803-3.137-3.136a.75.75 0 10-1.06 1.06l4.197 4.197 6.864-6.863a.75.75 0 10-1.061-1.061z" })))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionSuccess.style = iconCss$2; + +const iconCss$1 = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertError = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.075 18L14.6 3.32a3 3 0 00-5.2 0L.925 18a3 3 0 002.6 4.5H20.5a3 3 0 002.575-4.5zM11 8.25h2v6.5h-2v-6.5zm1 10.5a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M11.95 1.8c.938 0 1.875.44 2.483 1.318l.117.182 8.5 14.7c1.17 1.951-.18 4.378-2.383 4.496l-.167.004H3.55c-2.243 0-3.677-2.377-2.681-4.35L.95 18l8.4-14.7c.6-1 1.6-1.5 2.6-1.5zm.105 1.5h-.11a1.431 1.431 0 00-1.155.61l-.09.14-8.5 14.7c-.343.6-.208 1.09-.068 1.375l.068.125.077.12c.167.24.48.57 1.058.623L3.5 21h17c.75 0 1.15-.5 1.25-.75l.068-.125a1.47 1.47 0 00.048-1.227l-.066-.148-8.5-14.7c-.32-.56-.8-.704-1.107-.74l-.138-.01zM12 16.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm1-8V15h-2V8.5h2z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertError.style = iconCss$1; + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const AlertInformation = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm1 16h-2v-6.5h2V17zm-1-8a1.25 1.25 0 110-2.5A1.25 1.25 0 0112 9z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.1 0 11 4.9 11 11s-4.9 11-11 11S1 18.1 1 12 5.9 1 12 1zm0 1.5c-5.25 0-9.5 4.25-9.5 9.5s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5-4.25-9.5-9.5-9.5zm1 8V17h-2v-6.5h2zm-1-4A1.25 1.25 0 1112 9a1.25 1.25 0 010-2.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +AlertInformation.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/437d5876.b8f29505.js b/pr-preview/pr-186/assets/js/437d5876.b8f29505.js new file mode 100644 index 000000000..1096fb530 --- /dev/null +++ b/pr-preview/pr-186/assets/js/437d5876.b8f29505.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[37845],{77861:e=>{e.exports=JSON.parse('{"tag":{"label":"devops","permalink":"/docs-next/pr-preview/pr-186/docs/tags/devops","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":2,"items":[{"id":"blueprints/by-use-case/devops/ci-jenkins-swr-cce","title":"Build a CI Pipeline with Jenkins, SWR and CCE","description":"This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-jenkins-swr-cce"},{"id":"blueprints/by-use-case/devops/ci-devtron-swr-cce","title":"Build a CI/CD Pipeline with Devtron, SWR and CCE","description":"This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/43841.135b7aca.js b/pr-preview/pr-186/assets/js/43841.135b7aca.js new file mode 100644 index 000000000..87a23dfb4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/43841.135b7aca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[43841],{43841:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_arrow_right:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M14.625 4.977a1.249 1.249 0 10-1.548 1.963l4.83 3.81H2.915a1.25 1.25 0 000 2.5h15l-4.838 3.815a1.25 1.25 0 001.548 1.963l8.909-7.026-8.91-7.025z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M14.366 5.411a.75.75 0 10-.93 1.178l5.905 4.661H3a.75.75 0 000 1.5h16.34l-5.906 4.661a.75.75 0 00.93 1.178L22.712 12l-8.345-6.589z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/43873.cea0f8e6.js b/pr-preview/pr-186/assets/js/43873.cea0f8e6.js new file mode 100644 index 000000000..835276c75 --- /dev/null +++ b/pr-preview/pr-186/assets/js/43873.cea0f8e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[43873],{43873:(t,i,e)=>{e.r(i),e.d(i,{scale_icon_content_waiting:()=>l});var s=e(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},i=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,i),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M12 1.005c.444 0 .75.35.75.745 0 .402-.329.75-.75.75-5.239 0-9.5 4.261-9.5 9.5 0 5.238 4.261 9.5 9.5 9.5 5.238 0 9.5-4.262 9.5-9.5 0-.2.08-.39.22-.53.276-.28.78-.28 1.06 0 .14.14.22.335.22.53 0 6.066-4.934 11-11 11S1 18.066 1 12 5.934 1.005 12 1.005zm0 2.98a.75.75 0 01.743.649l.007.101v6.516l4.852.005a.75.75 0 01.1 1.493l-.103.006-6.349-.006V4.735a.75.75 0 01.75-.75zm9.71 4.635a.75.75 0 01.384 1.45.745.745 0 01-.915-.53.747.747 0 01.531-.92zM20.5 6.225a.746.746 0 011.025.275.744.744 0 01-.27 1.02.743.743 0 01-1.025-.27.745.745 0 01.27-1.025zM18.715 4.22a.76.76 0 011.065 0c.29.295.29.77 0 1.06-.15.15-.34.22-.53.22a.838.838 0 01-.51-.194.699.699 0 01-.239-.482.759.759 0 01.214-.604zm-2.24-1.475a.751.751 0 011.3.755.744.744 0 01-1.025.27.755.755 0 01-.275-1.025zm-2.546-.84a.751.751 0 011.45.385.755.755 0 01-.38.474.754.754 0 01-.938-.208.749.749 0 01-.132-.651z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4395.f83c27d4.js b/pr-preview/pr-186/assets/js/4395.f83c27d4.js new file mode 100644 index 000000000..f556d239e --- /dev/null +++ b/pr-preview/pr-186/assets/js/4395.f83c27d4.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4395; +exports.ids = [4395]; +exports.modules = { + +/***/ 64395: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_lock: () => (/* binding */ ContentLock) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentLock = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.5 9.5v-2a6.5 6.5 0 10-13 0v2H3V19a3 3 0 003 3h12a3 3 0 003-3V9.5h-2.5zM13 16.11V18h-2v-1.89a1.5 1.5 0 112 0zm4-6.61H7v-2a5 5 0 0110 0v2z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1a6.486 6.486 0 016.496 6.266l.004.234v2H21V19a3.01 3.01 0 01-2.824 2.995L18 22H6a3.01 3.01 0 01-2.995-2.824L3 19V9.5h2.5v-2C5.5 3.9 8.4 1 12 1zm7.5 10h-15v8c0 .8.576 1.423 1.352 1.493L6 20.5h12c.8 0 1.423-.576 1.493-1.352L19.5 19v-8zM12 13.5c.85 0 1.5.65 1.5 1.5 0 .4-.158.76-.404 1.011L13 16.1V18h-2v-1.9c-.3-.25-.5-.65-.5-1.1 0-.85.65-1.5 1.5-1.5zm0-11c-2.678 0-4.881 2.133-4.995 4.784L7 7.5v2h10v-2c0-2.75-2.25-5-5-5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentLock.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4411.d858edf8.js b/pr-preview/pr-186/assets/js/4411.d858edf8.js new file mode 100644 index 000000000..8950ddec8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4411.d858edf8.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4411; +exports.ids = [4411]; +exports.modules = { + +/***/ 94411: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_home: () => (/* binding */ HomeHome) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomeHome = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .85L.45 12.45 1.5 13.5 12 3l10.5 10.5 1.05-1.05L12 .85zM3.5 13.6V19l.005.176A3.01 3.01 0 006.5 22h4.75v-5.25c0-.4.35-.75.75-.75.367 0 .691.294.743.651l.007.099V22h4.75l.176-.005A3.01 3.01 0 0020.5 19v-5.4L12 5.1l-8.5 8.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19 12.1l1.5 1.5V19a3.01 3.01 0 01-2.824 2.995L17.5 22h-11a3.01 3.01 0 01-2.995-2.824L3.5 19v-5.4L5 12.1V19c0 .8.576 1.423 1.352 1.493l.148.007h4.75v-3.75c0-.4.35-.75.75-.75.367 0 .691.294.743.651l.007.099v3.75h4.75c.8 0 1.423-.576 1.493-1.352L19 19v-6.9zM12 .85l11.55 11.6-1.05 1.05L12 3 1.5 13.5.45 12.45 12 .85z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomeHome.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/44169.fb19ba26.js b/pr-preview/pr-186/assets/js/44169.fb19ba26.js new file mode 100644 index 000000000..1de543d51 --- /dev/null +++ b/pr-preview/pr-186/assets/js/44169.fb19ba26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[44169],{44169:(t,s,e)=>{e.r(s),e.d(s,{scale_icon_action_fast_forward:()=>l});var i=e(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},s=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,s),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm.5 15v-3.6L7 16V8l5.5 3.6V8l6.11 4-6.11 4z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.24 0-9.5 4.26-9.5 9.5s4.26 9.5 9.5 9.5 9.5-4.26 9.5-9.5-4.26-9.5-9.5-9.5zm.5 5.5l6.11 4-6.11 4v-3.6L7 16V8l5.5 3.6V8z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4420.172a664e.js b/pr-preview/pr-186/assets/js/4420.172a664e.js new file mode 100644 index 000000000..1b2d182c6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4420.172a664e.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4420; +exports.ids = [4420]; +exports.modules = { + +/***/ 74420: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_available: () => (/* binding */ CommunicationAvailable) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationAvailable = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm5.53 8.295l-6.865 6.865-4.195-4.195a.75.75 0 111.06-1.06l3.135 3.135 5.805-5.805a.755.755 0 011.06 0 .745.745 0 010 1.06z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { "fill-rule": "evenodd" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1zm0 20.5c-5.239 0-9.5-4.262-9.5-9.5 0-5.239 4.261-9.5 9.5-9.5 5.238 0 9.5 4.261 9.5 9.5 0 5.238-4.262 9.5-9.5 9.5z" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.47 8.236l-5.803 5.803-3.137-3.136a.75.75 0 10-1.06 1.06l4.197 4.197 6.864-6.863a.75.75 0 10-1.061-1.061z" })))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationAvailable.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4421.5d21c926.js b/pr-preview/pr-186/assets/js/4421.5d21c926.js new file mode 100644 index 000000000..2b48f4416 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4421.5d21c926.js @@ -0,0 +1,403 @@ +"use strict"; +exports.id = 4421; +exports.ids = [4421]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 84421: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_segmented_button: () => (/* binding */ SegmentedButton) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91779); + + + + +const segmentedButtonCss = ":host{--background-color:var(--telekom-color-ui-faint);--radius:var(--telekom-radius-standard);--height:32px;--height-medium:40px;--height-large:44px;display:flex;flex-direction:column}.segmented-button{background-color:var(--background-color);border:0;border-radius:var(--radius);padding:0 var(--telekom-spacing-composition-space-02);width:fit-content;height:var(--height);display:inline-grid}.segmented-button--full-width{width:100%}.segmented-button--medium{height:var(--height-medium);padding:0 var(--telekom-spacing-composition-space-02)}.segmented-button--large{height:var(--height-large);padding:0 var(--telekom-spacing-composition-space-02)}.segmented-button--label{font-size:var(--telekom-typography-font-size-body);font-weight:var(--telekom-typography-font-weight-bold);margin-bottom:var(--telekom-spacing-composition-space-04)}.segmented-button--helper-text{margin-top:var(--telekom-spacing-composition-space-04)}"; + +const CHECKMARK_WIDTH_SMALL = 14; +const CHECKMARK_WIDTH_MEDIUM = 18 + 12; +const CHECKMARK_WIDTH_LARGE = 20 + 18; +const SegmentedButton = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + /** segment position within button */ + this.position = 0; + this.slottedSegments = 0; + /** state */ + this.status = []; + /** (optional) The size of the button */ + this.size = 'small'; + /** (optional) Allow more than one button to be selected */ + this.multiSelect = false; + /** (optional) If `true`, the button is disabled */ + this.disabled = false; + /** (optional) If `true`, expand to container width */ + this.fullWidth = false; + /** (optional) If `true`, show error message */ + this.invalid = false; + /** (optional) If `true`, show error message */ + this.helperText = 'Please select an option'; + /** (optional) aria-label attribute needed for icon-only buttons */ + this.ariaLabelTranslation = `segment button with $slottedSegments`; + this.showHelperText = false; + this.getAdjacentSiblings = (tempState, i) => { + let adjacentSiblings = ''; + if (i !== 0 && tempState[i].selected && tempState[i - 1].selected) { + adjacentSiblings = 'left'; + } + if (i !== tempState.length - 1 && + tempState[i].selected && + tempState[i + 1].selected) { + adjacentSiblings = `${adjacentSiblings ? adjacentSiblings + ' right' : 'right'}`; + } + return adjacentSiblings; + }; + } + scaleClickHandler(ev) { + let tempState; + if (!this.multiSelect) { + if (!ev.detail.selected) { + tempState = this.status.map((obj) => ev.detail.id === obj.id ? ev.detail : Object.assign({}, obj)); + /* clicked button has now selected state */ + } + else { + tempState = this.status.map((obj) => ev.detail.id === obj.id ? ev.detail : Object.assign(Object.assign({}, obj), { selected: false })); + } + } + else { + tempState = this.status.map((obj) => ev.detail.id === obj.id ? ev.detail : Object.assign({}, obj)); + } + this.setState(tempState); + } + handlePropsChange() { + this.propagatePropsToChildren(); + } + /** + * Keep props, needed in children buttons, in sync + */ + propagatePropsToChildren() { + this.getAllSegments().forEach((segment) => { + segment.setAttribute('size', this.size); + segment.setAttribute('selected-index', this.selectedIndex.toString()); + if (this.disabled) { + segment.setAttribute('disabled', 'disabled'); + } + }); + } + componentDidLoad() { + const tempState = []; + const segments = this.getAllSegments(); + this.slottedSegments = segments.length; + const longestButtonWidth = this.getLongestButtonWidth(); + segments.forEach((segment) => { + this.position++; + tempState.push({ + id: segment.getAttribute('segment-id') || segment.segmentId, + selected: segment.hasAttribute('selected') || segment.selected, + }); + segment.setAttribute('position', this.position.toString()); + segment.setAttribute('aria-description-translation', '$position $selected'); + }); + if (!this.fullWidth) { + this.container.style.gridTemplateColumns = `repeat(${this.hostElement.children.length}, ${Math.ceil(longestButtonWidth)}px)`; + } + else { + this.container.style.display = 'flex'; + } + this.selectedIndex = this.getSelectedIndex(); + this.propagatePropsToChildren(); + this.position = 0; + this.status = tempState; + this.setState(tempState); + } + componentWillUpdate() { + this.selectedIndex = this.getSelectedIndex(); + this.showHelperText = false; + if (this.invalid && + this.status.filter((e) => e.selected === true).length <= 0) { + this.showHelperText = true; + } + } + getSelectedIndex() { + if (this.multiSelect) { + // in multi-select having no selected segments is allowed + return -1; + } + else { + const allSegments = this.getAllSegments(); + const selectedIndex = allSegments.findIndex((el) => el.selected === true); + return selectedIndex; + } + } + // all segmented buttons should have the same width, based on the largest one + getLongestButtonWidth() { + let tempWidth = 0; + Array.from(this.hostElement.children).forEach((child) => { + const selected = child.hasAttribute('selected'); + const iconOnly = child.hasAttribute('icon-only'); + const checkmark = this.size === 'small' + ? CHECKMARK_WIDTH_SMALL + : this.size === 'medium' + ? CHECKMARK_WIDTH_MEDIUM + : CHECKMARK_WIDTH_LARGE; + if (selected || iconOnly) { + tempWidth = + child.getBoundingClientRect().width > tempWidth + ? child.getBoundingClientRect().width + : tempWidth; + } + else { + tempWidth = + child.getBoundingClientRect().width + checkmark > tempWidth + ? child.getBoundingClientRect().width + checkmark + : tempWidth; + } + }); + return tempWidth; + } + setState(tempState) { + const segments = Array.from(this.hostElement.querySelectorAll('scale-segment')); + segments.forEach((segment, i) => { + segment.setAttribute('adjacent-siblings', this.getAdjacentSiblings(tempState, i)); + segment.setAttribute('selected', tempState[i].selected ? 'true' : 'false'); + }); + this.status = tempState; + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.e)(this, 'scaleChange', this.status); + } + getAllSegments() { + return Array.from(this.hostElement.querySelectorAll('scale-segment')); + } + getAriaLabelTranslation() { + const filledText = this.ariaLabelTranslation.replace(/\$slottedSegments/g, `${this.slottedSegments}`); + return filledText; + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), this.label && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("span", { class: "segmented-button--label" }, " ", this.label, " ")), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), part: this.getBasePartMap(), "aria-label": this.getAriaLabelTranslation(), role: "group", ref: (el) => (this.container = el) }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null)), this.showHelperText && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-helper-text", { class: "segmented-button--helper-text", helperText: this.helperText, variant: 'danger' })))); + } + getBasePartMap() { + return this.getCssOrBasePartMap('basePart'); + } + getCssClassMap() { + return this.getCssOrBasePartMap('css'); + } + getCssOrBasePartMap(mode) { + const prefix = mode === 'basePart' ? '' : 'segmented-button--'; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('segmented-button', this.size && `${prefix}${this.size}`, this.fullWidth && `${prefix}full-width`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } + static get watchers() { return { + "disabled": ["handlePropsChange"], + "size": ["handlePropsChange"], + "selectedIndex": ["handlePropsChange"] + }; } +}; +SegmentedButton.style = segmentedButtonCss; + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4422.a1d668ba.js b/pr-preview/pr-186/assets/js/4422.a1d668ba.js new file mode 100644 index 000000000..d124b302a --- /dev/null +++ b/pr-preview/pr-186/assets/js/4422.a1d668ba.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4422; +exports.ids = [4422]; +exports.modules = { + +/***/ 14422: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_device_game_controller: () => (/* binding */ DeviceGameController) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const DeviceGameController = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19 15.5a1.25 1.25 0 10-2.5 0 1.25 1.25 0 002.5 0M16 13a1.25 1.25 0 10-2.5 0 1.25 1.25 0 002.5 0m-5.25 1.25a.75.75 0 00-.75-.75H8.5V12A.75.75 0 107 12v1.5H5.5a.75.75 0 100 1.5H7v1.5a.75.75 0 001.5 0V15H10a.75.75 0 00.75-.75m12.562 7.129a4.11 4.11 0 01-2.561 2.035 4.176 4.176 0 01-4.215-1.271L14.66 20H9.34l-1.874 2.143a4.175 4.175 0 01-4.216 1.271 4.113 4.113 0 01-2.56-2.035 4.12 4.12 0 01-.292-3.259L3.707 8h16.588l3.309 10.12a4.115 4.115 0 01-.292 3.259M12 2.056c1.724 0 3.279.728 4.383 1.889l1.107-1.009A7.527 7.527 0 0012 .556a7.527 7.527 0 00-5.49 2.38l1.107 1.009A6.034 6.034 0 0112 2.056m0 1.503c1.285 0 2.446.537 3.275 1.397l-1.107 1.009A3.037 3.037 0 0012 5.058a3.04 3.04 0 00-2.168.906L8.726 4.956A4.53 4.53 0 0112 3.559", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75 14.25a1.25 1.25 0 10-.001 2.498 1.25 1.25 0 00.002-2.498m-3-2.5a1.25 1.25 0 10-.002 2.498 1.25 1.25 0 00.002-2.498M10 13.5H8.5V12A.75.75 0 107 12v1.5H5.5a.75.75 0 100 1.5H7v1.5a.75.75 0 101.5 0V15H10a.75.75 0 100-1.5m11.99 7.167a2.625 2.625 0 01-1.635 1.3 2.667 2.667 0 01-2.692-.811L15.34 18.5H8.66l-2.323 2.655a2.667 2.667 0 01-2.692.812 2.63 2.63 0 01-1.636-1.3 2.626 2.626 0 01-.185-2.08L4.795 9.5h14.412l2.97 9.087a2.618 2.618 0 01-.186 2.08m1.612-2.547L20.295 8H3.707L.397 18.12a4.119 4.119 0 00.293 3.259 4.112 4.112 0 002.562 2.035 4.171 4.171 0 004.214-1.271L9.34 20h5.32l1.875 2.143a4.173 4.173 0 004.215 1.271 4.113 4.113 0 002.56-2.035 4.11 4.11 0 00.292-3.259M12 2.056c1.725 0 3.279.729 4.383 1.889l1.107-1.009A7.533 7.533 0 0012 .556a7.531 7.531 0 00-5.49 2.38l1.107 1.009A6.032 6.032 0 0112 2.056m-3.275 2.9l1.106 1.008a3.045 3.045 0 014.338.001l1.106-1.009a4.537 4.537 0 00-6.55 0", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +DeviceGameController.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4427.c0619240.js b/pr-preview/pr-186/assets/js/4427.c0619240.js new file mode 100644 index 000000000..07a4aed20 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4427.c0619240.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4427; +exports.ids = [4427]; +exports.modules = { + +/***/ 94427: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_record_nb: () => (/* binding */ ActionRecordNb) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionRecordNb = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("circle", { cx: "12", cy: "12", r: "7", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("circle", { cx: "12", cy: "12", r: "7", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionRecordNb.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/44437.79ddad47.js b/pr-preview/pr-186/assets/js/44437.79ddad47.js new file mode 100644 index 000000000..8bda7e3c1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/44437.79ddad47.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[44437],{44437:(e,s,c)=>{c.r(s)}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4455.ac6d78a9.js b/pr-preview/pr-186/assets/js/4455.ac6d78a9.js new file mode 100644 index 000000000..f26db7f8e --- /dev/null +++ b/pr-preview/pr-186/assets/js/4455.ac6d78a9.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4455; +exports.ids = [4455]; +exports.modules = { + +/***/ 74455: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_families: () => (/* binding */ UserFileFamilies) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileFamilies = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.25 16.5l2.85 2.75 2.75-2.75h1.6c1.883 0 3.532 1.305 3.914 3.15l.036.2.1.65H6.6l.1-.65c.29-1.883 1.884-3.253 3.75-3.345l.2-.005h1.6zm-5.4 0c-.375.375-.68.785-.946 1.23L5.75 18H4.5c-.897 0-1.66.58-1.87 1.445l-.03.155-.15.9H.95l.2-1.15c.24-1.589 1.594-2.76 3.168-2.845L4.5 16.5h2.35zm8.2-11.75C18 4.75 20.1 6.9 20.1 9.8c0 2.8-2.05 5.85-5.05 5.85C12 15.65 10 12.6 10 9.8c0-2.95 2.1-5.05 5.05-5.05zm-7 1.15c.55 0 1.05.1 1.5.25-.25.4-.5.85-.65 1.35-.25-.05-.55-.1-.85-.1-1.7 0-2.85 1.2-2.85 2.85 0 1.7 1.15 3.5 2.85 3.5.5 0 .9-.15 1.3-.4.25.45.5.85.8 1.25-.6.4-1.3.65-2.1.65-2.6 0-4.35-2.6-4.35-5 0-2.5 1.9-4.35 4.35-4.35z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12.25 16.5l2.85 2.75 2.75-2.75h1.6c1.883 0 3.532 1.305 3.914 3.15l.036.2.1.65H6.6l.1-.65c.29-1.883 1.884-3.253 3.75-3.345l.2-.005h1.6zm-5.4 0c-.375.375-.68.785-.946 1.23L5.75 18H4.5c-.897 0-1.66.58-1.87 1.445l-.03.155-.15.9H.95l.2-1.15c.24-1.589 1.594-2.76 3.168-2.845L4.5 16.5h2.35zm8.2-11.75C18 4.75 20.1 6.9 20.1 9.8c0 2.8-2.05 5.85-5.05 5.85C12 15.65 10 12.6 10 9.8c0-2.95 2.1-5.05 5.05-5.05zm-7 1.15c.55 0 1.05.1 1.5.25-.25.4-.5.85-.65 1.35-.25-.05-.55-.1-.85-.1-1.7 0-2.85 1.2-2.85 2.85 0 1.7 1.15 3.5 2.85 3.5.5 0 .9-.15 1.3-.4.25.45.5.85.8 1.25-.6.4-1.3.65-2.1.65-2.6 0-4.35-2.6-4.35-5 0-2.5 1.9-4.35 4.35-4.35zm7 .35c-2.1 0-3.55 1.45-3.55 3.55 0 2.1 1.45 4.35 3.55 4.35 2.15 0 3.55-2.25 3.55-4.35 0-2.1-1.45-3.55-3.55-3.55z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileFamilies.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4461.3b341008.js b/pr-preview/pr-186/assets/js/4461.3b341008.js new file mode 100644 index 000000000..9af07ed1f --- /dev/null +++ b/pr-preview/pr-186/assets/js/4461.3b341008.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4461; +exports.ids = [4461]; +exports.modules = { + +/***/ 54461: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_file: () => (/* binding */ UserFileFile) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileFile = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21 17.5L15.5 23v-4a1.5 1.5 0 011.356-1.493L17 17.5h4zM21 1v15.5h-4a2.5 2.5 0 00-2.495 2.336L14.5 19v4H6a3 3 0 01-2.995-2.824L3 20V1h18z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M3 1v19c0 1.65 1.35 3 3 3h10l5-5V1H3zm1.5 19V2.5h15V17h-3c-.85 0-1.5.65-1.5 1.5v3H6c-.85 0-1.5-.65-1.5-1.5z", id: "a" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { id: "c", d: "M0 0h12.002v16H0z" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: "none", "fill-rule": "evenodd" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("mask", { id: "b", fill: "#fff" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { fill: "#000", xlinkHref: "#a" }), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { mask: "url(#b)" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { transform: "translate(6 4)" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("mask", { id: "d", fill: "#fff" }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#c" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M10.131 15h-8.25a.94.94 0 01-.88-.996V2a.94.94 0 01.876-1h4.124v5a.5.5 0 00.5.5h4.5V14a.94.94 0 01-.87 1zm.46-9.5h-3.59V1.58l3.59 3.92zm1.28-.09L7.061.16a.518.518 0 00-.37-.16h-4.81a1.94 1.94 0 00-1.88 1.998V14a1.94 1.94 0 001.878 2h8.252a1.94 1.94 0 001.87-2V5.75a.53.53 0 00-.13-.34z", fill: "#000", mask: "url(#d)" })))))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileFile.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/44800.871b43df.js b/pr-preview/pr-186/assets/js/44800.871b43df.js new file mode 100644 index 000000000..069719621 --- /dev/null +++ b/pr-preview/pr-186/assets/js/44800.871b43df.js @@ -0,0 +1,2 @@ +/*! For license information please see 44800.871b43df.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[44800],{88114:(e,o,t)=>{t.d(o,{c:()=>i});var r,a,n,i=(r=function(e){!function(){var o={}.hasOwnProperty;function t(){for(var e=[],r=0;r{t.r(o),t.d(o,{scale_radio_button:()=>l});var r=t(90936),a=t(88114),n=t(91779),i=t(94200);const l=class{constructor(e){(0,r.r)(this,e),this.scaleChange=(0,r.c)(this,"scale-change",7),this.scaleChangeLegacy=(0,r.c)(this,"scaleChange",7),this.name="",this.label="",this.helperText="",this.status="",this.invalid=!1,this.checked=!1,this.value="",this.internalId=(0,n.g)(),this.handleCheckedChange=e=>{this.disabled||(this.checked=e.target.checked,this.checked&&this.uncheckSiblings(),(0,n.e)(this,"scaleChange",{value:null==this.value?this.value:this.value.toString()}))}}componentWillLoad(){null==this.inputId&&(this.inputId="input-"+this.internalId)}componentDidRender(){""!==this.status&&(0,i.s)({tag:"deprecated",message:'Property "status" is deprecated. Please use the "invalid" property!',type:"warn",source:this.hostElement})}uncheckSiblings(){this.getSiblingRadios().forEach((e=>{e.checked=!1}))}getSiblingRadios(){return Array.from(document.querySelectorAll(`scale-radio-button[name="${this.name}"]`)).filter((e=>e.inputId!==this.inputId))}renderHelperIcon(){return this.helperText&&!this.invalid?(0,r.h)("scale-icon-alert-information",{size:11}):this.invalid?(0,r.h)("scale-icon-alert-error",{size:11}):void 0}render(){const e="error"===this.status||this.invalid?{"aria-invalid":"true"}:{},o=`helper-message-${this.internalId}`,t={"aria-describedBy":o};return(0,r.h)(r.a,null,(0,r.h)("div",{class:this.getCssClassMap()},(0,r.h)("input",Object.assign({type:"radio",name:this.name,id:this.inputId,onChange:this.handleCheckedChange,value:this.value,checked:this.checked,disabled:this.disabled},e,this.helperText?t:{})),(0,r.h)("label",{htmlFor:this.inputId},this.label),!!this.helperText&&(0,r.h)("div",{class:"radio-button__meta",id:o,"aria-live":"polite","aria-relevant":"additions removals"},this.renderHelperIcon(),(0,r.h)("div",{class:"radio-button__helper-text"},this.helperText))))}getCssClassMap(){return(0,a.c)("radio-button",this.checked&&"radio-button--checked",this.disabled&&"radio-button--disabled",this.status&&`radio-button--status-${this.status}`,this.invalid&&"radio-button--status-error")}get hostElement(){return(0,r.g)(this)}};l.style="scale-radio-button{--color-disabled:var(--telekom-color-text-and-icon-disabled);--background-disabled:var(--telekom-color-ui-disabled);--color-error:var(--telekom-color-text-and-icon-functional-danger);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--color-primary:var(--telekom-color-text-and-icon-primary-standard);--color-primary-hover:var(--telekom-color-text-and-icon-standard);--color-primary-active:var(--telekom-color-text-and-icon-standard);--color-focus:var(--telekom-color-functional-focus-standard);--color-text:var(--telekom-color-text-and-icon-standard);--transition-helper-text:var(--transition);--font-size-helper-text:var(--telekom-typography-font-size-small);--font-weight-helper-text:var(--telekom-typography-font-weight-bold);--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--color-helper-text:var(\n --telekom-color-text-and-icon-functional-informational\n );--spacing-left-helper-text:calc(\n var(--width-control) + var(--telekom-spacing-composition-space-04)\n );--spacing-top-helper-text:var(--telekom-spacing-composition-space-03);--color-helper-text-error:var(\n --telekom-color-text-and-icon-functional-danger\n );--transition-label:var(--transition);--font-weight-label:var(--telekom-typography-font-weight-medium);--color-label:var(--color-text);--spacing-label:var(--telekom-spacing-composition-space-04);--width-control:var(--telekom-spacing-composition-space-07);--height-control:var(--telekom-spacing-composition-space-07);--transition-control:var(--transition);--background-color-control:var(--telekom-color-ui-base);--border-control:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard);--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--border-control-checked:calc(\n 0.25 * var(--telekom-spacing-composition-space-05)\n )\n solid var(--telekom-color-background-canvas);--border-control-checked-disabled:calc(\n 0.5 * var(--telekom-spacing-composition-space-05)\n )\n solid var(--telekom-color-ui-border-disabled);--background-control-checked-disabled:none;--border-control-active:var(--telekom-spacing-composition-space-04) solid\n var(--telekom-color-primary-pressed);--border-control-disabled:0 0 0 var(--telekom-spacing-composition-space-01)\n var(--telekom-color-ui-border-disabled);--border-control-error:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard);--box-shadow-control-focus:0 0 0 var(--telekom-spacing-composition-space-03)\n var(--color-focus)}.radio-button{position:relative;display:flex;flex-wrap:wrap;align-items:center;width:fit-content}.radio-button .radio-button__meta{width:100%;display:flex;padding-left:var(--spacing-left-helper-text)}.radio-button .radio-button__helper-text{transition:var(--transition-helper-text);font-size:var(--font-size-helper-text);font-weight:var(--font-weight-helper-text);line-height:var(--line-height-helper-text);color:var(--color-helper-text)}scale-icon-alert-information,scale-icon-alert-error{color:var(--color-helper-text);display:flex;justify-content:center;align-items:center;margin-right:var(--telekom-spacing-composition-space-03)}.radio-button--status-error .radio-button__helper-text{color:var(--color-helper-text-error)}.radio-button--status-error scale-icon-alert-error{color:var(--color-helper-text-error)}.radio-button label{color:var(--color-label);transition:var(--transition-label);font-weight:var(--font-weight-label);cursor:pointer;line-height:var(--telekom-typography-line-spacing-standard);padding-left:var(--spacing-label)}.radio-button input{width:var(--width-control);height:var(--height-control);transition:var(--transition-control);border-radius:50%;-webkit-appearance:none;background-color:var(--telekom-color-ui-state-fill-standard);border:var(--border-control);margin:0;cursor:pointer}.radio-button input:not(:checked):not([disabled]):hover{box-shadow:none;border-color:var(--telekom-color-ui-border-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.radio-button input:not(:checked):not([disabled]):hover~label{color:var(--color-primary-hover)}.radio-button input:not(:checked):not([disabled]):active{border-color:var(--telekom-color-ui-border-pressed);background-color:var(--telekom-color-ui-state-fill-pressed)}.radio-button input:not(:checked):not([disabled]):active~label{color:var(--color-primary-active)}.radio-button input:disabled{box-shadow:var(--border-control-disabled)}.radio-button input:disabled~label{color:var(--color-disabled)}.radio-button.radio-button--status-error input{border:var(--border-control-error)}.radio-button.radio-button--status-error:hover input:not(:checked):not([disabled]){border-color:var(--telekom-color-functional-danger-hovered)}.radio-button.radio-button--status-error:active input:not(:checked):not([disabled]){border-color:var(--telekom-color-functional-danger-pressed)}.radio-button input:checked{border:var(--border-control-checked);background-color:var(--telekom-color-primary-standard);box-shadow:0 0 0 var(--telekom-spacing-composition-space-01)\n var(--telekom-color-text-and-icon-primary-standard)}.radio-button input:checked:disabled{background-color:var(--background-disabled);border:var(--border-control-checked);box-shadow:var(--border-control-disabled)}.radio-button input:checked:disabled~label{color:var(--color-disabled);border:var(--border-control-disabled)}.radio-button--disabled,.radio-button--disabled label,.radio-button--disabled .radio-button__label,.radio-button--disabled input,.radio-button--disabled .radio-button__helper-text{cursor:not-allowed;border-color:var(--color-disabled);color:var(--color-disabled);background:var(--telekom-color-ui-state-fill-standard)}.radio-button--disabled scale-icon-alert-information,.radio-button--disabled scale-icon-alert-error{color:var(--color-disabled)}.radio-button input:focus{outline:2px solid var(--color-focus);outline-offset:2px}"},94200:(e,o,t)=>{t.d(o,{s:()=>n});const r={beta:"\u03b2",WIP:"\ud83d\udee0 WIP",deprecated:"\ud83d\ude35 Deprecation notice",warning:"Warning"},a={beta:"This component is currently in beta status. Some things may be refactored. Watch the change log for now.",WIP:"This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.",deprecated:"This component is deprecated."};function n({tag:e="WIP",extraMessage:o=null,message:t=null,source:n=null,type:i="info"}){(0,console[i])(`%c scale \u2013 ${r[e]} `,"background: #E20074; color: #FFF; border-radius: 4px",`\n\n${t||a[e]} ${o?"\n"+o:""}\n `,null!==n?"\nsource:":"","object"==typeof n?n:`${n}`,null!==n?"\n\n":"")}},91779:(e,o,t)=>{t.d(o,{a:()=>d,b:()=>i,c:()=>a,e:()=>n,g:()=>c,h:()=>r,i:()=>l});const r=e=>!!e.shadowRoot&&!!e.attachShadow,a=e=>{let o=document.styleSheets[0];if(!o){const e=document.createElement("style");document.head.appendChild(e),o=document.styleSheets[0],document.head.removeChild(e)}return function(){try{return/^:/.test(e)||(e=":"+e),o.insertRule("html"+e+"{}",0),o.deleteRule(0),!0}catch(t){return!1}}()};function n(e,o,t){const r=o+"Legacy",a=[];return void 0!==e[r]&&a.push(e[r].emit(t)),a.push(e[o].emit(t)),a}function i(e,o){let t=e.target;const r=null!=t.shadowRoot,a=r?e.composedPath():[];do{if(t===o)return!1;t=r?a.shift():t.parentNode}while(t);return!0}const l=e=>null!=e&&1===e.nodeType&&"SCALE-ICON"===e.nodeName.toUpperCase().substring(0,10);let s=0;function c(){return s++}const d=e=>Promise.all(e.getAnimations({subtree:!0}).map((e=>e.finished)))}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/44800.871b43df.js.LICENSE.txt b/pr-preview/pr-186/assets/js/44800.871b43df.js.LICENSE.txt new file mode 100644 index 000000000..018c32d3c --- /dev/null +++ b/pr-preview/pr-186/assets/js/44800.871b43df.js.LICENSE.txt @@ -0,0 +1,16 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ diff --git a/pr-preview/pr-186/assets/js/44891.c202b79a.js b/pr-preview/pr-186/assets/js/44891.c202b79a.js new file mode 100644 index 000000000..86e1b8d41 --- /dev/null +++ b/pr-preview/pr-186/assets/js/44891.c202b79a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[44891],{44891:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_save_emails_to_drafts:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M17.75 11.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm0 1.5A4.756 4.756 0 0013 17.75a4.756 4.756 0 004.75 4.75 4.756 4.756 0 004.75-4.75A4.756 4.756 0 0017.75 13zm0 1.5a.75.75 0 01.743.648l.007.102v2.25h1.833l-2.583 3.945-2.582-3.945H17v-2.25a.75.75 0 01.75-.75zM19 5.87v4.24a7.798 7.798 0 00-1.25-.11c-3.935 0-7.192 2.947-7.684 6.75l-.028.25h-7.56a2.475 2.475 0 01-2.473-2.308L0 14.529V5.87l7.31 6.244a3.366 3.366 0 004.21.136l.17-.136L19 5.87zM19 3v.896l-8.284 7.078c-.677.579-1.754.579-2.431 0L0 3.896V3h19z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M17.75 11.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm0 3a.75.75 0 00-.743.649L17 15.25v2.25h-1.833l2.583 3.945 2.582-3.945H18.5v-2.25a.75.75 0 00-.75-.75zM19 3v7.11a7.808 7.808 0 00-1.25-.11l-.25.013V7.152l-5.81 4.963a3.36 3.36 0 01-4.185.154l-.195-.154L1.5 7.152v7.378c0 .496.378.908.864.964l.114.007h7.856a7.71 7.71 0 00-.25 1.115l-.046.385h-7.56a2.475 2.475 0 01-2.473-2.309L0 14.53V3h19zm-1.5 1.5h-16v.679l6.784 5.795c.661.564 1.6.6 2.296.106l.135-.106L17.5 5.179V4.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4492.0d45b2c4.js b/pr-preview/pr-186/assets/js/4492.0d45b2c4.js new file mode 100644 index 000000000..4c3073cb2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4492.0d45b2c4.js @@ -0,0 +1,2 @@ +/*! For license information please see 4492.0d45b2c4.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[4492],{88114:(e,t,s)=>{s.d(t,{c:()=>o});var i,r,n,o=(i=function(e){!function(){var t={}.hasOwnProperty;function s(){for(var e=[],i=0;i{s.r(t),s.d(t,{scale_list_item:()=>n});var i=s(90936),r=s(88114);const n=class{constructor(e){(0,i.r)(this,e),this.ordered=!1,this.marker=!0,this.hasNestedChild=!1,this.isNested=!1,this.handleSlotChange=({target:e})=>{this.hasNestedChild=e.assignedNodes().length>0,this.isNested=this.isNestedCheck()},this.isNestedCheck=()=>null!=this.el.closest('scale-list[slot="nested"]')}componentWillLoad(){this.isNested=this.isNestedCheck()}connectedCallback(){this.el.hasAttribute("role")||this.el.setAttribute("role","listitem")}render(){return(0,i.h)(i.a,null,this.styles&&(0,i.h)("style",null,this.styles),(0,i.h)("div",{class:this.getCssClassMap(),"data-index":this.index,part:(0,r.c)("base",this.ordered?"ordered":"unordered",this.isNested&&"nested",!this.marker&&"no-marker")},(0,i.h)("slot",null),(0,i.h)("div",{class:"list-item__nested-list",part:"nested-list",hidden:!this.hasNestedChild},(0,i.h)("slot",{name:"nested",onSlotchange:this.handleSlotChange}))))}getCssClassMap(){const e=this.ordered?"ordered":"unordered";return(0,r.c)("list-item",this.isNested&&"list-item--nested",`list-item--${e}`,!this.marker&&"list-item--no-marker")}get el(){return(0,i.g)(this)}};n.style=":host(scale-list-item){--display:block;--font-size:var(--telekom-typography-font-size-body);--line-height:var(--telekom-typography-line-spacing-standard);--spacing-left:calc(0.5ch + var(--telekom-spacing-composition-space-07));--spacing-left-nested:calc(\n 0.5ch + var(--telekom-spacing-composition-space-06)\n );--font-marker-ordered:var(--telekom-text-style-body);--font-marker-ordered-nested:var(--telekom-text-style-small-bold);--line-height-marker-ordered-nested:var(\n --telekom-typography-line-spacing-standard\n );--spacing-top-marker-ordered-nested:calc(\n var(--telekom-spacing-composition-space-06) -\n var(--telekom-spacing-composition-space-05)\n );--spacing-right-no-marker:var(--telekom-spacing-composition-space-04);display:var(--display)}.list-item{position:relative;font-size:var(--font-size);line-height:var(--line-height);padding-left:var(--spacing-left);margin-top:var(--telekom-spacing-composition-space-03)}.list-item--nested{padding-left:var(--spacing-left-nested)}.list-item:before{content:'';top:0;left:0;position:absolute}.list-item--unordered:before{top:0.5em;border:var(--telekom-spacing-composition-space-01) solid currentColor;display:block;transform:scale(0.66);background:currentColor;box-sizing:border-box;border-radius:50%;width:var(--telekom-spacing-composition-space-04);height:var(--telekom-spacing-composition-space-04)}.list-item--nested.list-item--unordered:before{border:var(--telekom-spacing-composition-space-01) solid currentColor;background:transparent}.list-item--ordered:before{content:attr(data-index) '.';font:var(--font-marker-ordered);font-variant-numeric:tabular-nums}.list-item--nested.list-item--ordered:before{font:var(--telekom-text-style-small-bold);font-variant-numeric:tabular-nums;line-height:var(--line-height-marker-ordered-nested);padding-top:var(--spacing-top-marker-ordered-nested)}.list-item--no-marker{display:inline-flex;align-items:center;padding-left:0}.list-item--no-marker:before{display:none}.list-item--no-marker>::slotted(*){margin-right:var(--spacing-right-no-marker)}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4492.0d45b2c4.js.LICENSE.txt b/pr-preview/pr-186/assets/js/4492.0d45b2c4.js.LICENSE.txt new file mode 100644 index 000000000..bae6dd8e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4492.0d45b2c4.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/pr-preview/pr-186/assets/js/4492.e9a8d6b9.js b/pr-preview/pr-186/assets/js/4492.e9a8d6b9.js new file mode 100644 index 000000000..41fd53c14 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4492.e9a8d6b9.js @@ -0,0 +1,137 @@ +"use strict"; +exports.id = 4492; +exports.ids = [4492]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 4492: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_list_item: () => (/* binding */ ListItem) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); + + + +const listItemCss = ":host(scale-list-item){--display:block;--font-size:var(--telekom-typography-font-size-body);--line-height:var(--telekom-typography-line-spacing-standard);--spacing-left:calc(0.5ch + var(--telekom-spacing-composition-space-07));--spacing-left-nested:calc(\n 0.5ch + var(--telekom-spacing-composition-space-06)\n );--font-marker-ordered:var(--telekom-text-style-body);--font-marker-ordered-nested:var(--telekom-text-style-small-bold);--line-height-marker-ordered-nested:var(\n --telekom-typography-line-spacing-standard\n );--spacing-top-marker-ordered-nested:calc(\n var(--telekom-spacing-composition-space-06) -\n var(--telekom-spacing-composition-space-05)\n );--spacing-right-no-marker:var(--telekom-spacing-composition-space-04);display:var(--display)}.list-item{position:relative;font-size:var(--font-size);line-height:var(--line-height);padding-left:var(--spacing-left);margin-top:var(--telekom-spacing-composition-space-03)}.list-item--nested{padding-left:var(--spacing-left-nested)}.list-item:before{content:'';top:0;left:0;position:absolute}.list-item--unordered:before{top:0.5em;border:var(--telekom-spacing-composition-space-01) solid currentColor;display:block;transform:scale(0.66);background:currentColor;box-sizing:border-box;border-radius:50%;width:var(--telekom-spacing-composition-space-04);height:var(--telekom-spacing-composition-space-04)}.list-item--nested.list-item--unordered:before{border:var(--telekom-spacing-composition-space-01) solid currentColor;background:transparent}.list-item--ordered:before{content:attr(data-index) '.';font:var(--font-marker-ordered);font-variant-numeric:tabular-nums}.list-item--nested.list-item--ordered:before{font:var(--telekom-text-style-small-bold);font-variant-numeric:tabular-nums;line-height:var(--line-height-marker-ordered-nested);padding-top:var(--spacing-top-marker-ordered-nested)}.list-item--no-marker{display:inline-flex;align-items:center;padding-left:0}.list-item--no-marker:before{display:none}.list-item--no-marker>::slotted(*){margin-right:var(--spacing-right-no-marker)}"; + +const ListItem = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** Whether this is a child of an ordered scale-list, gets set automatically by its parent */ + this.ordered = false; + /** If `false`, no marker or left padding will be visible */ + this.marker = true; + this.hasNestedChild = false; + this.isNested = false; + this.handleSlotChange = ({ target }) => { + this.hasNestedChild = + target.assignedNodes().length > 0; + this.isNested = this.isNestedCheck(); + }; + this.isNestedCheck = () => { + return this.el.closest('scale-list[slot="nested"]') != null; + }; + } + componentWillLoad() { + this.isNested = this.isNestedCheck(); + } + connectedCallback() { + if (!this.el.hasAttribute('role')) { + this.el.setAttribute('role', 'listitem'); + } + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, this.styles && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("style", null, this.styles), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap(), "data-index": this.index, part: (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('base', this.ordered ? 'ordered' : 'unordered', this.isNested && 'nested', !this.marker && 'no-marker') }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "list-item__nested-list", part: "nested-list", hidden: !this.hasNestedChild }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", { name: "nested", onSlotchange: this.handleSlotChange }))))); + } + getCssClassMap() { + const orderType = this.ordered ? 'ordered' : 'unordered'; + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('list-item', this.isNested && 'list-item--nested', `list-item--${orderType}`, !this.marker && 'list-item--no-marker'); + } + get el() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ListItem.style = listItemCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/44ac8357.9fd388ac.js b/pr-preview/pr-186/assets/js/44ac8357.9fd388ac.js new file mode 100644 index 000000000..3d40c1e1c --- /dev/null +++ b/pr-preview/pr-186/assets/js/44ac8357.9fd388ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[8436],{55604:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var t=n(74848),r=n(28453);const s={id:"Media",title:"Media"},o="Media",a={id:"blueprints/by-industry/media/Media",title:"Media",description:"The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting",source:"@site/docs/blueprints/by-industry/media/index.md",sourceDirName:"blueprints/by-industry/media",slug:"/blueprints/by-industry/media/",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-industry/media/index.md",tags:[],version:"current",frontMatter:{id:"Media",title:"Media"},sidebar:"blueprintsSidebar",previous:{title:"Xelera: Middleware Ignites the Application Turbo",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud"},next:{title:"UFA Adopts Full-Cloud Workflow in Film Production",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp"}},c={},d=[];function l(e){const i={h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h1,{id:"media",children:"Media"}),"\n",(0,t.jsx)(i.p,{children:"The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting\nappropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic\nworkloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal\nutilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects\nand developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications\nin the Open Telekom Cloud environment."})]})}function u(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},28453:(e,i,n)=>{n.d(i,{R:()=>o,x:()=>a});var t=n(96540);const r={},s=t.createContext(r);function o(e){const i=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4503.797689e3.js b/pr-preview/pr-186/assets/js/4503.797689e3.js new file mode 100644 index 000000000..8d6c60def --- /dev/null +++ b/pr-preview/pr-186/assets/js/4503.797689e3.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4503; +exports.ids = [4503]; +exports.modules = { + +/***/ 54503: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_drag_and_drop: () => (/* binding */ ActionDragAndDrop) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionDragAndDrop = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M15.5 8.5V21a3 3 0 01-2.824 2.995L12.5 24H3a3 3 0 01-2.995-2.824L0 21V8.5h15.5zM5.27 11.66v6.385l1.415-1.73.895 2.125.92-.39-.905-2.12 2.225.19-4.55-4.46zM19.5 14v1.5H17V14h2.5zm4.5-1.5a3 3 0 01-2.824 2.995L21 15.5V14a1.5 1.5 0 001.493-1.356l.007-.144H24zm0-4V11h-1.5V8.5H24zm0-4V7h-1.5V4.5H24zm-14 0V7H8.5V4.5H10zM21 0a3 3 0 012.995 2.824L24 3h-1.5a1.5 1.5 0 00-1.356-1.493L21 1.5V0zm-9.5 0v1.5a1.5 1.5 0 00-1.493 1.356L10 3H8.5A3 3 0 0111.324.005L11.5 0zm4 0v1.5H13V0h2.5zm4 0v1.5H17V0h2.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.538 9.052c.827 0 1.578.458 1.964 1.169l.159-.048c.174-.045.35-.068.525-.068.887 0 1.637.58 1.966 1.5l.672 1.985.641 1.946.14.43c1.093 3.388-.116 6.286-3.157 7.565a5.773 5.773 0 01-2.245.469c-1.648 0-3.002-.75-4.121-1.456l-1.145-.738-.378-.251-.51-.353-.696-.494a2.25 2.25 0 01-.654-2.927c.36-.631 1.017-1.024 1.774-1.07l-1.42-2.142a2.222 2.222 0 01-.32-1.68 2.215 2.215 0 01.962-1.413c.289-.19.614-.31.954-.35a2.231 2.231 0 013.414-1.52 2.247 2.247 0 011.475-.554zm0 1.499a.734.734 0 00-.693.979l1.304 3.699-.39.143-2.257-4.23a.736.736 0 00-.993-.306.734.734 0 00-.305.992l2.16 4.233-.13.075-.272.163-2.427-3.36a.732.732 0 00-1.017-.21.734.734 0 00-.211 1.016l2.867 4.328c.504.693.125 1.09-.224 1.09a.418.418 0 01-.17-.034l-.143-.065-.987-.476-.45-.21a16.365 16.365 0 00-.221-.1.895.895 0 00-.355-.073c-.251 0-.5.104-.622.32-.206.36-.045.774.218.96l.984.694.349.237.413.271.926.596c.995.628 2.067 1.218 3.31 1.218.524 0 1.076-.103 1.665-.351 2.46-1.036 3.126-3.193 2.31-5.723l-.706-2.154-.694-2.045c-.09-.342-.285-.624-.591-.624a.643.643 0 00-.146.019c-.392.103-.546.507-.443.899l.49 2.235c-.132.022-.294.008-.44.037l-1.416-3.753a.736.736 0 00-.693-.49zm-4.04-7.553v1.499h6.5v3.988a3.727 3.727 0 00-1.264-.73l-.236-.072V5.996H6v10.993c0 .778.596 1.42 1.356 1.493l.144.007h1.438a3.8 3.8 0 00.082 1.255l.067.244H7.5a3 3 0 01-2.995-2.823L4.5 16.99v-3.5H3v-1.5h1.5V4.498h7.499v-1.5h1.5zM1.5 11.992v1.499H0v-1.5h1.5zm0-2.998v1.499H0v-1.5h1.5zm0-2.998v1.499H0v-1.5h1.5zm0-2.998v1.499H0v-1.5h1.5zM7.5 0v1.499H6v-1.5h1.5zm-6 0v1.499H0v-1.5h1.5zm3 0v1.499H3v-1.5h1.5zm5.999 0v1.499h-1.5v-1.5h1.5zm3 0v1.499h-1.5v-1.5h1.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionDragAndDrop.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4506.91f15ea2.js b/pr-preview/pr-186/assets/js/4506.91f15ea2.js new file mode 100644 index 000000000..490797853 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4506.91f15ea2.js @@ -0,0 +1,110 @@ +"use strict"; +exports.id = 4506; +exports.ids = [4506]; +exports.modules = { + +/***/ 64506: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_grid: () => (/* binding */ Grid) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _valuesTransformation_ce891c3a_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98748); + + + +const Grid = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + } + componentWillLoad() { + const sizedProps = [ + (0,_valuesTransformation_ce891c3a_js__WEBPACK_IMPORTED_MODULE_1__.c)('columns', this.columns), + (0,_valuesTransformation_ce891c3a_js__WEBPACK_IMPORTED_MODULE_1__.c)('gutter-y', this.gutterY), + (0,_valuesTransformation_ce891c3a_js__WEBPACK_IMPORTED_MODULE_1__.c)('gutter-x', this.gutterX), + (0,_valuesTransformation_ce891c3a_js__WEBPACK_IMPORTED_MODULE_1__.c)('spacing', this.spacing), + ].filter((sizeProp) => sizeProp); + const sizableCssStrings = sizedProps.map((sizedProp) => (0,_valuesTransformation_ce891c3a_js__WEBPACK_IMPORTED_MODULE_1__.a)(sizedProp)); + const maxWidthCssStirng = this.maxWidth + ? `--max-width:${this.maxWidth};` + : ''; + const styleString = sizableCssStrings.join('') + maxWidthCssStirng; + this.hostElement.setAttribute('style', styleString); + } + render() { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("slot", null))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; + + + + +/***/ }), + +/***/ 98748: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ createCssString), +/* harmony export */ c: () => (/* binding */ createBreakpointValuedProp) +/* harmony export */ }); +function createCssString(setProp) { + const values = setProp.breakpointValues; + if (!isBreakpointValuesEmpty(values)) { + const filledArray = fillEmptyBreakpointValues(values); + const valuesObj = transformBreakpointValuesData(filledArray); + const stringSizesArray = Object.entries(valuesObj).map(([key, value]) => `--${setProp.propName}-${key}:${value}`); + return stringSizesArray.join(';') + ';'; + } +} +function isBreakpointValuesEmpty(values) { + let isEmpty = true; + for (const value of values) { + if (value.value) { + isEmpty = false; + break; + } + } + return isEmpty; +} +function fillEmptyBreakpointValues(values) { + const filledArray = [...values]; + for (let i = 1; i < filledArray.length; i++) { + if (!filledArray[i].value) { + filledArray[i].value = filledArray[i - 1].value; + } + } + return filledArray; +} +function transformBreakpointValuesData(values) { + return values.reduce((a, v) => (Object.assign(Object.assign({}, a), { [v.breakpointName]: v.value })), {}); +} +function propsToBreakpointValuesArray(values) { + return [ + { breakpointName: 'sm', value: values[0] }, + { breakpointName: 'md', value: values[1] }, + { breakpointName: 'lg', value: values[2] }, + { breakpointName: 'xl', value: values[3] }, + { breakpointName: 'xxl', value: values[4] }, + ]; +} +function createBreakpointValuedProp(propName, values) { + if (!propName || !values) { + return; + } + return { + propName, + breakpointValues: propsToBreakpointValuesArray(values.split(',')), + }; +} + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/45221.ce079ee2.js b/pr-preview/pr-186/assets/js/45221.ce079ee2.js new file mode 100644 index 000000000..55567c8cb --- /dev/null +++ b/pr-preview/pr-186/assets/js/45221.ce079ee2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[45221],{45221:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_phone_without_mobile_plan:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M14.69 14.689a.75.75 0 01-1.06 0L12 13.06l-1.628 1.629a.751.751 0 01-1.061-1.061L10.94 12l-1.63-1.629a.749.749 0 111.06-1.06L12 10.939l1.629-1.628a.75.75 0 011.06 1.06L13.06 12l1.63 1.628a.75.75 0 010 1.061zM12 21a1.25 1.25 0 11.001-2.5 1.25 1.25 0 010 2.5zM10 3.5h4V2h-4v1.5zm6-3H8a3 3 0 00-3 3v17a3 3 0 003 3h8a3 3 0 003-3v-17a3 3 0 00-3-3z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M14.69 9.311a.75.75 0 00-1.061 0l-1.628 1.628-1.629-1.628a.75.75 0 10-1.061 1.061L10.94 12l-1.629 1.628a.75.75 0 101.061 1.061l1.629-1.629 1.628 1.629a.751.751 0 001.062-1.061L13.061 12l1.629-1.628a.75.75 0 000-1.061zM12.001 18.5a1.25 1.25 0 10-.002 2.498 1.25 1.25 0 00.002-2.498zm5.5 2c0 .827-.674 1.5-1.5 1.5h-8c-.827 0-1.5-.673-1.5-1.5v-17c0-.827.673-1.5 1.5-1.5h2v1.5h4V2h2c.826 0 1.5.673 1.5 1.5v17zm-1.5-20h-8a3 3 0 00-3 3v17a3 3 0 003 3h8a3 3 0 003-3v-17a3 3 0 00-3-3z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/45276.7f0a2f55.js b/pr-preview/pr-186/assets/js/45276.7f0a2f55.js new file mode 100644 index 000000000..2ad57ea30 --- /dev/null +++ b/pr-preview/pr-186/assets/js/45276.7f0a2f55.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[45276],{45276:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_message:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M1.5 3.5V16a3 3 0 003 3H6v2.275A1.75 1.75 0 009 22.5l3.5-3.5h7a3 3 0 003-3V3.5h-21zm15 10h-9a.75.75 0 110-1.5h9a.75.75 0 110 1.5zm0-3.5h-9a.75.75 0 010-1.5h9a.75.75 0 110 1.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M22.45 3.5v12.55a3.01 3.01 0 01-2.824 2.995l-.176.005h-7l-3.5 3.5c-.35.35-.75.5-1.2.5-.855 0-1.665-.632-1.744-1.595L6 21.3V19H4.5a3.01 3.01 0 01-2.995-2.824L1.5 16V3.5h20.95zM21 5H3v11c0 .8.576 1.423 1.352 1.493l.148.007h3.05v3.8c0 .188.14.234.21.246l.04.004c.037 0 .075-.028.112-.063L11.9 17.5h7.6c.8 0 1.423-.576 1.493-1.352L21 16V5zm-4.5 7c.4 0 .75.35.75.75a.772.772 0 01-.651.743l-.099.007h-9c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L7.5 12h9zm0-3.5c.4 0 .75.35.75.75a.772.772 0 01-.651.743L16.5 10h-9c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743L7.5 8.5h9z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4569.f13c4bb0.js b/pr-preview/pr-186/assets/js/4569.f13c4bb0.js new file mode 100644 index 000000000..31e396a71 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4569.f13c4bb0.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4569; +exports.ids = [4569]; +exports.modules = { + +/***/ 56950: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_backward: () => (/* binding */ ActionBackward) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionBackward = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.75 8.5H9.5V5.33L2.75 9.75l6.75 4.42V11h7.25a2.75 2.75 0 110 5.5h-4a1.25 1.25 0 000 2.5h4a5.25 5.25 0 000-10.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.75 9H9.5V5.332L2.75 9.75l6.75 4.418V10.5h7.25A3.254 3.254 0 0120 13.75 3.254 3.254 0 0116.75 17h-4a.75.75 0 100 1.5h4a4.756 4.756 0 004.75-4.75A4.756 4.756 0 0016.75 9z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionBackward.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4574.4df41eb2.js b/pr-preview/pr-186/assets/js/4574.4df41eb2.js new file mode 100644 index 000000000..d48535dd0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4574.4df41eb2.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4574; +exports.ids = [4574]; +exports.modules = { + +/***/ 64574: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_home_unable_to_connect_to_router: () => (/* binding */ HomeUnableToConnectToRouter) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const HomeUnableToConnectToRouter = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.742 11.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm0 1.5a4.756 4.756 0 00-4.75 4.75 4.756 4.756 0 004.75 4.75c2.62 0 4.75-2.131 4.75-4.75 0-2.62-2.13-4.75-4.75-4.75zM6.8 6l5.2 4.48L17.2 6h2.3a3 3 0 012.994 2.824L22.5 9v2.646A7.694 7.694 0 0017.742 10c-4.273 0-7.75 3.477-7.75 7.75 0 1.457.407 2.819 1.11 3.984l.168.266H4.5a3 3 0 01-2.995-2.824L1.5 19V9a3 3 0 012.823-2.995L4.5 6h2.302zm8.413 9.22a.75.75 0 01.976-.073l.084.073 1.47 1.469 1.47-1.47a.75.75 0 011.133.977l-.073.084-1.47 1.47 1.47 1.47a.749.749 0 01-.967 1.14l-.094-.08-1.47-1.468-1.469 1.468a.746.746 0 01-1.06 0 .749.749 0 01-.073-.976l.072-.084 1.47-1.47-1.47-1.47a.749.749 0 010-1.06zM12 6.5a1 1 0 110 2 1 1 0 010-2zm0-3c1.482 0 2.777.812 3.466 2.013L14.3 6.52A2.502 2.502 0 0012 5c-1.03 0-1.915.627-2.298 1.52L8.534 5.513A4.002 4.002 0 0111.998 3.5zm0-3a6.99 6.99 0 015.607 2.818l.155.217-1.146.986A5.496 5.496 0 0012 2c-1.85 0-3.486.921-4.484 2.326l-.132.195-1.144-.986A6.993 6.993 0 0111.998.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75 11.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zM6.8 6l1.741 1.5H4.5c-.778 0-1.42.596-1.493 1.356L3 9v10c0 .778.596 1.42 1.356 1.493l.144.007h6.011c.162.424.356.83.584 1.215l.178.285H4.5a3 3 0 01-2.995-2.824L1.5 19V9a3 3 0 012.824-2.995L4.5 6h2.3zm8.42 9.22a.749.749 0 000 1.06l1.47 1.47-1.47 1.47a.749.749 0 101.061 1.06l1.469-1.47 1.47 1.47a.746.746 0 001.061 0 .749.749 0 000-1.06l-1.47-1.47 1.47-1.47a.749.749 0 10-1.061-1.06l-1.47 1.469-1.469-1.47a.75.75 0 00-1.061 0zM19.5 6a3 3 0 012.995 2.824L22.5 9v2.636a7.61 7.61 0 00-1.182-.758L21 10.722V9c0-.778-.596-1.42-1.356-1.493L19.5 7.5h-4.042L17.2 6h2.3zm-7.5.5a1 1 0 011 1 .931.931 0 01-.015.15L12 8.5l-.985-.85A.931.931 0 0111 7.5a1 1 0 011-1zm0-3c1.404 0 2.64.729 3.352 1.827l.114.186-1.168 1.007A2.5 2.5 0 0012 5a2.5 2.5 0 00-2.226 1.365l-.072.155-1.168-1.007A3.997 3.997 0 0112 3.5zm0-3a6.99 6.99 0 015.606 2.818l.156.217-1.145.986A5.498 5.498 0 0012 2c-1.85 0-3.488.921-4.485 2.326l-.132.195-1.145-.986A6.993 6.993 0 0112 .5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +HomeUnableToConnectToRouter.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/45746.faf5fe72.js b/pr-preview/pr-186/assets/js/45746.faf5fe72.js new file mode 100644 index 000000000..3f8026e81 --- /dev/null +++ b/pr-preview/pr-186/assets/js/45746.faf5fe72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[45746],{45746:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_content_eu:()=>l});var i=s(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 3C5.65 3 .5 7.03.5 12s5.15 9 11.5 9 11.5-4.03 11.5-9S18.35 3 12 3zm-1.205 6.935h-2.58v1.41h2.5v1.25h-2.5v1.5h2.58v1.25h-3.93v-6.66h3.93v1.25zm6.2 3c.005 1.66-.89 2.565-2.47 2.565s-2.5-.92-2.5-2.59V8.685h1.34v4.06c0 1.04.32 1.5 1.14 1.5.82 0 1.14-.44 1.14-1.5v-4.06H17l-.005 4.25z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 3c6.35 0 11.5 4.05 11.5 9s-5.15 9-11.5 9S.5 16.95.5 12 5.65 3 12 3zm0 1.5C6.5 4.5 2 7.85 2 12s4.5 7.5 10 7.5 10-3.35 10-7.5-4.5-7.5-10-7.5zm1.35 4.2v4.05c0 1.05.35 1.5 1.15 1.5.8 0 1.15-.45 1.15-1.5l-.007-2.476-.016-1.164-.014-.329a.54.54 0 00-.008-.072L15.6 8.7h1.35v4.25c0 1.7-.85 2.6-2.45 2.6-1.536 0-2.427-.83-2.496-2.4l-.004-.2V8.7h1.35zm-2.55 0v1.25H8.2v1.4h2.5v1.25H8.2v1.5h2.6v1.25H6.85V8.7h3.95z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4587.827f6277.js b/pr-preview/pr-186/assets/js/4587.827f6277.js new file mode 100644 index 000000000..ac7568127 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4587.827f6277.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4587; +exports.ids = [4587]; +exports.modules = { + +/***/ 74587: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_favorite: () => (/* binding */ ActionFavorite) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionFavorite = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.614 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.065-5.061a1.713 1.713 0 00-1.592-1.07c-.702 0-1.327.42-1.592 1.07L8.339 7.633l-5.451.398c-.7.052-1.293.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.305 5.308a1.715 1.715 0 00.659 1.802c.567.413 1.32.44 1.917.07l4.645-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.175-3.527a1.714 1.714 0 00.527-1.845", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.613 9.215a1.713 1.713 0 00-1.51-1.184l-5.451-.399-2.064-5.061a1.713 1.713 0 00-1.592-1.07c-.703 0-1.327.42-1.593 1.07L8.34 7.633l-5.452.398c-.7.052-1.292.516-1.51 1.184a1.712 1.712 0 00.526 1.845l4.176 3.527-1.304 5.308a1.715 1.715 0 00.658 1.802c.568.413 1.321.44 1.918.07l4.644-2.881 4.646 2.881a1.716 1.716 0 002.575-1.871l-1.305-5.309 4.176-3.527a1.714 1.714 0 00.526-1.845zm-1.494.699l-4.886 4.127 1.527 6.212c.03.119-.03.19-.084.23a.203.203 0 01-.244.009l-5.436-3.372-5.436 3.372a.206.206 0 01-.245-.009.206.206 0 01-.084-.23l1.527-6.211-4.886-4.128a.205.205 0 01-.067-.235.206.206 0 01.192-.151l6.38-.468 2.416-5.923a.205.205 0 01.203-.136c.067 0 .156.024.203.137l2.416 5.922 6.38.468a.206.206 0 01.192.151.206.206 0 01-.068.235z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionFavorite.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/45948.f8c6939e.js b/pr-preview/pr-186/assets/js/45948.f8c6939e.js new file mode 100644 index 000000000..12e0dc5ed --- /dev/null +++ b/pr-preview/pr-186/assets/js/45948.f8c6939e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[45948],{45948:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_home_smarthome:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("defs",null,(0,i.h)("path",{d:"M.45 12.45L1.5 13.5 12 3l10.5 10.5 1.05-1.05L12 .85.45 12.45zM3.5 13.6V19l.005.175A3.01 3.01 0 006.5 22h11l.175-.005A3.01 3.01 0 0020.5 19v-5.4L12 5.1l-8.5 8.5zm4.7-1.75c0-.746.493-1.35 1.1-1.35.608 0 1.1.604 1.1 1.35 0 .746-.492 1.35-1.1 1.35-.607 0-1.1-.604-1.1-1.35zm4.5 0c0-.27.203-.54.498-.591l.102-.009h1.75c.3 0 .6.3.6.6 0 .27-.203.54-.498.592l-.102.008H13.3c-.3 0-.6-.3-.6-.6zm-1.3 5c1.432 0 2.636-.82 3.221-2.068l.079-.182c.091-.273.429-.463.716-.383l.084.033c.3.1.5.5.35.8-.75 1.8-2.5 3-4.45 3-.7 0-1.35-.15-1.95-.4-.3-.1-.45-.5-.3-.8.091-.273.43-.421.716-.333l.084.033c.434.173.83.31 1.254.31.065 0 .13-.004.196-.01z",id:"a"})),(0,i.h)("use",{xlinkHref:"#a","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M19 12.1l1.5 1.5V19a3.01 3.01 0 01-2.824 2.995L17.5 22h-11a3.01 3.01 0 01-2.995-2.824L3.5 19v-5.4L5 12.1V19c0 .8.576 1.423 1.352 1.493l.148.007h11c.8 0 1.423-.576 1.493-1.352L19 19v-6.9zm-4.38 2.681l.08-.181c.09-.273.43-.463.716-.382l.084.032c.3.1.5.5.35.8-.75 1.8-2.5 3-4.45 3-.7 0-1.35-.15-1.95-.4-.3-.1-.45-.5-.3-.8.09-.273.43-.421.716-.334l.084.034c.5.2.95.35 1.45.3 1.432 0 2.636-.82 3.22-2.069zM12 .85l11.55 11.6-1.05 1.05L12 3 1.5 13.5.45 12.45 12 .85zM9.3 10.5c.608 0 1.1.604 1.1 1.35 0 .746-.492 1.35-1.1 1.35-.608 0-1.1-.604-1.1-1.35 0-.746.492-1.35 1.1-1.35zm5.75.75c.3 0 .6.3.6.6 0 .27-.203.54-.498.591l-.102.009H13.3c-.3 0-.6-.3-.6-.6 0-.27.203-.54.498-.591l.102-.009h1.75z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/45f04db4.67be9a6e.js b/pr-preview/pr-186/assets/js/45f04db4.67be9a6e.js new file mode 100644 index 000000000..6b15802fb --- /dev/null +++ b/pr-preview/pr-186/assets/js/45f04db4.67be9a6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[61662],{17621:e=>{e.exports=JSON.parse('{"tag":{"label":"gdpr","permalink":"/docs-next/pr-preview/pr-186/docs/tags/gdpr","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":1,"items":[{"id":"blueprints/by-use-case/analytics/umami/umami","title":"Umami","description":"Umami is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/umami"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/46150.2514138d.js b/pr-preview/pr-186/assets/js/46150.2514138d.js new file mode 100644 index 000000000..47a1528ee --- /dev/null +++ b/pr-preview/pr-186/assets/js/46150.2514138d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[46150],{46150:(t,s,e)=>{e.r(s),e.d(s,{scale_icon_t_product_usage:()=>l});var i=e(90936);const l=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},s=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,s),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 1c6.05 0 11 4.95 11 11s-4.95 11-11 11S1 18.05 1 12 5.95 1 12 1zM6.45 6.45a.722.722 0 01.965-.074l.085.074 4.1 4.1c.15-.05.25-.05.4-.05.85 0 1.5.65 1.5 1.5s-.65 1.5-1.5 1.5-1.5-.65-1.5-1.5c0-.113 0-.197.021-.295l.029-.105-4.1-4.1c-.3-.3-.3-.75 0-1.05zm-1.1 2.1l2.3 2.3c-.08.28-.128.592-.144.91L7.5 12h-3a7.28 7.28 0 01.706-3.172l.144-.278zM12 4.5a7.49 7.49 0 017.496 7.257L19.5 12h-3c0-2.5-2-4.5-4.5-4.5-.32 0-.64.032-.934.096l-.216.054-2.3-2.3c1-.55 2.2-.85 3.45-.85z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 1c6.05 0 11 4.95 11 11s-4.95 11-11 11S1 18.05 1 12 5.95 1 12 1zm0 1.5c-5.25 0-9.5 4.25-9.5 9.5s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5-4.25-9.5-9.5-9.5zM6.45 6.45a.722.722 0 01.965-.074l.085.074 4.1 4.1c.15-.05.25-.05.4-.05.85 0 1.5.65 1.5 1.5s-.65 1.5-1.5 1.5-1.5-.65-1.5-1.5c0-.113 0-.197.021-.295l.029-.105-4.1-4.1c-.3-.3-.3-.75 0-1.05zm-1.1 2.1l2.3 2.3c-.08.28-.128.592-.144.91L7.5 12h-3a7.28 7.28 0 01.706-3.172l.144-.278zM12 4.5a7.49 7.49 0 017.496 7.257L19.5 12h-3c0-2.5-2-4.5-4.5-4.5-.32 0-.64.032-.934.096l-.216.054-2.3-2.3c1-.55 2.2-.85 3.45-.85z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/46269.ac20b345.js b/pr-preview/pr-186/assets/js/46269.ac20b345.js new file mode 100644 index 000000000..efac3f981 --- /dev/null +++ b/pr-preview/pr-186/assets/js/46269.ac20b345.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[46269],{46269:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_cut_paste:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M8.5 21v1.5H6V21h2.5zM3 19.5a1.5 1.5 0 001.356 1.493L4.5 21v1.5a3 3 0 01-2.995-2.824L1.5 19.5H3zm14 0a3 3 0 01-2.824 2.995L14 22.5V21a1.5 1.5 0 001.493-1.356l.007-.144H17zM12.5 21v1.5H10V21h2.5zm4.5-5.5V18h-1.5v-2.5H17zm-14 0V18H1.5v-2.5H3zm19.5-14V14a3 3 0 01-2.824 2.995L19.5 17h-1V5.5H7v-4h15.5zm-5.5 10V14h-1.5v-2.5H17zm-14 0V14H1.5v-2.5H3zM17 7v3h-1.5V8.5H14V7h3zM4.5 7v1.5H3V10H1.5V7h3zm8 0v1.5H10V7h2.5zm-4 0v1.5H6V7h2.5z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M8.5 21v1.5H6V21h2.5zM3 19.5c0 .776.598 1.42 1.356 1.493L4.5 21v1.5a3.003 3.003 0 01-2.995-2.824L1.5 19.5H3zm14 0a3.003 3.003 0 01-2.824 2.995L14 22.5V21c.776 0 1.42-.598 1.493-1.356l.007-.144H17zM12.5 21v1.5H10V21h2.5zM3 15.5V18H1.5v-2.5H3zm14 0V18h-1.5v-2.5H17zm5.5-14V14a3.003 3.003 0 01-2.824 2.995L19.5 17h-1v-1.5h1c.776 0 1.42-.598 1.493-1.356L21 14V3H8.5v2.5H7v-4h15.5zM3 11.5V14H1.5v-2.5H3zm14 0V14h-1.5v-2.5H17zM17 7v3h-1.5V8.5H14V7h3zM4.5 7v1.5H3V10H1.5V7h3zm8 0v1.5H10V7h2.5zm-4 0v1.5H6V7h2.5z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4627.75856f9a.js b/pr-preview/pr-186/assets/js/4627.75856f9a.js new file mode 100644 index 000000000..35217ae16 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4627.75856f9a.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4627; +exports.ids = [4627]; +exports.modules = { + +/***/ 74627: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_microphone: () => (/* binding */ ActionMicrophone) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionMicrophone = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.75 9.5a.75.75 0 01.743.648l.007.102V12a7.5 7.5 0 01-6.501 7.43l-.249.03v4.04h-1.5v-4.04a7.5 7.5 0 01-6.746-7.21L4.5 12v-1.75a.75.75 0 011.493-.102L6 10.25V12a6 6 0 0011.996.225L18 12v-1.75a.75.75 0 01.75-.75zM12 .5l.212.005a4.5 4.5 0 014.283 4.277L16.5 5v7a4.5 4.5 0 01-4.288 4.495L12 16.5l-.212-.005a4.5 4.5 0 01-4.283-4.277L7.5 12V5A4.5 4.5 0 0111.788.505L12 .5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M18.75 9.5c.367 0 .691.294.743.651l.007.099V12c0 3.817-2.826 6.964-6.509 7.424l-.241.026v4.05h-1.5v-4.05c-3.72-.343-6.624-3.415-6.746-7.202L4.5 12v-1.75c0-.4.35-.75.75-.75.367 0 .691.294.743.651L6 10.25V12c0 3.3 2.7 6 6 6 3.225 0 5.877-2.579 5.996-5.776L18 12v-1.75c0-.4.35-.75.75-.75zM12 .5a4.48 4.48 0 014.495 4.287L16.5 5v7c0 2.5-2 4.5-4.5 4.5a4.48 4.48 0 01-4.495-4.287L7.5 12V5c0-2.5 2-4.5 4.5-4.5zM12 2a3.01 3.01 0 00-2.995 2.824L9 5v7c0 1.65 1.35 3 3 3a3.01 3.01 0 002.995-2.824L15 12V5c0-1.65-1.35-3-3-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionMicrophone.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/46745.9277d3f5.js b/pr-preview/pr-186/assets/js/46745.9277d3f5.js new file mode 100644 index 000000000..dd74204f9 --- /dev/null +++ b/pr-preview/pr-186/assets/js/46745.9277d3f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[46745],{46745:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_communication_loyalty_earned:()=>s});var a=i(90936);const s=class{constructor(t){(0,a.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,a.h)(a.a,null,(0,a.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,a.h)("title",null,this.accessibilityTitle),(0,a.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,a.h)("g",null,(0,a.h)("path",{d:"M16.92 11.992c-.058.08-.108.164-.173.24l-4.251 4.972c-.375.439-.921.69-1.501.69a1.965 1.965 0 01-1.497-.69l-4.252-4.972a3.81 3.81 0 01-.254-4.61 3.797 3.797 0 013.14-1.664c1.487 0 2.419.843 2.52.939l.345.325.343-.325c.102-.096 1.035-.94 2.52-.94 1.21 0 2.338.58 3.054 1.552a2.248 2.248 0 00-2.163 2.24c0 1.214.966 2.199 2.169 2.243M23 10.5h-2.25v2.25a.75.75 0 11-1.5 0V10.5H17A.75.75 0 1117 9h2.25V6.75a.75.75 0 011.5 0V9H23a.75.75 0 010 1.5M1 4h1.5v1.5a.75.75 0 101.5 0V4h1.5a.75.75 0 100-1.5H4V1a.75.75 0 00-1.5 0v1.5H1A.75.75 0 001 4m6.5 14.5H5V16a.75.75 0 00-1.5 0v2.5H1A.75.75 0 001 20h2.5v2.5a.75.75 0 101.5 0V20h2.5a.75.75 0 100-1.5","fill-rule":"evenodd"})):(0,a.h)("g",null,(0,a.h)("path",{d:"M15.917 11.71l-4.178 4.886a.967.967 0 01-1.476 0l-4.251-4.97a2.802 2.802 0 01-.187-3.399A2.77 2.77 0 018.138 7c.331 0 .663.058.978.172 1.143.42 1.459 1.23 1.885 2.074.406-.805.708-1.59 1.778-2.032A2.848 2.848 0 0113.864 7a2.77 2.77 0 011.98.828A2.237 2.237 0 0117 7.5h.483c-.024-.038-.041-.08-.066-.117A4.294 4.294 0 0013.864 5.5c-.573 0-1.131.11-1.658.328a4.161 4.161 0 00-1.204.748 4.116 4.116 0 00-1.371-.812A4.332 4.332 0 008.138 5.5a4.294 4.294 0 00-3.554 1.883 4.312 4.312 0 00.288 5.216l4.25 4.973a2.47 2.47 0 003.756 0l4.25-4.973c.163-.19.305-.39.429-.599H17c-.395 0-.761-.112-1.084-.29M23 9h-2.25V6.75a.75.75 0 10-1.5 0V9H17a.75.75 0 100 1.5h2.25v2.25a.75.75 0 001.5 0V10.5H23A.75.75 0 0023 9M1 4h1.5v1.5a.75.75 0 001.5 0V4h1.5a.75.75 0 000-1.5H4V1a.75.75 0 10-1.5 0v1.5H1A.75.75 0 101 4m6.5 14.5H5V16a.75.75 0 10-1.5 0v2.5H1A.75.75 0 001 20h2.5v2.5a.75.75 0 101.5 0V20h2.5a.75.75 0 100-1.5","fill-rule":"evenodd"})))))}get hostElement(){return(0,a.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4675.12fb6ec8.js b/pr-preview/pr-186/assets/js/4675.12fb6ec8.js new file mode 100644 index 000000000..0362730e8 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4675.12fb6ec8.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4675; +exports.ids = [4675]; +exports.modules = { + +/***/ 24675: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_navigation_start: () => (/* binding */ NavigationStart) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const NavigationStart = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.85 2.15c-.25-.25-.6-.3-.9-.15L.8 11.05c-.3.15-.5.45-.5.8 0 .35.25.6.55.7L8.95 15l2.45 8.1c.1.3.4.55.7.55h.05c.3 0 .6-.2.75-.45L22 3.05c.15-.3.1-.65-.15-.9z" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M21.85 2.15c-.25-.25-.6-.3-.9-.15L.8 11.05c-.3.15-.5.45-.5.8 0 .35.25.6.55.7L8.95 15l2.45 8.1c.1.3.4.55.7.55h.05c.3 0 .6-.2.75-.45L22 3.05c.15-.3.1-.65-.15-.9zm-9.5 18.7l-2.15-7.1-7.05-2.1 16.75-7.5-7.55 16.7z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +NavigationStart.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/468.370c5972.js b/pr-preview/pr-186/assets/js/468.370c5972.js new file mode 100644 index 000000000..f28074c1d --- /dev/null +++ b/pr-preview/pr-186/assets/js/468.370c5972.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 468; +exports.ids = [468]; +exports.modules = { + +/***/ 50468: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_in_stock: () => (/* binding */ ContentInStock) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentInStock = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M3.5 20a2 2 0 110 4 2 2 0 010-4zM23.94.456a.75.75 0 01-.304.939l-.09.046-2.271.973a1.5 1.5 0 00-.882 1.092l-.021.147-.62 6.61a7.753 7.753 0 00-9.251 4.741l-5.886-.38a2.986 2.986 0 01-2.77-2.527l-.023-.183-.897-9.412h18.24a2.998 2.998 0 011.32-1.372l.198-.094L22.954.06a.75.75 0 01.985.394zm-6.19 11.046a6.25 6.25 0 110 12.499 6.25 6.25 0 010-12.5zm3.143 4.035a.75.75 0 00-.976-.073l-.085.073-2.819 2.819-1.408-1.409a.75.75 0 00-1.133.976l.072.085 2.47 2.469 3.879-3.88a.75.75 0 000-1.06zM2.75 17.5h7.262l-.007.286.002.226c0 .04.003.083.005.128l.023.295c.01.108.025.227.043.358l.032.207H2.75a.75.75 0 01-.102-1.494l.102-.006z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M3.5 20a2 2 0 110 4 2 2 0 010-4zm14.25-8.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm3.143 4.035a.75.75 0 00-.976-.073l-.085.073-2.819 2.819-1.408-1.409a.75.75 0 00-1.133.977l.072.084 2.47 2.47 3.879-3.88a.75.75 0 000-1.061zM2.75 17.5h7.262l-.007.286.002.226c0 .041.003.084.005.128l.023.296c.01.108.025.226.043.358l.032.206H2.75a.75.75 0 01-.102-1.493l.102-.007zM22.954.06a.75.75 0 01.682 1.333l-.09.046-2.271.973a1.5 1.5 0 00-.882 1.092l-.021.147-.621 6.62a7.679 7.679 0 00-1.104-.21l-.38-.035L18.833 4H2.573l.741 7.77a1.493 1.493 0 001.26 1.34l.136.015 6.534.421a7.73 7.73 0 00-.611 1.152l-.123.304-5.896-.38a2.986 2.986 0 01-2.77-2.527l-.023-.183L.925 2.5h18.24a2.998 2.998 0 011.32-1.372l.198-.094L22.954.06z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentInStock.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4681.7475b152.js b/pr-preview/pr-186/assets/js/4681.7475b152.js new file mode 100644 index 000000000..f4aaabc46 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4681.7475b152.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4681; +exports.ids = [4681]; +exports.modules = { + +/***/ 74681: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_play: () => (/* binding */ ActionPlay) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionPlay = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zM9.5 16.5v-9l6.875 4.5L9.5 16.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1zm0 1.5c-5.24 0-9.5 4.26-9.5 9.5s4.26 9.5 9.5 9.5 9.5-4.26 9.5-9.5-4.26-9.5-9.5-9.5zm-2.5 5l6.875 4.5L9.5 16.5v-9z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionPlay.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/46895.93a527bd.js b/pr-preview/pr-186/assets/js/46895.93a527bd.js new file mode 100644 index 000000000..ed9f31db1 --- /dev/null +++ b/pr-preview/pr-186/assets/js/46895.93a527bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[46895],{46895:(t,e,o)=>{o.r(e),o.d(e,{scale_telekom_footer_data_back_compat:()=>s});var a=o(90936);const s=class{constructor(t){(0,a.r)(this,t),this.type="standard",this.footerNavigation=[],this.copyright="\xa9 Deutsche Telekom AG"}render(){return(0,a.h)("scale-telekom-footer",{type:this.type},(0,a.h)("scale-telekom-footer-content",null,(0,a.h)("span",{slot:"notice"}," ",this.copyright," "),(0,a.h)("ul",{slot:"navigation"},(t=>{let e;try{e=JSON.parse(t)}catch(o){e=t}return e})(this.footerNavigation).map((({name:t,id:e,href:o="javascript:void(0);",target:s="_self"})=>(0,a.h)("li",null,(0,a.h)("a",{href:o,id:e,target:s},t)))))))}}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4696.64a5c421.js b/pr-preview/pr-186/assets/js/4696.64a5c421.js new file mode 100644 index 000000000..13ea9762f --- /dev/null +++ b/pr-preview/pr-186/assets/js/4696.64a5c421.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4696; +exports.ids = [4696]; +exports.modules = { + +/***/ 4696: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_backspace: () => (/* binding */ ActionBackspace) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionBackspace = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20 3.5H8L.5 12 8 20.5h12a3 3 0 003-3v-11a3 3 0 00-3-3zm-2 10.925a.745.745 0 010 1.075.75.75 0 01-1.06 0l-2.44-2.44-2.425 2.44a.75.75 0 01-1.075 0 .745.745 0 010-1.06L13.44 12 11 9.575A.76.76 0 0112.075 8.5l2.425 2.44 2.425-2.44A.76.76 0 0118 9.575L15.56 12 18 14.425z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M20 3.5a3.01 3.01 0 012.995 2.824L23 6.5v11a3.01 3.01 0 01-2.824 2.995L20 20.5H8L.5 12 8 3.5h12zM20 5H8.7l-6.2 7 6.2 7H20c.8 0 1.423-.576 1.493-1.352l.007-.148v-11c0-.8-.576-1.423-1.352-1.493L20 5zm-8.95 3.5a.722.722 0 01.965-.074l.085.074 2.4 2.45 2.45-2.45c.3-.3.75-.3 1.05 0a.742.742 0 01.03 1.021L15.55 12l2.35 2.4c.3.3.3.75 0 1.05a.722.722 0 01-.965.074l-.085-.074-2.4-2.4-2.4 2.4c-.3.3-.75.3-1.05 0a.722.722 0 01-.074-.965L11 14.4l2.45-2.45-2.4-2.4c-.3-.3-.3-.75 0-1.05z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionBackspace.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4696.f906cd81.js b/pr-preview/pr-186/assets/js/4696.f906cd81.js new file mode 100644 index 000000000..54fd2ea26 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4696.f906cd81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[4696],{4696:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_backspace:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M20 3.5H8L.5 12 8 20.5h12a3 3 0 003-3v-11a3 3 0 00-3-3zm-2 10.925a.745.745 0 010 1.075.75.75 0 01-1.06 0l-2.44-2.44-2.425 2.44a.75.75 0 01-1.075 0 .745.745 0 010-1.06L13.44 12 11 9.575A.76.76 0 0112.075 8.5l2.425 2.44 2.425-2.44A.76.76 0 0118 9.575L15.56 12 18 14.425z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M20 3.5a3.01 3.01 0 012.995 2.824L23 6.5v11a3.01 3.01 0 01-2.824 2.995L20 20.5H8L.5 12 8 3.5h12zM20 5H8.7l-6.2 7 6.2 7H20c.8 0 1.423-.576 1.493-1.352l.007-.148v-11c0-.8-.576-1.423-1.352-1.493L20 5zm-8.95 3.5a.722.722 0 01.965-.074l.085.074 2.4 2.45 2.45-2.45c.3-.3.75-.3 1.05 0a.742.742 0 01.03 1.021L15.55 12l2.35 2.4c.3.3.3.75 0 1.05a.722.722 0 01-.965.074l-.085-.074-2.4-2.4-2.4 2.4c-.3.3-.75.3-1.05 0a.722.722 0 01-.074-.965L11 14.4l2.45-2.45-2.4-2.4c-.3-.3-.3-.75 0-1.05z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4734.877f5b53.js b/pr-preview/pr-186/assets/js/4734.877f5b53.js new file mode 100644 index 000000000..90b391ad6 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4734.877f5b53.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4734; +exports.ids = [4734]; +exports.modules = { + +/***/ 84734: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_action_volume_down: () => (/* binding */ ActionVolumeDown) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ActionVolumeDown = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13 3.5v17h-2l-4.5-4H5a3 3 0 01-2.995-2.824L2 13.5v-3a3 3 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm9 7.75a.75.75 0 01.102 1.493L22 12.75h-6a.75.75 0 01-.102-1.493L16 11.25h6z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M13 3.5v17h-2l-4.5-4H5a3.003 3.003 0 01-2.995-2.824L2 13.5v-3a3.003 3.003 0 012.824-2.995L5 7.5h1.5l4.5-4h2zm-1.5 1.56L7.07 9H5c-.776 0-1.42.598-1.493 1.356L3.5 10.5v3c0 .776.598 1.42 1.356 1.493L5 15h2.07l4.43 3.94V5.06zM22 11.25a.749.749 0 01.102 1.493L22 12.75h-6a.749.749 0 01-.102-1.493L16 11.25h6z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ActionVolumeDown.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4742.b971cb10.js b/pr-preview/pr-186/assets/js/4742.b971cb10.js new file mode 100644 index 000000000..180bf1e8b --- /dev/null +++ b/pr-preview/pr-186/assets/js/4742.b971cb10.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4742; +exports.ids = [4742]; +exports.modules = { + +/***/ 94742: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_language: () => (/* binding */ ContentLanguage) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentLanguage = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M1.5 1.5v15a3 3 0 003 3H6v2.275A1.755 1.755 0 009 23l3.5-3.5h7a3 3 0 003-3v-15h-21zM12 5c.795 0 2 2 2.095 5h-4.19c.12-3 1.3-5 2.095-5zm-1.89.34A9.81 9.81 0 008.905 10h-2.38a5.5 5.5 0 013.585-4.66zM6.525 11h2.38a9.81 9.81 0 001.205 4.66A5.5 5.5 0 016.525 11zM12 16c-.795 0-1.975-1.975-2.095-5h4.19c-.095 3.025-1.3 5-2.095 5zm1.89-.34A9.81 9.81 0 0015.095 11H17.5a5.5 5.5 0 01-3.61 4.66zM15.095 10a9.81 9.81 0 00-1.205-4.66A5.5 5.5 0 0117.5 10h-2.405z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M22.5 1.5v15a3 3 0 01-2.824 2.995l-.176.005h-7l-3.513 3.512a1.715 1.715 0 01-1.225.517c-.854 0-1.676-.63-1.756-1.598L6 21.775V19.5H4.5a3 3 0 01-2.995-2.824L1.5 16.5v-15h21zM21 3H3v13.5c0 .778.596 1.42 1.356 1.493L4.5 18h3v3.775c0 .184.205.32.373.22l.053-.043L11.88 18h7.62c.778 0 1.42-.596 1.493-1.356L21 16.5V3zm-6.903 8c-.12 3.024-1.3 5-2.097 5-.77 0-1.901-1.85-2.082-4.71L9.903 11h4.194zm3.378 0a5.497 5.497 0 01-3.587 4.66c.638-1.025 1.081-2.556 1.191-4.307l.018-.353h2.378zm-8.572 0c.07 1.898.528 3.568 1.209 4.66a5.501 5.501 0 01-3.56-4.422L6.525 11h2.378zM12 5c.77 0 1.901 1.85 2.082 4.71l.015.29H9.903c.12-3.025 1.3-5 2.097-5zm1.888.34a5.5 5.5 0 013.56 4.422l.027.238h-2.379c-.069-1.898-.527-3.568-1.208-4.66zm-3.776 0c-.638 1.025-1.081 2.556-1.191 4.307L8.903 10H6.525a5.497 5.497 0 013.587-4.66z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentLanguage.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/47690.caa2ff98.js b/pr-preview/pr-186/assets/js/47690.caa2ff98.js new file mode 100644 index 000000000..c3f1f83e5 --- /dev/null +++ b/pr-preview/pr-186/assets/js/47690.caa2ff98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[47690],{47690:(t,e,s)=>{s.r(e),s.d(e,{scale_icon_content_face_mask:()=>c});var i=s(90936);const c=class{constructor(t){(0,i.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12 4.75c3.257 0 5 2.25 8.499 2.25.162 0 .318-.004.466-.004.954 0 1.805.026 2.407.62.563.556.628 1.368.628 1.968 0 6.48-5.093 6.224-5.21 6.28-.925 1.348-2.31 2.325-4.376 3.111a6.791 6.791 0 01-4.828 0c-2.066-.786-3.451-1.763-4.376-3.112-.101-.048-5.21.229-5.21-6.279 0-.6.065-1.412.629-1.968.602-.594 1.422-.62 2.407-.62.148 0 .303.004.465.004C7.001 7 8.744 4.75 12 4.75zm-3.671 8.415a.75.75 0 00.336 1.006l.013.006.066.03c.317.144 1.546.643 3.256.643 1.954 0 3.28-.652 3.336-.679a.749.749 0 00.335-1.002.752.752 0 00-1.003-.341c-.011.005-1.087.522-2.668.522-1.581 0-2.656-.517-2.664-.521a.751.751 0 00-1.007.335zM3.514 8.5c-.989 0-1.56-.028-1.811.192-.17.148-.203.392-.203.892 0 2.645.966 4.204 2.87 4.651-.554-1.494-.793-3.36-.856-5.735zm17.566 0h-.594c-.062 2.374-.301 4.241-.856 5.735 1.904-.447 2.87-2.006 2.87-4.651 0-.542-.033-.789-.239-.928-.204-.138-.586-.156-1.181-.157zM12 9.25c-1.822 0-3.846.501-3.932.522a.75.75 0 00.364 1.455c.019-.005 1.934-.478 3.568-.478 1.78 0 3.517.5 3.75.5a.75.75 0 00.182-1.477c-.026-.006-.236-.058-.567-.127l-.27-.054C14.319 9.44 13.12 9.25 12 9.25z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12 4.75c3.257 0 5 2.25 8.499 2.25.162 0 .318-.004.466-.004.954 0 1.805.026 2.407.62.563.556.628 1.368.628 1.968 0 6.48-5.093 6.224-5.21 6.28-.925 1.348-2.31 2.325-4.376 3.111a6.791 6.791 0 01-4.828 0c-2.067-.786-3.451-1.763-4.377-3.112C5.11 15.816 0 16.093 0 9.585c0-.6.065-1.412.628-1.968.602-.594 1.423-.62 2.407-.62.148 0 .304.004.466.004C7.001 7 8.743 4.75 12 4.75zm0 1.5c-1.284 0-2.305.448-3.486.968-1.016.446-2.132.937-3.499 1.16.14 5.841 1.276 7.739 5.105 9.195a5.27 5.27 0 001.88.345c.647 0 1.28-.116 1.88-.345 3.829-1.456 4.965-3.354 5.104-9.195-1.366-.223-2.483-.714-3.498-1.16-1.181-.52-2.202-.968-3.486-.968zm-3.671 6.915a.751.751 0 011.006-.336c.008.004 1.084.521 2.665.521s2.657-.517 2.668-.522a.749.749 0 01.668 1.343c-.056.027-1.382.679-3.336.679-1.71 0-2.939-.499-3.256-.642l-.066-.03-.014-.008a.75.75 0 01-.335-1.005zM3.514 8.5c-.989 0-1.56-.028-1.811.192-.17.148-.203.392-.203.892 0 2.645.966 4.204 2.87 4.651-.555-1.494-.794-3.36-.856-5.735zm17.566 0h-.594c-.063 2.374-.302 4.241-.856 5.735 1.904-.447 2.87-2.006 2.87-4.651 0-.542-.033-.789-.239-.928-.204-.138-.586-.156-1.181-.157zM12 9.25c1.12 0 2.319.19 3.095.34l.27.055c.33.069.54.12.567.127a.75.75 0 01-.181 1.477c-.234 0-1.97-.5-3.751-.5-1.633 0-3.55.473-3.569.478a.75.75 0 01-.363-1.455c.085-.021 2.11-.522 3.932-.522z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};c.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/47820.c144ded0.js b/pr-preview/pr-186/assets/js/47820.c144ded0.js new file mode 100644 index 000000000..ec7f18e62 --- /dev/null +++ b/pr-preview/pr-186/assets/js/47820.c144ded0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[47820],{47820:(l,t,e)=>{e.r(t),e.d(t,{scale_icon_action_launch:()=>s});var i=e(90936);const s=class{constructor(l){(0,i.r)(this,l),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const l=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},l,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M12.96 3.968c2.485-2.485 6.36-3.125 9.88-2.808.317 3.517-.322 7.393-2.808 9.879-.882.882-1.915 1.785-2.953 2.632l-.52.42.241 1.538a5.225 5.225 0 01-1.538 4.585l-.18.166-3.026 2.663a.75.75 0 01-1.17-.235l-.04-.1-1.596-4.977-.886.379-2.475-2.475.38-.886-4.978-1.596a.75.75 0 01-.398-1.123l.064-.086L3.62 8.919a5.224 5.224 0 014.508-1.75l.243.032 1.538.24c.965-1.209 2.022-2.443 3.051-3.473zM4.814 16.571l.044-.019.009.12.03.234.037.218.057.262c.08.331.207.745.409 1.214.469.202.883.329 1.213.408l.263.057.217.038.286.034.068.004-.076.17-.1.19-.09.157-.113.176-.134.189-.158.2c-.733.88-2.14 1.924-4.569 1.57-.395-2.71.949-4.148 1.866-4.797l.183-.124.166-.101.146-.081.246-.12zm10.502-.71l-.111-.715-.75.563-.702.515-.842.605-1.08.752-.399.27-.469.313.962 2.996 2.164-1.905a3.731 3.731 0 001.256-3.17l-.029-.225zM8.14 8.683A3.731 3.731 0 004.9 9.745l-.155.165-1.905 2.165 2.996.962.689-1.022.769-1.098.791-1.092.451-.608.319-.422-.716-.112zM16.5 6a1.5 1.5 0 110 3 1.5 1.5 0 010-3z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M12.96 3.968c2.485-2.485 6.36-3.125 9.88-2.808.317 3.517-.322 7.393-2.808 9.879-.882.882-1.915 1.785-2.953 2.632l-.52.42.241 1.538a5.225 5.225 0 01-1.538 4.585l-.18.166-3.026 2.663a.75.75 0 01-1.17-.235l-.04-.1-1.596-4.977-.886.379-2.475-2.475.38-.886-4.978-1.596a.75.75 0 01-.398-1.123l.064-.086L3.62 8.919a5.224 5.224 0 014.508-1.75l.243.032 1.538.24c.965-1.209 2.022-2.443 3.051-3.473zM4.814 16.571l.044-.019.009.12.03.234.037.218.057.262c.08.331.207.745.409 1.214.469.202.883.329 1.213.408l.263.057.217.038.286.034.068.004-.076.17-.1.19-.09.157-.113.176-.134.189-.158.2c-.733.88-2.14 1.924-4.569 1.57-.395-2.71.949-4.148 1.866-4.797l.183-.124.166-.101.146-.081.246-.12zm10.502-.71l-.111-.715-.75.563-.702.515-.842.605-1.08.752-.399.27-.469.313.962 2.996 2.164-1.905a3.731 3.731 0 001.256-3.17l-.029-.225zm6.117-12.982v-.312l-.488.005-.384.014a15.29 15.29 0 00-.207.012l-.442.035c-1.756.164-4.204.709-5.891 2.396a35.533 35.533 0 00-2.037 2.247l-.5.604-.487.606-.472.602-.672.879-.418.56-.573.782-.779 1.093-.34.491 3.364 3.364.684-.477.657-.468.756-.549.546-.404.572-.43.59-.454.602-.472.303-.243.605-.494.6-.503a33.947 33.947 0 001.949-1.784c1.687-1.688 2.235-4.138 2.399-5.894l.034-.44.02-.405.009-.36zM8.139 8.683A3.731 3.731 0 004.9 9.745l-.155.165-1.905 2.165 2.996.962.689-1.022.769-1.098.791-1.092.451-.608.319-.422-.716-.112zM16.5 6a1.5 1.5 0 110 3 1.5 1.5 0 010-3z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/47852.53732e5e.js b/pr-preview/pr-186/assets/js/47852.53732e5e.js new file mode 100644 index 000000000..f801f22c7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/47852.53732e5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[47852],{47852:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_service_vpn:()=>s});var l=i(90936);const s=class{constructor(t){(0,l.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,l.h)(l.a,null,(0,l.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,l.h)("title",null,this.accessibilityTitle),(0,l.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,l.h)("g",null,(0,l.h)("path",{d:"M12.002.98l9.5 2.172v7.998c0 5.588-3.684 10.573-8.997 12.232l-.503.148-.206-.059c-5.372-1.535-9.154-6.447-9.29-12.011l-.004-.31V3.152l9.5-2.171zM15.58 9h-1.026v5h1.01v-3.129h.045L17.405 14h1.018V9H17.42v3.144h-.045L15.579 9zm-3.476 0h-1.856v5h1.01v-1.684h.846c.972 0 1.654-.591 1.654-1.654S13.075 9 12.103 9zM6.391 9h-1.04l1.631 5h1.011l1.631-5h-1.04l-1.077 3.383h-.045L6.392 9zm5.644.935c.382 0 .674.255.674.726 0 .426-.245.675-.58.714l-.094.005h-.778V9.935h.778z","fill-rule":"evenodd"})):(0,l.h)("g",null,(0,l.h)("path",{d:"M12 .98L2.5 3.153v7.998c0 5.691 3.822 10.758 9.294 12.321l.206.059.206-.059c5.472-1.564 9.294-6.63 9.294-12.321V3.152L12 .981zm8 10.17c0 4.953-3.279 9.37-8 10.818-4.721-1.448-8-5.865-8-10.818V4.348l8-1.829 8 1.829v6.802zM7.504 12.383h-.045L6.389 9H5.348l1.631 5H7.99l1.631-5h-1.04l-1.077 3.383zm8.056-1.511h.045L17.402 14h1.018V9h-1.003v3.144h-.045L15.576 9H14.55v5h1.01v-3.129zM10.244 14h1.01v-1.684h.846c.973 0 1.654-.591 1.654-1.654S13.073 9 12.1 9h-1.856v5zm1.01-4.065h.779c.381 0 .673.255.673.726 0 .465-.292.719-.673.719h-.779V9.935z","fill-rule":"evenodd"})))))}get hostElement(){return(0,l.g)(this)}};s.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4786.f6a272a3.js b/pr-preview/pr-186/assets/js/4786.f6a272a3.js new file mode 100644 index 000000000..328923777 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4786.f6a272a3.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4786; +exports.ids = [4786]; +exports.modules = { + +/***/ 54786: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_call_outgoing: () => (/* binding */ CommunicationCallOutgoing) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationCallOutgoing = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.9 3.5l3.4 5.95-1.7 1.7c-.25.25-.3.7-.05 1l.423.512.34.4.387.438.43.466a23.96 23.96 0 00.954.955l.466.43.438.385.584.494.328.27a.76.76 0 00.92.019l.08-.069 1.6-1.65 5.95 3.35-.043.442-.042.338c-.172 1.231-.63 2.95-2.165 3.92-.8.5-1.7.65-2.5.65a6.477 6.477 0 01-1.458-.183l-.326-.082-.466-.135C11.15 22.3 8.5 20.5 6 18c-2.45-2.5-4.25-5.15-5.1-7.5l-.077-.262-.06-.228L.7 9.744C.487 8.75.337 7.137 1.2 5.75c.962-1.462 2.574-1.947 3.768-2.138l.344-.05.16-.02L5.9 3.5zm16.55-1.9L21 8.5l-2.2-2.2-5.65 5.65c-.15.15-.35.2-.55.2-.2 0-.4-.05-.55-.2a.722.722 0 01-.074-.965l.074-.085 5.7-5.65-2.2-2.2 6.9-1.45z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M5.9 3.5l3.4 5.95-1.7 1.7c-.25.25-.3.7-.05 1l.423.512.34.4.387.438.43.466a23.96 23.96 0 00.954.955l.466.43.438.385.584.494.328.27a.76.76 0 00.92.019l.08-.069 1.6-1.65 5.95 3.35-.043.442-.042.338c-.172 1.231-.63 2.95-2.165 3.92-.8.5-1.7.65-2.5.65a6.477 6.477 0 01-1.458-.183l-.326-.082-.466-.135C11.15 22.3 8.5 20.5 6 18c-2.45-2.5-4.25-5.15-5.1-7.5l-.077-.262-.06-.228L.7 9.744C.487 8.75.337 7.137 1.2 5.75c.962-1.462 2.574-1.947 3.768-2.138l.344-.05.16-.02L5.9 3.5zm-.75 1.6c-1.25.2-2.15.7-2.6 1.45-.522.815-.49 1.822-.364 2.562l.054.281.059.246L2.4 10c.7 2.15 2.4 4.6 4.7 6.9 2.35 2.35 4.8 4.05 6.9 4.75l.238.073.221.057.127.03.28.054c.74.127 1.769.158 2.584-.364.7-.42 1.182-1.232 1.406-2.355l.044-.245-4.05-2.3-.9.9c-.8.8-2.1.85-3 .15l-.324-.25a19.79 19.79 0 01-.178-.142l-.386-.32-.419-.362-.444-.403a25.7 25.7 0 01-.463-.44L8.5 15.5l-.475-.512-.443-.493-.592-.683-.64-.762a2.225 2.225 0 01.035-2.876l.115-.124.95-.9-2.3-4.05zm17.3-3.5L21 8.5l-2.2-2.2-5.65 5.65c-.15.15-.35.2-.55.2-.2 0-.4-.05-.55-.2a.722.722 0 01-.074-.965l.074-.085 5.7-5.65-2.2-2.2 6.9-1.45z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationCallOutgoing.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4791.a97a5262.js b/pr-preview/pr-186/assets/js/4791.a97a5262.js new file mode 100644 index 000000000..d17de2ba2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4791.a97a5262.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4791; +exports.ids = [4791]; +exports.modules = { + +/***/ 24791: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_threats: () => (/* binding */ ContentThreats) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentThreats = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .998c5.171 0 9.377 4.205 9.377 9.376a9.297 9.297 0 01-3.141 6.986l-.236.203V20a3.003 3.003 0 01-2.823 2.995L15 23h-.502v-3.014h-1.5V23h-1.997v-3.014h-1.5V23H9a3.003 3.003 0 01-2.994-2.824L6 20v-2.438a9.303 9.303 0 01-3.376-7.189c0-5.17 4.206-9.375 9.377-9.375zM13 15h-2v2.5h2V15zm2.5-5a2 2 0 100 4 2 2 0 000-4zm-7 0a2 2 0 100 4 2 2 0 000-4z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 .998c-5.17 0-9.376 4.205-9.376 9.375A9.303 9.303 0 006 17.563V20c0 1.654 1.346 3 3 3h6c1.654 0 3-1.346 3-3v-2.438a9.304 9.304 0 003.377-7.188c0-5.17-4.206-9.377-9.377-9.377zm4.792 15.61l-.292.226V20c0 .827-.673 1.5-1.5 1.5h-.5V19H13v2.5h-2V19H9.5v2.5H9c-.827 0-1.5-.673-1.5-1.5v-3.166l-.292-.226c-1.96-1.51-3.084-3.783-3.084-6.235 0-4.342 3.533-7.875 7.876-7.875s7.877 3.532 7.877 7.875c0 2.453-1.124 4.725-3.085 6.236zM8.5 10a2 2 0 100 4 2 2 0 000-4zm7 0a2 2 0 100 4 2 2 0 000-4zM11 17.5h2V15h-2v2.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentThreats.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/47faf5eb.017102f0.js b/pr-preview/pr-186/assets/js/47faf5eb.017102f0.js new file mode 100644 index 000000000..966c62abf --- /dev/null +++ b/pr-preview/pr-186/assets/js/47faf5eb.017102f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[66961],{49995:e=>{e.exports=JSON.parse('{"tag":{"label":"authentik","permalink":"/docs-next/pr-preview/pr-186/docs/tags/authentik","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":3,"items":[{"id":"blueprints/by-use-case/security/authentik/authentik","title":"Authentik","description":"Authentik is a modern, open-source Identity Provider (IdP) that offers flexible and secure authentication and authorization solutions for organizations of all sizes. It provides a comprehensive suite of identity management features, allowing businesses to centralize user authentication, implement single sign-on (SSO), and manage access to various applications and services.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik"},{"id":"blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam","title":"Authentik as an Identity Provider for IAM","description":"This guide will walk you through the process of integrating authentik, with Identity and Access Management (IAM) of Open Telekom Cloud using OAuth 2.0.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam"},{"id":"blueprints/by-use-case/security/authentik/cce-authentik","title":"Deploy Authentik on CCE","description":"This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.","permalink":"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentik"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4800.f8314661.js b/pr-preview/pr-186/assets/js/4800.f8314661.js new file mode 100644 index 000000000..6b6baf473 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4800.f8314661.js @@ -0,0 +1,344 @@ +"use strict"; +exports.id = 4800; +exports.ids = [4800]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 44800: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_radio_button: () => (/* binding */ RadioButton) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91779); +/* harmony import */ var _status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94200); + + + + + +const radioButtonCss = "scale-radio-button{--color-disabled:var(--telekom-color-text-and-icon-disabled);--background-disabled:var(--telekom-color-ui-disabled);--color-error:var(--telekom-color-text-and-icon-functional-danger);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--color-primary:var(--telekom-color-text-and-icon-primary-standard);--color-primary-hover:var(--telekom-color-text-and-icon-standard);--color-primary-active:var(--telekom-color-text-and-icon-standard);--color-focus:var(--telekom-color-functional-focus-standard);--color-text:var(--telekom-color-text-and-icon-standard);--transition-helper-text:var(--transition);--font-size-helper-text:var(--telekom-typography-font-size-small);--font-weight-helper-text:var(--telekom-typography-font-weight-bold);--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--color-helper-text:var(\n --telekom-color-text-and-icon-functional-informational\n );--spacing-left-helper-text:calc(\n var(--width-control) + var(--telekom-spacing-composition-space-04)\n );--spacing-top-helper-text:var(--telekom-spacing-composition-space-03);--color-helper-text-error:var(\n --telekom-color-text-and-icon-functional-danger\n );--transition-label:var(--transition);--font-weight-label:var(--telekom-typography-font-weight-medium);--color-label:var(--color-text);--spacing-label:var(--telekom-spacing-composition-space-04);--width-control:var(--telekom-spacing-composition-space-07);--height-control:var(--telekom-spacing-composition-space-07);--transition-control:var(--transition);--background-color-control:var(--telekom-color-ui-base);--border-control:var(--telekom-spacing-composition-space-01) solid\n var(--telekom-color-ui-border-standard);--line-height-helper-text:var(--telekom-typography-line-spacing-standard);--border-control-checked:calc(\n 0.25 * var(--telekom-spacing-composition-space-05)\n )\n solid var(--telekom-color-background-canvas);--border-control-checked-disabled:calc(\n 0.5 * var(--telekom-spacing-composition-space-05)\n )\n solid var(--telekom-color-ui-border-disabled);--background-control-checked-disabled:none;--border-control-active:var(--telekom-spacing-composition-space-04) solid\n var(--telekom-color-primary-pressed);--border-control-disabled:0 0 0 var(--telekom-spacing-composition-space-01)\n var(--telekom-color-ui-border-disabled);--border-control-error:var(--telekom-spacing-composition-space-02) solid\n var(--telekom-color-functional-danger-standard);--box-shadow-control-focus:0 0 0 var(--telekom-spacing-composition-space-03)\n var(--color-focus)}.radio-button{position:relative;display:flex;flex-wrap:wrap;align-items:center;width:fit-content}.radio-button .radio-button__meta{width:100%;display:flex;padding-left:var(--spacing-left-helper-text)}.radio-button .radio-button__helper-text{transition:var(--transition-helper-text);font-size:var(--font-size-helper-text);font-weight:var(--font-weight-helper-text);line-height:var(--line-height-helper-text);color:var(--color-helper-text)}scale-icon-alert-information,scale-icon-alert-error{color:var(--color-helper-text);display:flex;justify-content:center;align-items:center;margin-right:var(--telekom-spacing-composition-space-03)}.radio-button--status-error .radio-button__helper-text{color:var(--color-helper-text-error)}.radio-button--status-error scale-icon-alert-error{color:var(--color-helper-text-error)}.radio-button label{color:var(--color-label);transition:var(--transition-label);font-weight:var(--font-weight-label);cursor:pointer;line-height:var(--telekom-typography-line-spacing-standard);padding-left:var(--spacing-label)}.radio-button input{width:var(--width-control);height:var(--height-control);transition:var(--transition-control);border-radius:50%;-webkit-appearance:none;background-color:var(--telekom-color-ui-state-fill-standard);border:var(--border-control);margin:0;cursor:pointer}.radio-button input:not(:checked):not([disabled]):hover{box-shadow:none;border-color:var(--telekom-color-ui-border-hovered);background-color:var(--telekom-color-ui-state-fill-hovered)}.radio-button input:not(:checked):not([disabled]):hover~label{color:var(--color-primary-hover)}.radio-button input:not(:checked):not([disabled]):active{border-color:var(--telekom-color-ui-border-pressed);background-color:var(--telekom-color-ui-state-fill-pressed)}.radio-button input:not(:checked):not([disabled]):active~label{color:var(--color-primary-active)}.radio-button input:disabled{box-shadow:var(--border-control-disabled)}.radio-button input:disabled~label{color:var(--color-disabled)}.radio-button.radio-button--status-error input{border:var(--border-control-error)}.radio-button.radio-button--status-error:hover input:not(:checked):not([disabled]){border-color:var(--telekom-color-functional-danger-hovered)}.radio-button.radio-button--status-error:active input:not(:checked):not([disabled]){border-color:var(--telekom-color-functional-danger-pressed)}.radio-button input:checked{border:var(--border-control-checked);background-color:var(--telekom-color-primary-standard);box-shadow:0 0 0 var(--telekom-spacing-composition-space-01)\n var(--telekom-color-text-and-icon-primary-standard)}.radio-button input:checked:disabled{background-color:var(--background-disabled);border:var(--border-control-checked);box-shadow:var(--border-control-disabled)}.radio-button input:checked:disabled~label{color:var(--color-disabled);border:var(--border-control-disabled)}.radio-button--disabled,.radio-button--disabled label,.radio-button--disabled .radio-button__label,.radio-button--disabled input,.radio-button--disabled .radio-button__helper-text{cursor:not-allowed;border-color:var(--color-disabled);color:var(--color-disabled);background:var(--telekom-color-ui-state-fill-standard)}.radio-button--disabled scale-icon-alert-information,.radio-button--disabled scale-icon-alert-error{color:var(--color-disabled)}.radio-button input:focus{outline:2px solid var(--color-focus);outline-offset:2px}"; + +const RadioButton = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + this.scaleChange = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scale-change", 7); + this.scaleChangeLegacy = (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.c)(this, "scaleChange", 7); + /** (optional) Input name */ + this.name = ''; + /** (optional) Input label */ + this.label = ''; + /** (optional) Input helper text */ + this.helperText = ''; + /** @deprecated - invalid should replace status */ + this.status = ''; + /** (optional) Input status */ + this.invalid = false; + /** (optional) Input checked */ + this.checked = false; + /** (optional) Input value */ + this.value = ''; + this.internalId = (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.g)(); + this.handleCheckedChange = (event) => { + if (!this.disabled) { + this.checked = event.target.checked; + // I don't think this is ever going to be `false` but well... + if (this.checked) { + this.uncheckSiblings(); + } + (0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_3__.e)(this, 'scaleChange', { + value: this.value == null ? this.value : this.value.toString(), + }); + } + }; + } + componentWillLoad() { + if (this.inputId == null) { + this.inputId = 'input-' + this.internalId; + } + } + componentDidRender() { + if (this.status !== '') { + (0,_status_note_0089e9c9_js__WEBPACK_IMPORTED_MODULE_2__.s)({ + tag: 'deprecated', + message: 'Property "status" is deprecated. Please use the "invalid" property!', + type: 'warn', + source: this.hostElement, + }); + } + } + // We manually set `checked` to false on sibling elements, + // otherwise they stayed `checked` after being clicked once, forever. + uncheckSiblings() { + this.getSiblingRadios().forEach((radio) => { + radio.checked = false; + }); + } + getSiblingRadios() { + return Array.from(document.querySelectorAll(`scale-radio-button[name="${this.name}"]`)).filter((radio) => radio.inputId !== this.inputId); + } + renderHelperIcon() { + if (this.helperText && !this.invalid) { + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-information", { size: 11 })); + } + if (this.invalid) { + return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("scale-icon-alert-error", { size: 11 }); + } + } + render() { + const ariaInvalidAttr = this.status === 'error' || this.invalid ? { 'aria-invalid': 'true' } : {}; + const helperTextId = `helper-message-${this.internalId}`; + const ariaDescribedByAttr = { 'aria-describedBy': helperTextId }; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: this.getCssClassMap() }, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("input", Object.assign({ type: "radio", name: this.name, id: this.inputId, onChange: this.handleCheckedChange, value: this.value, checked: this.checked, disabled: this.disabled }, ariaInvalidAttr, (this.helperText ? ariaDescribedByAttr : {}))), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("label", { htmlFor: this.inputId }, this.label), !!this.helperText && ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "radio-button__meta", id: helperTextId, "aria-live": "polite", "aria-relevant": "additions removals" }, this.renderHelperIcon(), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("div", { class: "radio-button__helper-text" }, this.helperText)))))); + } + getCssClassMap() { + return (0,_index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__.c)('radio-button', this.checked && `radio-button--checked`, this.disabled && `radio-button--disabled`, this.status && `radio-button--status-${this.status}`, this.invalid && `radio-button--status-error`); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +RadioButton.style = radioButtonCss; + + + + +/***/ }), + +/***/ 94200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ s: () => (/* binding */ statusNote) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const tagTypes = { + beta: 'β', + WIP: '🛠 WIP', + deprecated: '😵 Deprecation notice', + warning: 'Warning', +}; +const defaultMessages = { + beta: 'This component is currently in beta status. Some things may be refactored. Watch the change log for now.', + WIP: "This component is currently under development and is prone to change. Please wait for its release.\nIt will be available in Storybook once it's finished and documented.", + deprecated: 'This component is deprecated.', +}; +function statusNote({ tag = 'WIP', extraMessage = null, message = null, source = null, type = 'info', }) { + // tslint:disable-next-line + const dipatchMessage = console[type]; + dipatchMessage(`%c scale – ${tagTypes[tag]} `, 'background: #E20074; color: #FFF; border-radius: 4px', `\n\n${message ? message : defaultMessages[tag]} ${extraMessage ? '\n' + extraMessage : ''} + `, source !== null ? '\nsource:' : '', + // typeof source === 'object' ? '\n' : `\nsource: ${source}`, + typeof source === 'object' ? source : `${source}`, source !== null ? '\n\n' : ''); +} + + + + +/***/ }), + +/***/ 91779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ a: () => (/* binding */ animationsFinished), +/* harmony export */ b: () => (/* binding */ isClickOutside), +/* harmony export */ c: () => (/* binding */ isPseudoClassSupported), +/* harmony export */ e: () => (/* binding */ emitEvent), +/* harmony export */ g: () => (/* binding */ generateUniqueId), +/* harmony export */ h: () => (/* binding */ hasShadowDom), +/* harmony export */ i: () => (/* binding */ isScaleIcon) +/* harmony export */ }); +/** + * @license + * Scale https://github.com/telekom/scale + * + * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ +const hasShadowDom = (el) => { + return !!el.shadowRoot && !!el.attachShadow; +}; +// eg isPseudoClassSupported(':focus-visible') // true for chrome, false for safari +const isPseudoClassSupported = (pseudoClass) => { + // Get the document stylesheet1 + let ss = document.styleSheets[0]; + // Create a stylesheet if one doesn't exist + if (!ss) { + const el = document.createElement('style'); + document.head.appendChild(el); + ss = document.styleSheets[0]; + document.head.removeChild(el); + } + // Test the pseudo-class by trying to style with it + function testPseudo() { + try { + if (!/^:/.test(pseudoClass)) { + pseudoClass = ':' + pseudoClass; + } + ss.insertRule('html' + pseudoClass + '{}', 0); + ss.deleteRule(0); + return true; + } + catch (e) { + return false; + } + } + // Run the test + return testPseudo(); +}; +/** + * Call `emit` on component events twice. + * One for the legacy camel-cased event, one for the new kebab-cased. + * e.g. for the event `scaleChange` it will do `instance.scaleChange.emit()` and `instance.scaleChangeLegacy.emit()`. + * It expects both `scaleChange` and `scaleChangeLegacy` event-decorated properties to exist on the component. + * + * @param instance {ComponentInterface} - The component instance, aka `this` + * @param eventKey {string} - The event property, e.g. `scaleChange` + * @param detail {any} - The custom event `detail` + * @returns {CustomEvent[]} - The events emitted + */ +function emitEvent(instance, eventKey, detail) { + const legacyKey = eventKey + 'Legacy'; + const emitted = []; + if (typeof instance[legacyKey] !== 'undefined') { + // Emit legacy camel case event, e.g. `scaleClose` + emitted.push(instance[legacyKey].emit(detail)); + } + // Emit now-standard kebab-case event, e.g. `scale-close` + emitted.push(instance[eventKey].emit(detail)); + // Return both + return emitted; +} +function isClickOutside(event, host) { + let target = event.target; + const hasShadow = target.shadowRoot != null; + const composedPath = hasShadow ? event.composedPath() : []; + do { + if (target === host) { + return false; + } + if (hasShadow) { + // @ts-ignore + target = composedPath.shift(); + } + else { + target = target.parentNode; + } + } while (target); + return true; +} +const isScaleIcon = (el) => { + if (el == null || el.nodeType !== 1) { + return false; + } + return el.nodeName.toUpperCase().substring(0, 10) === 'SCALE-ICON'; +}; +/** Creating global ids for different component helper-texts */ +let id = 0; +function generateUniqueId() { + return id++; +} +/** + * Useful for waiting for animations to finish before doing something. + * + * @param el {HTMLElement | ShadowRoot} - The element to call `getAnimations` on + * @returns {Promise} - Resolves when all animations are finished + */ +const animationsFinished = (el) => { + return Promise.all(el.getAnimations({ subtree: true }).map((x) => x.finished)); +}; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/48039.0b9cd2ac.js b/pr-preview/pr-186/assets/js/48039.0b9cd2ac.js new file mode 100644 index 000000000..15990c1de --- /dev/null +++ b/pr-preview/pr-186/assets/js/48039.0b9cd2ac.js @@ -0,0 +1,2 @@ +/*! For license information please see 48039.0b9cd2ac.js.LICENSE.txt */ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[48039],{88114:(r,t,e)=>{e.d(t,{c:()=>i});var a,o,s,i=(a=function(r){!function(){var t={}.hasOwnProperty;function e(){for(var r=[],a=0;a{e.r(t),e.d(t,{scale_breadcrumb:()=>s});var a=e(90936),o=e(88114);const s=class{constructor(r){(0,a.r)(this,r),this.linksArray=[],this.separatorSlot=null}componentWillLoad(){0===this.linksArray.length&&this.setLinksArray(),this.separatorSlot=this.hostElement.querySelector('[slot="separator"]')}componentDidLoad(){const r=new MutationObserver((()=>{this.setLinksArray()}));r.observe(this.hostElement,{attributes:!1,childList:!0,subtree:!0}),this.mo=r}disconnectedCallback(){this.mo&&this.mo.disconnect()}setLinksArray(){this.linksArray=Array.from(this.hostElement.children).filter((r=>""===r.slot))}render(){const r=r=>r===this.linksArray.length-1;return(0,a.h)(a.a,null,this.styles&&(0,a.h)("style",null,this.styles),(0,a.h)("nav",{"aria-label":"Breadcrumb",class:this.getCssClassMap(),part:"base"},(0,a.h)("ol",{class:"breadcrumb__list",part:"list"},this.linksArray.map(((t,e)=>{const s=null!=this.separatorSlot?(0,a.h)("span",{class:"breadcrumb__separator",part:"separator",innerHTML:this.separatorSlot.innerHTML}):(0,a.h)("span",{class:"breadcrumb__separator",part:"separator"},this.separator||(0,a.h)("scale-icon-navigation-right",{size:12}));return(0,a.h)("li",{class:"breadcrumb__list-item",part:"list-item"},t.href||"SCALE-LINK"===t.tagName?(0,a.h)("a",Object.assign({href:t.href,class:(0,o.c)(r(e)&&"breadcrumb__current","breadcrumb__link"),part:(0,o.c)(r(e)&&"current","link")},(t=>!0===r(t)?{"aria-current":"page"}:void 0)(e)),t.textContent):(0,a.h)("span",{class:(0,o.c)(r(e)&&"breadcrumb__current","breadcrumb__item"),part:(0,o.c)(r(e)&&"current","item")},t.textContent),r(e)?null:s)})))))}getCssClassMap(){return(0,o.c)("breadcrumb")}get hostElement(){return(0,a.g)(this)}};s.style=":host{--spacing-left:calc(-1 * var(--telekom-spacing-composition-space-04));--font-size-list-item:var(--telekom-typography-font-size-caption);--color-separator:var(--telekom-color-text-and-icon-additional);--spacing-y-item:var(--telekom-spacing-composition-space-03);--spacing-x-item:var(--telekom-spacing-composition-space-04);--color-link:var(--telekom-color-text-and-icon-additional);--radius-link:var(--telekom-radius-standard);--color-link-hover:var(--telekom-color-text-and-icon-primary-hovered);--color-link-active:var(--telekom-color-text-and-icon-primary-pressed);--focus-outline:var(--telekom-line-weight-highlight) solid\n var(--telekom-color-functional-focus-standard);--font-current:var(--telekom-text-style-caption-bold);--color-current:var(--telekom-color-text-and-icon-standard)}.breadcrumb{margin-left:var(--spacing-left)}.breadcrumb__list{display:flex;list-style:none;margin-top:0;padding-left:0;margin-bottom:0}.breadcrumb__list-item{display:inline-flex;font-size:var(--font-size-list-item);align-items:center}.breadcrumb__separator{display:flex;color:var(--color-separator)}.breadcrumb__item,.breadcrumb__link{padding:var(--spacing-y-item) var(--spacing-x-item)}.breadcrumb__link{text-decoration:none;color:var(--color-link);border-radius:var(--radius-link)}.breadcrumb__link:hover{color:var(--color-link-hover)}.breadcrumb__link:active{color:var(--color-link-active)}.breadcrumb__link:focus{outline:var(--focus-outline)}.breadcrumb__current{font:var(--font-current);color:var(--color-current)}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/48039.0b9cd2ac.js.LICENSE.txt b/pr-preview/pr-186/assets/js/48039.0b9cd2ac.js.LICENSE.txt new file mode 100644 index 000000000..bae6dd8e2 --- /dev/null +++ b/pr-preview/pr-186/assets/js/48039.0b9cd2ac.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/pr-preview/pr-186/assets/js/4812.cc88134b.js b/pr-preview/pr-186/assets/js/4812.cc88134b.js new file mode 100644 index 000000000..39f4c6549 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4812.cc88134b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4812; +exports.ids = [4812]; +exports.modules = { + +/***/ 64812: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_bookmark: () => (/* binding */ ContentBookmark) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentBookmark = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M19.5 3.5v20L12 18.24 4.5 23.5v-20a3 3 0 013-3h9a3 3 0 013 3z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M16.5.5h-9c-1.655 0-3 1.345-3 3v20l7.5-5.26 7.5 5.26v-20c0-1.655-1.345-3-3-3zM18 20.615l-6-4.21-6 4.21V3.5C6 2.675 6.675 2 7.5 2h9c.825 0 1.5.675 1.5 1.5v17.115z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentBookmark.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/48275.3b148f9b.js b/pr-preview/pr-186/assets/js/48275.3b148f9b.js new file mode 100644 index 000000000..983f2b587 --- /dev/null +++ b/pr-preview/pr-186/assets/js/48275.3b148f9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[48275],{70656:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_refresh:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M14.191 1.677l.119.013A10.635 10.635 0 0122.565 12a10.615 10.615 0 01-3.804 8.123l-.261.212 1.39 2.165h-6.675l2.68-6.13 1.42 2.175a8.435 8.435 0 00-3.47-14.78 1.065 1.065 0 01.346-2.088zM10.785 1.5l-2.68 6.13L6.68 5.45a8.44 8.44 0 003.19 14.716l.285.069h-.02a1.065 1.065 0 01-.235 2.1 1.245 1.245 0 01-.23-.025A10.56 10.56 0 015.255 3.861l.245-.196L4.11 1.5h6.675z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M13.35 2.55c.1-.4.5-.65.9-.55 4.65 1.05 8 5.25 8 10 0 3.041-1.398 5.943-3.745 7.895l-.255.205 1.6 2.4H13.2l2.7-6.15 1.6 2.45c2-1.65 3.25-4.15 3.25-6.8 0-4.05-2.9-7.65-6.85-8.55-.4-.1-.65-.5-.55-.9zM10.8 1.5L8.1 7.65 6.5 5.2c-2 1.6-3.25 4.1-3.25 6.8 0 4.05 2.9 7.65 6.85 8.55A.745.745 0 119.75 22c-4.65-1.05-8-5.25-8-10 0-3.09 1.398-5.946 3.7-7.895L5.7 3.9 4.1 1.5h6.7z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4828.41869f5b.js b/pr-preview/pr-186/assets/js/4828.41869f5b.js new file mode 100644 index 000000000..654b9ac75 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4828.41869f5b.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4828; +exports.ids = [4828]; +exports.modules = { + +/***/ 54828: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_shop: () => (/* binding */ ContentShop) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentShop = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1a4.48 4.48 0 014.495 4.287l.005.213V7h4.45l.9 12.8c.05.8-.25 1.65-.8 2.25-.504.55-1.218.89-1.989.943L18.85 23H5.15c-.85 0-1.65-.35-2.2-.95a3.049 3.049 0 01-.805-2.039l.005-.211.9-12.8H7.5V5.5C7.5 3 9.5 1 12 1zM8.25 9.75a1 1 0 110 2 1 1 0 010-2zm7.5 0a1 1 0 110 2 1 1 0 010-2zM12 2.5a3.01 3.01 0 00-2.995 2.824L9 5.5V7h6V5.5c0-1.65-1.35-3-3-3z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1a4.48 4.48 0 014.495 4.287l.005.213V7h4.45l.9 12.8c.05.8-.25 1.65-.8 2.25-.504.55-1.218.89-1.989.943L18.85 23H5.15c-.85 0-1.65-.35-2.2-.95a3.049 3.049 0 01-.805-2.039l.005-.211.9-12.8H7.5V5.5C7.5 3 9.5 1 12 1zm7.55 7.5H4.45l-.8 11.35c-.05.45.1.8.4 1.15.262.306.602.46.95.493l.15.007h13.7c.4 0 .8-.2 1.1-.5.214-.257.355-.588.391-.929l.009-.171-.8-11.4zM8.25 9.75a1 1 0 110 2 1 1 0 010-2zm7.5 0a1 1 0 110 2 1 1 0 010-2zM12 2.5a3.01 3.01 0 00-2.995 2.824L9 5.5V7h6V5.5c0-1.65-1.35-3-3-3z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentShop.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/48298.88f5ce41.js b/pr-preview/pr-186/assets/js/48298.88f5ce41.js new file mode 100644 index 000000000..78c473628 --- /dev/null +++ b/pr-preview/pr-186/assets/js/48298.88f5ce41.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[48298],{48298:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_action_arrow_left:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M21.092 10.75H6.099l4.83-3.81a1.249 1.249 0 10-1.547-1.962l-8.91 7.025 8.91 7.026a1.248 1.248 0 001.755-.208 1.249 1.249 0 00-.207-1.755L6.092 13.25h15a1.25 1.25 0 000-2.5","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M21.5 11.25H5.16l5.905-4.661a.751.751 0 00-.93-1.178L1.79 12l8.346 6.589a.75.75 0 00.93-1.178L5.16 12.75H21.5a.75.75 0 000-1.5","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4833851d.93404708.js b/pr-preview/pr-186/assets/js/4833851d.93404708.js new file mode 100644 index 000000000..0956cdced --- /dev/null +++ b/pr-preview/pr-186/assets/js/4833851d.93404708.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[88703],{84596:e=>{e.exports=JSON.parse('{"tag":{"label":"dds","permalink":"/docs-next/pr-preview/pr-186/docs/tags/dds","allTagsPath":"/docs-next/pr-preview/pr-186/docs/tags","count":4,"items":[{"id":"best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds","title":"From ECS-hosted MongoDB to DDS","description":"DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds"},{"id":"best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds","title":"From On-Premises MongoDB to DDS","description":"DRS helps you migrate data from on-premises MongoDB databases to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds"},{"id":"best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds","title":"From Other Cloud MongoDB to DDS","description":"DRS helps you migrate MongoDB databases from other cloud platforms to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds"},{"id":"best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting","title":"How Do Replica Sets Achieve High Availability and Read/Write Splitting?","description":"DDS replica set instances can store multiple duplicates to ensure data high availability and support the automatic switch of private IP addresses to ensure service high availability. To enhance the read and write performance of your client for connecting to the instance, you can use your client to read different data copies. You need to connect to replica set instances using HA connection addresses. You can also configure read/write splitting. Otherwise, the high availability and high read performance of replica set instances cannot be guaranteed.","permalink":"/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/485.1f687e50.js b/pr-preview/pr-186/assets/js/485.1f687e50.js new file mode 100644 index 000000000..65b05d8b4 --- /dev/null +++ b/pr-preview/pr-186/assets/js/485.1f687e50.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 485; +exports.ids = [485]; +exports.modules = { + +/***/ 50485: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_boy: () => (/* binding */ UserFileBoy) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileBoy = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.561 19.006L12 21.447l2.44-2.44h1.674c1.017 0 1.948.395 2.637 1.052.792.755 1.028 1.532 1.18 2.442H4.068c.165-.99.455-1.835 1.347-2.591a3.811 3.811 0 012.471-.902h1.675zM12.204 2.5l.343 1.098c4.177-.135 5.488 3.414 5.813 6.473a8.354 8.354 0 01-.794.107 6.4 6.4 0 01.085 1.02c0 3.18-2.27 6.585-5.651 6.585-3.38 0-5.652-3.405-5.652-6.585 0-1.297.108-2.313.304-3.104-1.212-1.523-.654-2.962-.654-2.962l1.793.324c.243-1.522 1.664-2.61 4.413-2.956zM9.733 9.21c-.324.611-1.037 1.14-1.85 1.442-.02.179-.035.36-.035.546 0 2.455 1.668 5.085 4.152 5.085 2.483 0 4.151-2.629 4.151-5.086 0-.363-.044-.71-.12-1.04a6.616 6.616 0 01-2.397-.758c.308.882.612 1.722.612 1.722-2.821-.437-4.104-1.508-4.428-1.822l-.055-.056-.03-.033z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M9.561 19.006L12 21.447l2.44-2.44h1.674c1.017 0 1.948.395 2.637 1.052.792.755 1.028 1.532 1.18 2.442H4.068c.165-.99.455-1.835 1.347-2.591a3.811 3.811 0 012.471-.902h1.675zM12.204 2.5l.343 1.098c4.177-.135 5.488 3.414 5.813 6.473a8.354 8.354 0 01-.794.107 6.4 6.4 0 01.085 1.02c0 3.18-2.27 6.585-5.651 6.585-3.38 0-5.652-3.405-5.652-6.585 0-1.297.108-2.313.304-3.104-1.212-1.523-.654-2.962-.654-2.962l1.793.324c.243-1.522 1.664-2.61 4.413-2.956zM9.733 9.21c-.324.611-1.037 1.14-1.85 1.442-.02.179-.035.36-.035.546 0 2.455 1.668 5.085 4.152 5.085 2.483 0 4.151-2.629 4.151-5.086 0-.363-.044-.71-.12-1.04a6.616 6.616 0 01-2.397-.758c.308.882.612 1.722.612 1.722-2.821-.437-4.104-1.508-4.428-1.822l-.055-.056-.03-.033z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileBoy.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4861.91cd4ee6.js b/pr-preview/pr-186/assets/js/4861.91cd4ee6.js new file mode 100644 index 000000000..a8b8b3ae0 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4861.91cd4ee6.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4861; +exports.ids = [4861]; +exports.modules = { + +/***/ 54861: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_user_file_id_card: () => (/* binding */ UserFileIdCard) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const UserFileIdCard = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M.5 3.5v14a3 3 0 003 3h17a3 3 0 003-3v-14H.5zm7.755 4.47a2 2 0 012.08 2.095c0 1.265-.875 2.5-2.08 2.5s-2.085-1.225-2.085-2.5A2 2 0 018.255 7.97zM4.5 15.47l.13-.72a1.665 1.665 0 011.64-1.365h.815L8.25 14.55l1.16-1.165h.815a1.665 1.665 0 011.64 1.365l.135.72H4.5zM19.25 14h-5a.75.75 0 110-1.5h5a.75.75 0 110 1.5zm0-3h-5a.75.75 0 110-1.5h5a.75.75 0 110 1.5z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M23.5 3.5v14a3.01 3.01 0 01-2.824 2.995l-.176.005h-17a3.01 3.01 0 01-2.995-2.824L.5 17.5v-14h23zM22 5H2v12.5c0 .8.576 1.423 1.352 1.493L3.5 19h17c.8 0 1.423-.576 1.493-1.352L22 17.5V5zM7.15 13.5l1.15 1.1 1.1-1.1h.75c.703 0 1.318.483 1.516 1.162l.034.138.1.7H4.7l.15-.7c.14-.703.72-1.23 1.41-1.294l.14-.006h.75zm12.1-1c.4 0 .75.35.75.75a.772.772 0 01-.651.743L19.25 14h-5c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743l.099-.007h5zm-11-4.45c1.15 0 2.1.85 2.1 2.1s-.9 2.5-2.1 2.5c-1.2 0-2.1-1.25-2.1-2.5s.95-2.1 2.1-2.1zm11 1.45c.4 0 .75.35.75.75a.772.772 0 01-.651.743L19.25 11h-5c-.4 0-.75-.35-.75-.75 0-.367.294-.691.651-.743l.099-.007h5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +UserFileIdCard.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/48632.9f450b77.js b/pr-preview/pr-186/assets/js/48632.9f450b77.js new file mode 100644 index 000000000..d69bf674d --- /dev/null +++ b/pr-preview/pr-186/assets/js/48632.9f450b77.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[48632],{48632:(e,t,a)=>{a.r(t),a.d(t,{duet_date_picker:()=>O,scale_icon_content_calendar:()=>W});var i=a(90936);const o=/^(\d{4})-(\d{2})-(\d{2})$/;var d;function s(e,t,a){var i=parseInt(a,10),o=parseInt(t,10),d=parseInt(e,10);if(Number.isInteger(d)&&Number.isInteger(o)&&Number.isInteger(i)&&o>0&&o<=12&&i>0&&i<=31&&d>0)return new Date(d,o-1,i)}function n(e){if(!e)return;const t=e.match(o);return t?s(t[1],t[2],t[3]):void 0}function r(e){if(!e)return"";var t=e.getDate().toString(10),a=(e.getMonth()+1).toString(10),i=e.getFullYear().toString(10);return e.getDate()<10&&(t=`0${t}`),e.getMonth()<9&&(a=`0${a}`),`${i}-${a}-${t}`}function l(e,t){return null!=e&&null!=t&&(e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate())}function h(e,t){var a=new Date(e);return a.setDate(a.getDate()+t),a}function c(e,t=d.Monday){var a=new Date(e),i=a.getDay(),o=(ia.getTime()?a:e}function y(e,t=d.Monday){return function(e,t){const a=[];let i=e;for(;!l(i,t);)a.push(i),i=h(i,1);return a.push(i),a}(c(p(e),t),u(g(e),t))}function _(){return Math.random().toString(16).slice(-4)}function x(e){return`${e}-${_()}${_()}-${_()}-${_()}-${_()}-${_()}${_()}${_()}`}!function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday"}(d||(d={}));const w=({onClick:e,dateFormatter:t,localization:a,name:o,formattedValue:d,valueAsDate:s,value:n,identifier:r,disabled:l,required:h,role:c,buttonRef:u,inputRef:p,onInput:g,onBlur:m,onFocus:f})=>(0,i.h)("div",{class:"duet-date__input-wrapper"},(0,i.h)("input",{class:"duet-date__input",value:d,placeholder:a.placeholder,id:r,disabled:l,role:c,required:!!h||void 0,"aria-autocomplete":"none",onInput:g,onFocus:f,onBlur:m,autoComplete:"off",ref:p}),(0,i.h)("input",{type:"hidden",name:o,value:n}),(0,i.h)("button",{class:"duet-date__toggle",onClick:e,disabled:l,ref:u,type:"button"},(0,i.h)("span",{class:"duet-date__toggle-icon"},(0,i.h)("svg",{"aria-hidden":"true",height:"24",viewBox:"0 0 21 21",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,i.h)("g",{fill:"none","fill-rule":"evenodd",transform:"translate(2 2)"},(0,i.h)("path",{d:"m2.5.5h12c1.1045695 0 2 .8954305 2 2v12c0 1.1045695-.8954305 2-2 2h-12c-1.1045695 0-2-.8954305-2-2v-12c0-1.1045695.8954305-2 2-2z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),(0,i.h)("path",{d:"m.5 4.5h16",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),(0,i.h)("g",{fill:"currentColor"},(0,i.h)("circle",{cx:"8.5",cy:"8.5",r:"1"}),(0,i.h)("circle",{cx:"4.5",cy:"8.5",r:"1"}),(0,i.h)("circle",{cx:"12.5",cy:"8.5",r:"1"}),(0,i.h)("circle",{cx:"8.5",cy:"12.5",r:"1"}),(0,i.h)("circle",{cx:"4.5",cy:"12.5",r:"1"}),(0,i.h)("circle",{cx:"12.5",cy:"12.5",r:"1"}))))),(0,i.h)("span",{class:"duet-date__vhidden"},a.buttonLabel,s&&(0,i.h)("span",null,", ",a.selectedDateMessage," ",t.format(s))))),D=({focusedDay:e,today:t,day:a,onDaySelect:o,onKeyboardNavigation:d,focusedDayRef:s,inRange:n,isSelected:r,dateFormatter:h})=>{const c=l(a,t),u=l(a,e),p=a.getMonth()!==e.getMonth(),g=!n;return(0,i.h)("button",{class:{"duet-date__day":!0,"is-outside":g,"is-disabled":p,"is-today":c},tabIndex:u?0:-1,onClick:function(e){o(e,a)},onKeyDown:d,disabled:g||p,type:"button","aria-pressed":r?"true":"false",ref:e=>{u&&e&&s&&s(e)}},(0,i.h)("span",{"aria-hidden":"true"},a.getDate()),(0,i.h)("span",{class:"duet-date__vhidden"},h.format(a)))};const k=({selectedDate:e,focusedDate:t,labelledById:a,localization:o,firstDayOfWeek:d,min:s,max:n,dateFormatter:r,onDateSelect:h,onKeyboardNavigation:c,focusedDayRef:u})=>{const p=new Date,g=y(t,d);return(0,i.h)("table",{class:"duet-date__table","aria-labelledby":a},(0,i.h)("thead",null,(0,i.h)("tr",null,(m=o.dayNames,f=d,b=e=>(0,i.h)("th",{class:"duet-date__table-header",scope:"col"},(0,i.h)("span",{"aria-hidden":"true"},e.substr(0,2)),(0,i.h)("span",{class:"duet-date__vhidden"},e)),m.map(((e,t)=>{const a=(t+f)%m.length;return b(m[a])}))))),(0,i.h)("tbody",null,function(e,t){const a=[];for(let i=0;i(0,i.h)("tr",{class:"duet-date__row"},a.map((a=>(0,i.h)("td",{class:"duet-date__cell"},(0,i.h)(D,{day:a,today:p,focusedDay:t,isSelected:l(a,e),inRange:v(a,s,n),onDaySelect:h,dateFormatter:r,onKeyboardNavigation:c,focusedDayRef:u})))))))));var m,f,b},F={buttonLabel:"Choose date",placeholder:"YYYY-MM-DD",selectedDateMessage:"Selected date is",prevMonthLabel:"Previous month",nextMonthLabel:"Next month",monthSelectLabel:"Month",yearSelectLabel:"Year",closeLabel:"Close window",keyboardInstruction:"You can use arrow keys to navigate dates",calendarHeading:"Choose a date",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],locale:"en-GB"},z={parse:n,format:r};const M=9,S=27,C=33,T=34,Y=35,I=36,L=37,N=38,B=39,K=40,A=/[^0-9\.\/\-]+/g,O=class{constructor(e){(0,i.r)(this,e),this.duetChange=(0,i.c)(this,"duetChange",7),this.duetBlur=(0,i.c)(this,"duetBlur",7),this.duetFocus=(0,i.c)(this,"duetFocus",7),this.monthSelectId=x("DuetDateMonth"),this.yearSelectId=x("DuetDateYear"),this.dialogLabelId=x("DuetDateLabel"),this.initialTouchX=null,this.initialTouchY=null,this.activeFocus=!1,this.focusedDay=new Date,this.open=!1,this.name="date",this.identifier="",this.disabled=!1,this.direction="right",this.required=!1,this.value="",this.min="",this.max="",this.firstDayOfWeek=d.Monday,this.localization=F,this.dateAdapter=z,this.enableActiveFocus=()=>{this.activeFocus=!0},this.disableActiveFocus=()=>{this.activeFocus=!1},this.toggleOpen=e=>{e.preventDefault(),this.open?this.hide(!1):this.show()},this.handleEscKey=e=>{e.keyCode===S&&this.hide()},this.handleBlur=e=>{e.stopPropagation(),this.duetBlur.emit({component:"duet-date-picker"})},this.handleFocus=e=>{e.stopPropagation(),this.duetFocus.emit({component:"duet-date-picker"})},this.handleTouchStart=e=>{const t=e.changedTouches[0];this.initialTouchX=t.pageX,this.initialTouchY=t.pageY},this.handleTouchMove=e=>{e.preventDefault()},this.handleTouchEnd=e=>{const t=e.changedTouches[0],a=t.pageX-this.initialTouchX,i=t.pageY-this.initialTouchY,o=Math.abs(a)>=70&&Math.abs(i)<=70,d=Math.abs(i)>=70&&Math.abs(a)<=70&&i>0;o?this.addMonths(a<0?1:-1):d&&(this.hide(!1),e.preventDefault()),this.initialTouchY=null,this.initialTouchX=null},this.handleNextMonthClick=e=>{e.preventDefault(),this.addMonths(1)},this.handlePreviousMonthClick=e=>{e.preventDefault(),this.addMonths(-1)},this.handleFirstFocusableKeydown=e=>{e.keyCode===M&&e.shiftKey&&(this.focusedDayNode.focus(),e.preventDefault())},this.handleKeyboardNavigation=e=>{if(e.keyCode===M&&!e.shiftKey)return e.preventDefault(),void this.firstFocusableElement.focus();var t=!0;switch(e.keyCode){case B:this.addDays(1);break;case L:this.addDays(-1);break;case K:this.addDays(7);break;case N:this.addDays(-7);break;case C:e.shiftKey?this.addYears(-1):this.addMonths(-1);break;case T:e.shiftKey?this.addYears(1):this.addMonths(1);break;case I:this.startOfWeek();break;case Y:this.endOfWeek();break;default:t=!1}t&&(e.preventDefault(),this.enableActiveFocus())},this.handleDaySelect=(e,t)=>{v(t,n(this.min),n(this.max))&&(t.getMonth()===this.focusedDay.getMonth()?(this.setValue(t),this.hide()):this.setFocusedDay(t))},this.handleMonthSelect=e=>{this.setMonth(parseInt(e.target.value,10))},this.handleYearSelect=e=>{this.setYear(parseInt(e.target.value,10))},this.handleInputChange=e=>{const t=e.target;t.value=t.value.replace(A,"");const a=this.dateAdapter.parse(t.value,s);(a||""===t.value)&&this.setValue(a)},this.processFocusedDayNode=e=>{this.focusedDayNode=e,this.activeFocus&&this.open&&setTimeout((()=>e.focus()),0)}}connectedCallback(){this.createDateFormatters()}createDateFormatters(){this.dateFormatShort=new Intl.DateTimeFormat(this.localization.locale,{day:"numeric",month:"long"}),this.dateFormatLong=new Intl.DateTimeFormat(this.localization.locale,{day:"numeric",month:"long",year:"numeric"})}handleDocumentClick(e){if(!this.open)return;const t=e.target;this.dialogWrapperNode.contains(t)||this.datePickerButton.contains(t)||this.hide(!1)}async setFocus(){return this.datePickerInput.focus()}async show(){this.open=!0,this.setFocusedDay(n(this.value)||new Date),clearTimeout(this.focusTimeoutId),this.focusTimeoutId=setTimeout((()=>this.monthSelectNode.focus()),300)}async hide(e=!0){this.open=!1,clearTimeout(this.focusTimeoutId),e&&setTimeout((()=>this.datePickerButton.focus()),500)}addDays(e){this.setFocusedDay(h(this.focusedDay,e))}addMonths(e){this.setMonth(this.focusedDay.getMonth()+e)}addYears(e){this.setYear(this.focusedDay.getFullYear()+e)}startOfWeek(){this.setFocusedDay(c(this.focusedDay,this.firstDayOfWeek))}endOfWeek(){this.setFocusedDay(u(this.focusedDay,this.firstDayOfWeek))}setMonth(e){const t=m(p(this.focusedDay),e),a=g(t),i=m(this.focusedDay,e);this.setFocusedDay(b(i,t,a))}setYear(e){const t=f(p(this.focusedDay),e),a=g(t),i=f(this.focusedDay,e);this.setFocusedDay(b(i,t,a))}setFocusedDay(e){this.focusedDay=b(e,n(this.min),n(this.max))}setValue(e){this.value=r(e),this.duetChange.emit({component:"duet-date-picker",value:this.value,valueAsDate:e})}render(){const e=n(this.value),t=e&&this.dateAdapter.format(e),a=(e||this.focusedDay).getFullYear(),o=this.focusedDay.getMonth(),d=this.focusedDay.getFullYear(),s=n(this.min),r=n(this.max),l=null!=s&&s.getMonth()===o&&s.getFullYear()===d,h=null!=r&&r.getMonth()===o&&r.getFullYear()===d,c=s?s.getFullYear():a-10,u=r?r.getFullYear():a+10;return(0,i.h)(i.a,null,(0,i.h)("div",{class:"duet-date"},(0,i.h)(w,{dateFormatter:this.dateFormatLong,value:this.value,valueAsDate:e,formattedValue:t,onInput:this.handleInputChange,onBlur:this.handleBlur,onFocus:this.handleFocus,onClick:this.toggleOpen,name:this.name,disabled:this.disabled,role:this.role,required:this.required,identifier:this.identifier,localization:this.localization,buttonRef:e=>this.datePickerButton=e,inputRef:e=>this.datePickerInput=e}),(0,i.h)("div",{class:{"duet-date__dialog":!0,"is-left":"left"===this.direction,"is-active":this.open},role:"dialog","aria-modal":"true","aria-hidden":this.open?"false":"true","aria-labelledby":this.dialogLabelId,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd},(0,i.h)("div",{class:"duet-date__dialog-content",onKeyDown:this.handleEscKey,ref:e=>this.dialogWrapperNode=e},(0,i.h)("div",{class:"duet-date__vhidden duet-date__instructions","aria-live":"polite"},this.localization.keyboardInstruction),(0,i.h)("div",{class:"duet-date__mobile",onFocusin:this.disableActiveFocus},(0,i.h)("label",{class:"duet-date__mobile-heading"},this.localization.calendarHeading),(0,i.h)("button",{class:"duet-date__close",ref:e=>this.firstFocusableElement=e,onKeyDown:this.handleFirstFocusableKeydown,onClick:()=>this.hide(),type:"button"},(0,i.h)("svg",{"aria-hidden":"true",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24"},(0,i.h)("path",{d:"M0 0h24v24H0V0z",fill:"none"}),(0,i.h)("path",{d:"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z"})),(0,i.h)("span",{class:"duet-date__vhidden"},this.localization.closeLabel))),(0,i.h)("div",{class:"duet-date__header",onFocusin:this.disableActiveFocus},(0,i.h)("div",null,(0,i.h)("h2",{id:this.dialogLabelId,class:"duet-date__vhidden","aria-live":"polite","aria-atomic":"true"},this.localization.monthNames[o]," ",this.focusedDay.getFullYear()),(0,i.h)("label",{htmlFor:this.monthSelectId,class:"duet-date__vhidden"},this.localization.monthSelectLabel),(0,i.h)("div",{class:"duet-date__select"},(0,i.h)("select",{id:this.monthSelectId,class:"duet-date__select--month",ref:e=>this.monthSelectNode=e,onChange:this.handleMonthSelect},this.localization.monthNames.map(((e,t)=>(0,i.h)("option",{key:e,value:t,selected:t===o},e)))),(0,i.h)("div",{class:"duet-date__select-label","aria-hidden":"true"},(0,i.h)("span",null,this.localization.monthNamesShort[o]),(0,i.h)("svg",{fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24"},(0,i.h)("path",{d:"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z"})))),(0,i.h)("label",{htmlFor:this.yearSelectId,class:"duet-date__vhidden"},this.localization.yearSelectLabel),(0,i.h)("div",{class:"duet-date__select"},(0,i.h)("select",{id:this.yearSelectId,class:"duet-date__select--year",onChange:this.handleYearSelect},function(e,t){for(var a=[],i=e;i<=t;i++)a.push(i);return a}(c,u).map((e=>(0,i.h)("option",{key:e,selected:e===d},e)))),(0,i.h)("div",{class:"duet-date__select-label","aria-hidden":"true"},(0,i.h)("span",null,this.focusedDay.getFullYear()),(0,i.h)("svg",{fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24"},(0,i.h)("path",{d:"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z"}))))),(0,i.h)("div",{class:"duet-date__nav"},(0,i.h)("button",{class:"duet-date__prev",onClick:this.handlePreviousMonthClick,disabled:l,type:"button"},(0,i.h)("svg",{"aria-hidden":"true",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",width:"21",height:"21",viewBox:"0 0 24 24"},(0,i.h)("path",{d:"M14.71 15.88L10.83 12l3.88-3.88c.39-.39.39-1.02 0-1.41-.39-.39-1.02-.39-1.41 0L8.71 11.3c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .38-.39.39-1.03 0-1.42z"})),(0,i.h)("span",{class:"duet-date__vhidden"},this.localization.prevMonthLabel)),(0,i.h)("button",{class:"duet-date__next",onClick:this.handleNextMonthClick,disabled:h,type:"button"},(0,i.h)("svg",{"aria-hidden":"true",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",width:"21",height:"21",viewBox:"0 0 24 24"},(0,i.h)("path",{d:"M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41L10.7 17.3c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"})),(0,i.h)("span",{class:"duet-date__vhidden"},this.localization.nextMonthLabel)))),(0,i.h)(k,{dateFormatter:this.dateFormatShort,selectedDate:e,focusedDate:this.focusedDay,onDateSelect:this.handleDaySelect,onKeyboardNavigation:this.handleKeyboardNavigation,labelledById:this.dialogLabelId,localization:this.localization,firstDayOfWeek:this.firstDayOfWeek,focusedDayRef:this.processFocusedDayNode,min:s,max:r})))))}get element(){return(0,i.g)(this)}static get watchers(){return{localization:["createDateFormatters"]}}};O.style='.duet-date *,.duet-date *::before,.duet-date *::after{box-sizing:border-box;margin:0;width:auto}.duet-date{box-sizing:border-box;color:var(--duet-color-text);display:block;font-family:var(--duet-font);margin:0;position:relative;text-align:left;width:100%}.duet-date__input{-webkit-appearance:none;appearance:none;background:var(--duet-color-surface);border:1px solid var(--duet-color-text);border-radius:var(--duet-radius);color:var(--duet-color-text);float:none;font-family:var(--duet-font);font-size:100%;line-height:normal;padding:14px 60px 14px 14px;width:100%}.duet-date__input:focus{border-color:var(--duet-color-primary);box-shadow:0 0 0 1px var(--duet-color-primary);outline:0}.duet-date__input::-webkit-input-placeholder{color:var(--duet-color-placeholder);opacity:1}.duet-date__input:-moz-placeholder{color:var(--duet-color-placeholder);opacity:1}.duet-date__input:-ms-input-placeholder{color:var(--duet-color-placeholder)}.duet-date__input-wrapper{position:relative;width:100%}.duet-date__toggle{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:var(--duet-color-button);border:0;border-radius:0;border-bottom-right-radius:var(--duet-radius);border-top-right-radius:var(--duet-radius);box-shadow:inset 1px 0 0 rgba(0, 0, 0, 0.1);color:var(--duet-color-text);cursor:pointer;display:flex;height:calc(100% - 2px);justify-content:center;padding:0;position:absolute;right:1px;top:1px;user-select:none;width:48px;z-index:2}.duet-date__toggle:focus{box-shadow:0 0 0 2px var(--duet-color-primary);outline:0}.duet-date__toggle-icon{display:flex;flex-basis:100%;justify-content:center;align-items:center}.duet-date__dialog{display:flex;left:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;width:100%;will-change:transform, opacity, visibility;z-index:var(--duet-z-index)}@media (max-width: 35.9375em){.duet-date__dialog{background:var(--duet-color-overlay);bottom:0;position:fixed;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.duet-date__dialog.is-left{left:auto;right:0;width:auto}.duet-date__dialog.is-active{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.duet-date__dialog-content{background:var(--duet-color-surface);border:1px solid rgba(0, 0, 0, 0.1);border-radius:var(--duet-radius);box-shadow:0 4px 10px 0 rgba(0, 0, 0, 0.1);margin-left:auto;margin-top:8px;max-width:310px;min-width:290px;padding:16px 16px 20px;position:relative;transform:none;width:100%;z-index:var(--duet-z-index)}@media (max-width: 35.9375em){.duet-date__dialog-content{border:0;border-radius:0;border-top-left-radius:var(--duet-radius);border-top-right-radius:var(--duet-radius);bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active .duet-date__dialog-content{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.duet-date__table{border-collapse:collapse;border-spacing:0;color:var(--duet-color-text);font-size:1rem;font-weight:var(--duet-font-normal);line-height:1.25;text-align:center;width:100%}.duet-date__table-header{font-size:0.75rem;font-weight:var(--duet-font-bold);letter-spacing:1px;line-height:1.25;padding-bottom:8px;text-decoration:none;text-transform:uppercase}.duet-date__cell{text-align:center}.duet-date__day{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;color:var(--duet-color-text);cursor:pointer;display:inline-block;font-family:var(--duet-font);font-size:0.875rem;font-variant-numeric:tabular-nums;font-weight:var(--duet-font-normal);height:36px;line-height:1.25;padding:0 0 1px;position:relative;text-align:center;vertical-align:middle;width:36px;z-index:1}.duet-date__day.is-today{box-shadow:0 0 0 1px var(--duet-color-primary);position:relative;z-index:200}.duet-date__day:hover::before,.duet-date__day.is-today::before{background:var(--duet-color-primary);border-radius:50%;bottom:0;content:"";left:0;opacity:0.06;position:absolute;right:0;top:0}.duet-date__day[aria-pressed=true],.duet-date__day:focus{background:var(--duet-color-primary);box-shadow:none;color:var(--duet-color-text-active);outline:0}.duet-date__day:active{background:var(--duet-color-primary);box-shadow:0 0 5px var(--duet-color-primary);color:var(--duet-color-text-active);z-index:200}.duet-date__day:focus{box-shadow:0 0 5px var(--duet-color-primary);z-index:200}.duet-date__day.is-disabled{background:transparent;box-shadow:none;color:var(--duet-color-text);cursor:default;opacity:0.5}.duet-date__day.is-disabled::before{display:none}.duet-date__day.is-outside{background:var(--duet-color-button);box-shadow:none;color:var(--duet-color-text);cursor:default;opacity:0.6;pointer-events:none}.duet-date__day.is-outside::before{display:none}.duet-date__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.duet-date__nav{white-space:nowrap}.duet-date__prev,.duet-date__next{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:var(--duet-color-button);border:0;border-radius:50%;color:var(--duet-color-text);cursor:pointer;display:inline-flex;height:32px;justify-content:center;margin-left:8px;padding:0;transition:background-color 300ms ease;width:32px}@media (max-width: 35.9375em){.duet-date__prev,.duet-date__next{height:40px;width:40px}}.duet-date__prev:focus,.duet-date__next:focus{box-shadow:0 0 0 2px var(--duet-color-primary);outline:0}.duet-date__prev:active:focus,.duet-date__next:active:focus{box-shadow:none}.duet-date__prev:disabled,.duet-date__next:disabled{cursor:default;opacity:0.5}.duet-date__prev svg,.duet-date__next svg{margin:0 auto}.duet-date__select{display:inline-flex;margin-top:4px;position:relative}.duet-date__select span{margin-right:4px}.duet-date__select select{cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:2}.duet-date__select select:focus+.duet-date__select-label{box-shadow:0 0 0 2px var(--duet-color-primary)}.duet-date__select-label{align-items:center;border-radius:var(--duet-radius);color:var(--duet-color-text);display:flex;font-size:1.25rem;font-weight:var(--duet-font-bold);line-height:1.25;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:1}.duet-date__select-label svg{width:16px;height:16px}.duet-date__mobile{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.duet-date__mobile{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-8px;top:-8px;width:auto}}.duet-date__mobile-heading{display:inline-block;font-weight:var(--duet-font-bold);max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.duet-date__mobile-heading{display:none}}.duet-date__close{-webkit-appearance:none;align-items:center;appearance:none;background:var(--duet-color-button);border:0;border-radius:50%;color:var(--duet-color-text);cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;width:24px}@media (min-width: 36em){.duet-date__close{opacity:0}}.duet-date__close:focus{box-shadow:0 0 0 2px var(--duet-color-primary);outline:none}@media (min-width: 36em){.duet-date__close:focus{opacity:1}}.duet-date__close svg{margin:0 auto}.duet-date__vhidden{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}';const W=class{constructor(e){(0,i.r)(this,e),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const e=this.decorative?{"aria-hidden":"true"}:{},t=this.focusable?{tabindex:0}:{};return(0,i.h)(i.a,null,(0,i.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},e,t),this.accessibilityTitle&&(0,i.h)("title",null,this.accessibilityTitle),(0,i.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,i.h)("g",null,(0,i.h)("path",{d:"M17.5 3.5v-2H16v2H8v-2H6.5v2H2V19a3 3 0 003 3h14a3 3 0 003-3V3.5h-4.5zm-10 14a1 1 0 110-2 1 1 0 010 2zm0-4.5a1 1 0 110-2 1 1 0 010 2zm4.5 4.5a1 1 0 110-2 1 1 0 010 2zm0-4.5a1 1 0 110-2 1 1 0 010 2zm4.5 4.5a1 1 0 110-2 1 1 0 010 2zm0-4.5a1 1 0 110-2 1 1 0 010 2z","fill-rule":"evenodd"})):(0,i.h)("g",null,(0,i.h)("path",{d:"M8 1.5v2h8v-2h1.5v2H22V19a3.01 3.01 0 01-2.824 2.995L19 22H5a3.01 3.01 0 01-2.995-2.824L2 19V3.5h4.5v-2H8zM20.5 8h-17v11c0 .8.576 1.423 1.352 1.493L5 20.5h14c.8 0 1.423-.576 1.493-1.352L20.5 19V8zm-13 7.5a1 1 0 110 2 1 1 0 010-2zm4.5 0a1 1 0 110 2 1 1 0 010-2zm4.5 0a1 1 0 110 2 1 1 0 010-2zm-9-4.5a1 1 0 110 2 1 1 0 010-2zm4.5 0a1 1 0 110 2 1 1 0 010-2zm4.5 0a1 1 0 110 2 1 1 0 010-2z","fill-rule":"evenodd"})))))}get hostElement(){return(0,i.g)(this)}};W.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4878.0a7c47ae.js b/pr-preview/pr-186/assets/js/4878.0a7c47ae.js new file mode 100644 index 000000000..b8fc5b949 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4878.0a7c47ae.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4878; +exports.ids = [4878]; +exports.modules = { + +/***/ 24878: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_content_international: () => (/* binding */ ContentInternational) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const ContentInternational = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11A11 11 0 0012 1zm8.4 9.75h-1.445a15.205 15.205 0 00-1.185-4.97 8.465 8.465 0 012.63 4.97zM10.75 3.9v6.85H7.56a11.67 11.67 0 011.6-5.185A5.16 5.16 0 0110.75 3.9zm0 9.35v6.85a5.16 5.16 0 01-1.59-1.665 11.67 11.67 0 01-1.6-5.185h3.19zm2.5 6.85v-6.85h3.19a11.67 11.67 0 01-1.6 5.185 5.16 5.16 0 01-1.59 1.665zm0-9.35V3.9a5.16 5.16 0 011.59 1.665 11.67 11.67 0 011.6 5.185h-3.19zm-7-4.97a15.205 15.205 0 00-1.185 4.97h-1.46A8.43 8.43 0 016.23 5.78h.02zm-2.645 7.47h1.44a15.205 15.205 0 001.185 4.97 8.43 8.43 0 01-2.625-4.97zm14.165 4.97a15.205 15.205 0 001.185-4.97H20.4a8.465 8.465 0 01-2.63 4.97z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("defs", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M12 1C5.95 1 1 5.9 1 12s4.9 11 11 11 11-4.9 11-11S18.1 1 12 1zm9.45 10.25h-2.5c-.15-3-1.05-5.7-2.4-7.55 2.75 1.5 4.65 4.3 4.9 7.55zM11.25 2.6v8.65H6.5c.25-4.4 2.25-8.05 4.75-8.65zm0 10.15v8.65c-2.5-.6-4.5-4.25-4.75-8.65h4.75zm1.5 8.65v-8.65h4.75c-.25 4.4-2.25 8.05-4.75 8.65zm0-10.15V2.6c2.5.6 4.5 4.25 4.75 8.65h-4.75zM7.45 3.7c-1.35 1.85-2.3 4.55-2.4 7.55h-2.5a9.426 9.426 0 014.9-7.55zm-4.9 9.05h2.5c.15 3 1.05 5.7 2.4 7.55a9.426 9.426 0 01-4.9-7.55zM16.6 20.3c1.35-1.85 2.3-4.55 2.4-7.55h2.5a9.66 9.66 0 01-4.9 7.55z", id: "a" })), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("use", { xlinkHref: "#a", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +ContentInternational.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4891.d3691da1.js b/pr-preview/pr-186/assets/js/4891.d3691da1.js new file mode 100644 index 000000000..e33b75fd7 --- /dev/null +++ b/pr-preview/pr-186/assets/js/4891.d3691da1.js @@ -0,0 +1,54 @@ +"use strict"; +exports.id = 4891; +exports.ids = [4891]; +exports.modules = { + +/***/ 44891: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_icon_communication_save_emails_to_drafts: () => (/* binding */ CommunicationSaveEmailsToDrafts) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); + + +const iconCss = "scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"; + +const CommunicationSaveEmailsToDrafts = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The width and height in pixels */ + this.size = 24; + /** (optional) Sets the icon color via the `fill` attribute */ + this.fill = 'currentColor'; + /** (optional) Alias for `fill` */ + this.color = 'currentColor'; + /** (optional) If `true`, the icon changes visually */ + this.selected = false; + /** (optional) If `true` the SVG element will get `aria-hidden="true"` */ + this.decorative = false; + /** (optional) If `true` the icon can receive focus */ + this.focusable = false; + } + connectedCallback() { + if (!this.hostElement.hasAttribute('styles')) { + this.hostElement.style.display = 'inline-flex'; + } + } + render() { + const ariaHidden = this.decorative ? { 'aria-hidden': 'true' } : {}; + const focusable = this.focusable ? { tabindex: 0 } : {}; + return ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)(_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.a, null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("svg", Object.assign({ class: "scale-icon", xmlns: "http://www.w3.org/2000/svg", width: this.size, height: this.size, viewBox: "0 0 24 24" }, ariaHidden, focusable), this.accessibilityTitle && (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("title", null, this.accessibilityTitle), (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", { fill: ((this.fill === 'currentColor') ? this.color : this.fill) }, this.selected ? ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75 11.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm0 1.5A4.756 4.756 0 0013 17.75a4.756 4.756 0 004.75 4.75 4.756 4.756 0 004.75-4.75A4.756 4.756 0 0017.75 13zm0 1.5a.75.75 0 01.743.648l.007.102v2.25h1.833l-2.583 3.945-2.582-3.945H17v-2.25a.75.75 0 01.75-.75zM19 5.87v4.24a7.798 7.798 0 00-1.25-.11c-3.935 0-7.192 2.947-7.684 6.75l-.028.25h-7.56a2.475 2.475 0 01-2.473-2.308L0 14.529V5.87l7.31 6.244a3.366 3.366 0 004.21.136l.17-.136L19 5.87zM19 3v.896l-8.284 7.078c-.677.579-1.754.579-2.431 0L0 3.896V3h19z", "fill-rule": "evenodd" }))) : ((0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("g", null, (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.h)("path", { d: "M17.75 11.5a6.25 6.25 0 110 12.5 6.25 6.25 0 010-12.5zm0 3a.75.75 0 00-.743.649L17 15.25v2.25h-1.833l2.583 3.945 2.582-3.945H18.5v-2.25a.75.75 0 00-.75-.75zM19 3v7.11a7.808 7.808 0 00-1.25-.11l-.25.013V7.152l-5.81 4.963a3.36 3.36 0 01-4.185.154l-.195-.154L1.5 7.152v7.378c0 .496.378.908.864.964l.114.007h7.856a7.71 7.71 0 00-.25 1.115l-.046.385h-7.56a2.475 2.475 0 01-2.473-2.309L0 14.53V3h19zm-1.5 1.5h-16v.679l6.784 5.795c.661.564 1.6.6 2.296.106l.135-.106L17.5 5.179V4.5z", "fill-rule": "evenodd" }))))))); + } + get hostElement() { return (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.g)(this); } +}; +CommunicationSaveEmailsToDrafts.style = iconCss; + + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/48917.e85dd2de.js b/pr-preview/pr-186/assets/js/48917.e85dd2de.js new file mode 100644 index 000000000..68220acae --- /dev/null +++ b/pr-preview/pr-186/assets/js/48917.e85dd2de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[48917],{48917:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_device_device_ethernet:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},(this.selected,(0,s.h)("g",null,(0,s.h)("path",{d:"M18 3v6.5h-3l-5-1.511V7H6.75a3.254 3.254 0 00-3.25 3.25c0 1.73 1.36 3.15 3.066 3.245l.184.005H14c2.206 0 4 1.794 4 4a4.005 4.005 0 01-3.8 3.995l-.2.005H3.75a.75.75 0 01-.102-1.493L3.75 20H14c1.379 0 2.5-1.122 2.5-2.5a2.503 2.503 0 00-2.336-2.495L14 15H6.75A4.756 4.756 0 012 10.25a4.756 4.756 0 014.533-4.745L6.75 5.5H10v-.989L15 3h3zm4 1v4.5h-2.5V4H22z","fill-rule":"evenodd"}))))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/49087cea.f1313800.js b/pr-preview/pr-186/assets/js/49087cea.f1313800.js new file mode 100644 index 000000000..992adfa78 --- /dev/null +++ b/pr-preview/pr-186/assets/js/49087cea.f1313800.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[77534],{81898:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var i=n(74848),r=n(28453);const s={id:"Security",title:"Security"},o="Security",c={id:"blueprints/by-use-case/security/Security",title:"Security",description:"In this category, you can find guidance for implementing robust security solutions on Open Telekom Cloud. Topics include identity and access management, data encryption, network security, and compliance frameworks. Here are also provided strategies for safeguarding applications, securing workloads, and ensuring regulatory compliance, all while maintaining a strong security posture across cloud environments.",source:"@site/docs/blueprints/by-use-case/security/index.md",sourceDirName:"blueprints/by-use-case/security",slug:"/blueprints/by-use-case/security/",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/",draft:!1,unlisted:!1,editUrl:"https://github.com/opentelekomcloud/docs-next/tree/main/docs/blueprints/by-use-case/security/index.md",tags:[],version:"current",frontMatter:{id:"Security",title:"Security"},sidebar:"blueprintsSidebar",previous:{title:"CCE Logging with Grafana Loki & Promtail",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki"},next:{title:"Authentik",permalink:"/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik"}},a={},u=[];function l(e){const t={h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"security",children:"Security"}),"\n",(0,i.jsx)(t.p,{children:"In this category, you can find guidance for implementing robust security solutions on Open Telekom Cloud. Topics include identity and access management, data encryption, network security, and compliance frameworks. Here are also provided strategies for safeguarding applications, securing workloads, and ensuring regulatory compliance, all while maintaining a strong security posture across cloud environments."})]})}function d(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>c});var i=n(96540);const r={},s=i.createContext(r);function o(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/49304.357ef8ad.js b/pr-preview/pr-186/assets/js/49304.357ef8ad.js new file mode 100644 index 000000000..3607e4110 --- /dev/null +++ b/pr-preview/pr-186/assets/js/49304.357ef8ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_next=self.webpackChunkdocs_next||[]).push([[49304],{49304:(t,e,i)=>{i.r(e),i.d(e,{scale_icon_content_credit_card:()=>l});var s=i(90936);const l=class{constructor(t){(0,s.r)(this,t),this.size=24,this.fill="currentColor",this.color="currentColor",this.selected=!1,this.decorative=!1,this.focusable=!1}connectedCallback(){this.hostElement.hasAttribute("styles")||(this.hostElement.style.display="inline-flex")}render(){const t=this.decorative?{"aria-hidden":"true"}:{},e=this.focusable?{tabindex:0}:{};return(0,s.h)(s.a,null,(0,s.h)("svg",Object.assign({class:"scale-icon",xmlns:"http://www.w3.org/2000/svg",width:this.size,height:this.size,viewBox:"0 0 24 24"},t,e),this.accessibilityTitle&&(0,s.h)("title",null,this.accessibilityTitle),(0,s.h)("g",{fill:"currentColor"===this.fill?this.color:this.fill},this.selected?(0,s.h)("g",null,(0,s.h)("path",{d:"M23.5 11v6.5a3 3 0 01-3 3h-17a3 3 0 01-3-3V11h23zm-3-7.5a3 3 0 013 3V8H.5V6.5a3 3 0 013-3z","fill-rule":"evenodd"})):(0,s.h)("g",null,(0,s.h)("path",{d:"M20.5 3.5h-17c-1.655 0-3 1.345-3 3v11c0 1.655 1.345 3 3 3h17c1.655 0 3-1.345 3-3v-11c0-1.655-1.345-3-3-3zm1.5 14c0 .825-.675 1.5-1.5 1.5h-17c-.825 0-1.5-.675-1.5-1.5V11h20v6.5zM22 8H2V6.5C2 5.675 2.675 5 3.5 5h17c.825 0 1.5.675 1.5 1.5V8z","fill-rule":"evenodd"})))))}get hostElement(){return(0,s.g)(this)}};l.style="scale-icon{--display:inline-flex;--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);display:var(--display)}scale-icon path{transition:var(--transition)}@media screen and (forced-colors: active), (-ms-high-contrast: active){scale-icon svg,.scale-icon{color:white;stroke:white}}"}}]); \ No newline at end of file diff --git a/pr-preview/pr-186/assets/js/4931.32137098.js b/pr-preview/pr-186/assets/js/4931.32137098.js new file mode 100644 index 000000000..1911beb3f --- /dev/null +++ b/pr-preview/pr-186/assets/js/4931.32137098.js @@ -0,0 +1,395 @@ +"use strict"; +exports.id = 4931; +exports.ids = [4931]; +exports.modules = { + +/***/ 88114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ c: () => (/* binding */ classnames) +/* harmony export */ }); +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var classnames = createCommonjsModule(function (module) { +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else { + window.classNames = classNames; + } +}()); +}); + + + + +/***/ }), + +/***/ 4931: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ scale_button: () => (/* binding */ Button), +/* harmony export */ scale_icon: () => (/* binding */ Icon) +/* harmony export */ }); +/* harmony import */ var _index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90936); +/* harmony import */ var _index_713f92a5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88114); +/* harmony import */ var _utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91779); + + + + +const buttonCss = ":host{--width:auto;--spacing-x-right:var(--telekom-spacing-composition-space-07);--spacing-x-left:var(--telekom-spacing-composition-space-07);--spacing-x-icon-only:var(--telekom-spacing-composition-space-05);--min-height:var(--telekom-spacing-composition-space-13);--min-width:var(--telekom-spacing-composition-space-13);--radius:var(--telekom-radius-standard);--transition:all var(--telekom-motion-duration-transition)\n var(--telekom-motion-easing-standard);--color-focus:var(--telekom-color-functional-focus-standard);--font-weight:var(--telekom-typography-font-weight-bold);--font-size:var(--telekom-typography-font-size-body);--line-height:var(--telekom-typography-line-spacing-tight);--spacing-icon-x:var(--telekom-spacing-composition-space-04);--vertical-align:middle;--font-size-small:var(--telekom-typography-font-size-caption);--line-height-small:1.125rem;--min-height-small:var(--telekom-spacing-composition-space-10);--spacing-x-right-small:var(--telekom-spacing-composition-space-06);--spacing-x-left-small:var(--telekom-spacing-composition-space-06);--spacing-x-icon-only-small:var(--telekom-spacing-composition-space-00);--spacing-icon-x-small:var(--telekom-spacing-composition-space-03);--radius-primary:var(--radius);--background-primary:var(--telekom-color-primary-standard);--background-primary-hover:var(--telekom-color-primary-hovered);--background-primary-active:var(--telekom-color-primary-pressed);--background-primary-disabled:var(--telekom-color-ui-disabled);--color-primary:var(--telekom-color-text-and-icon-white-standard);--color-primary-disabled:var(--telekom-color-text-and-icon-disabled);--radius-secondary:var(--radius);--border-width-secondary:var(--telekom-spacing-composition-space-01);--background-secondary:transparent;--color-secondary:var(--telekom-color-text-and-icon-standard);--color-secondary-hover:var(--telekom-color-text-and-icon-standard);--color-secondary-active:var(--telekom-color-text-and-icon-standard);--color-secondary-disabled:var(--telekom-color-text-and-icon-disabled);--background-secondary:var(--telekom-color-ui-state-fill-standard);--background-secondary-hover:var(--telekom-color-ui-state-fill-hovered);--background-secondary-active:var(--telekom-color-ui-state-fill-pressed);--background-secondary-disabled:none;--border-secondary:var(--telekom-color-ui-border-standard);--border-secondary-hover:var(--telekom-color-ui-border-hovered);--border-secondary-active:var(--telekom-color-ui-border-pressed);--border-secondary-focus:var(--telekom-color-functional-focus-standard);--border-secondary-white:var(--telekom-color-ui-white);--color-secondary-white:var(--telekom-color-ui-white);--background-secondary-white-hover:var(\n --telekom-color-ui-state-fill-hovered-inverted\n );--background-secondary-white-active:var(\n --telekom-color-ui-state-fill-pressed-inverted\n );--secondary-white-opacity:0.5;--radius-ghost:var(--radius);--border-width-ghost:var(--telekom-spacing-composition-space-01);--spacing-x-ghost:var(--telekom-spacing-composition-space-04);--color-ghost:var(--telekom-color-text-and-icon-link-standard);--color-ghost-hover:var(--telekom-color-text-and-icon-link-hovered);--color-ghost-active:var(--telekom-color-text-and-icon-link-active);--color-ghost-disabled:var(--telekom-color-text-and-icon-disabled);--background-ghost-hover:var(--telekom-color-ui-state-fill-hovered);--background-ghost-active:var(--telekom-color-ui-state-fill-pressed);display:inline-block}.button{box-sizing:border-box;display:inline-flex;align-items:center;position:relative;border:0;outline:none;cursor:pointer;user-select:none;font-family:inherit;word-spacing:inherit;letter-spacing:inherit;justify-content:center;text-decoration:none;font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);min-height:var(--min-height);min-width:var(--min-width);width:var(--width);padding-left:var(--spacing-x-left);padding-right:var(--spacing-x-right);vertical-align:var(--vertical-align);transition:var(--transition)}.button.button--size-small{font-size:var(--font-size-small);line-height:var(--line-height-small);min-height:var(--min-height-small);padding-left:var(--spacing-x-left-small);padding-right:var(--spacing-x-right-small)}.button:not(.button--disabled):focus{outline:var(--telekom-line-weight-highlight) solid var(--color-focus);outline-offset:var(--telekom-spacing-composition-space-01)}.button.button--icon-before:not(.button--icon-only) ::slotted(*){margin-right:var(--spacing-icon-x);margin-left:calc(var(--spacing-icon-x-small) * -1);margin-top:var(--spacing-icon-x);margin-bottom:var(--spacing-icon-x)}.button.button--icon-before:not(.button--icon-only).button--size-small ::slotted(*){margin-right:var(--spacing-icon-x-small);margin-left:calc(var(--spacing-icon-x) * -0.5)}.button.button--icon-after:not(.button--icon-only) ::slotted(*){margin-left:var(--spacing-icon-x);margin-right:calc(var(--spacing-icon-x-small) * -1);margin-top:var(--spacing-icon-x);margin-bottom:var(--spacing-icon-x)}.button.button--icon-after:not(.button--icon-only).button--size-small ::slotted(*){margin-left:var(--spacing-icon-x-small);margin-right:calc(var(--spacing-icon-x) * -0.5)}.button:after{top:0;left:0;width:100%;border:var(--telekom-spacing-composition-space-01) solid transparent;height:100%;content:'';display:block;position:absolute;box-sizing:border-box;pointer-events:none;border-radius:var(--radius)}.button--icon-only{padding-left:var(--spacing-x-icon-only);padding-right:var(--spacing-x-icon-only)}.button--icon-only.button--variant-secondary{padding-left:calc(var(--spacing-x-icon-only) - 1px);padding-right:calc(var(--spacing-x-icon-only) - 1px)}.button--icon-only.button--size-small{padding-left:var(--spacing-x-icon-only-small);padding-right:var(--spacing-x-icon-only-small);min-width:32px}.button--icon-only.button--size-small.button--variant-secondary{padding-left:calc(var(--spacing-x-icon-only-small) - 1px);padding-right:calc(var(--spacing-x-icon-only-small) - 1px)}.button--disabled{cursor:not-allowed}.button--variant-primary{text-align:center;border-radius:var(--radius);background:var(--background-primary);color:var(--color-primary)}.button--variant-primary:not(.button--disabled):hover{background:var(--background-primary-hover)}.button--variant-primary:not(.button--disabled):active{background:var(--background-primary-active)}.button--disabled.button--variant-primary{background:var(--background-primary-disabled);color:var(--color-primary-disabled)}.button--variant-secondary{background:var(--background-secondary);text-align:center;border-radius:var(--radius-secondary);border:var(--border-width-secondary) solid currentColor;color:var(--color-secondary);background-color:var(--background-secondary);border-color:var(--border-secondary)}.button--variant-secondary:not(.button--disabled):hover{color:var(--color-secondary-hover);background-color:var(--background-secondary-hover);border-color:var(--border-secondary-hover)}.button--variant-secondary:not(.button--disabled):active{color:var(--color-secondary-active);background-color:var(--background-secondary-active);border-color:var(--border-secondary-active)}.button--disabled.button--variant-secondary{color:var(--color-secondary-disabled);background-color:var(--background-secondary-disabled)}.button--variant-ghost{background:transparent;text-align:center;border-radius:var(--radius-ghost);border:var(--border-width-ghost) solid transparent;color:var(--color-ghost);padding-left:var(--spacing-x-ghost);padding-right:var(--spacing-x-ghost)}.button--variant-ghost:not(.button--disabled):hover{color:var(--color-ghost-hover);background-color:var(--background-ghost-hover)}.button--variant-ghost:not(.button--disabled):active{color:var(--color-ghost-active);background-color:var(--background-ghost-active)}.button--disabled.button--variant-ghost{color:var(--color-ghost-disabled)}.button--variant-secondary-white{background:var(--background-secondary);text-align:center;border-radius:var(--radius-secondary);border:var(--border-width-secondary) solid currentColor;color:var(--color-secondary-white);background-color:var(--background-secondary);border-color:var(--border-secondary-white)}.button--variant-secondary-white:not(.button--disabled):hover{background-color:var(--background-secondary-white-hover)}.button--variant-secondary-white:not(.button--disabled):active{background-color:var(--background-secondary-white-active)}.button--disabled.button--variant-secondary-white{opacity:var(--secondary-white-opacity)}"; + +const DEFAULT_ICON_SIZE = 24; +const buttonIconSizeMap = { + small: 16, + large: 20, +}; +const Button = class { + constructor(hostRef) { + (0,_index_6d95a4bc_js__WEBPACK_IMPORTED_MODULE_0__.r)(this, hostRef); + /** (optional) The size of the button */ + this.size = 'large'; + /** (optional) Button variant */ + this.variant = 'primary'; + /** (optional) If `true`, the button is disabled */ + this.disabled = false; + /** (optional) Set to `true` when the button contains only an icon */ + this.iconOnly = false; + /** (optional) Icon position related to the label */ + this.iconPosition = 'before'; + /** (optional) The target attribute for the tag */ + this.target = '_self'; + /** + * Hack to make the button behave has expected when inside forms. + * @see https://github.com/ionic-team/ionic-framework/blob/master/core/src/components/button/button.tsx#L155-L175 + */ + this.handleClick = (ev) => { + // No need to check for `disabled` because disabled buttons won't emit clicks + if ((0,_utils_c4af5b47_js__WEBPACK_IMPORTED_MODULE_2__.h)(this.hostElement)) { + const parentForm = this.hostElement.closest('form'); + if (parentForm) { + ev.preventDefault(); + const fakeButton = document.createElement('button'); + if (this.type) { + fakeButton.type = this.type; + } + fakeButton.style.display = 'none'; + parentForm.appendChild(fakeButton); + fakeButton.click(); + fakeButton.remove(); + } + } + }; + } + /** + * Prevent clicks from being emitted from the host + * when the component is `disabled`. + */ + handleHostClick(event) { + if (this.disabled === true) { + event.stopImmediatePropagation(); + } + } + async setFocus() { + this.focusableElement.focus(); + } + componentDidLoad() { + this.setChildrenIconSize(); + } + connectedCallback() { + this.setIconPositionProp(); + this.appendEnterKeySubmitFallback(); + } + disconnectedCallback() { + this.cleanUpEnterKeySubmitFallback(); + } + /** + * In order for forms to be submitted with the Enter key + * there has to be a `button` or an `input[type="submit"]` in the form. + * Browsers do not take the Best PracticesBlueprints

Selectively Exposing CCE Workloads with a Dedicated Gateway

+

You can use APIG to selectively expose your workloads and microservices in Cloud Container Engine (CCE).

+

Expose CCE workloads using either of the following methods. Method 1 is recommended.

+
    +
  • +

    Method 1: Create a load balance channel on APIG to access pod IP addresses in CCE workloads, dynamically monitoring the changes of these addresses. When opening APIs of a containerized application, specify a load balance channel to access the backend service.

    +
  • +
  • +

    Method 2: Import a CCE workload to APIG. APIs and a load balance channel are generated and associated with each other to dynamically monitor pod IP address changes. Expose workloads and microservices in CCE using these APIs.

    +
  • +
+

Solution Design

+

Figure 1 Accessing CCE workloads (composed of pods) through APIG

+
advantages
    +
  • You do not need to set elastic IP addresses, reducing network bandwidth costs. +Workload addresses in CCE can be accessed through a load balance channel that is manually created or generated by importing a workload.
  • +
  • Workload pod addresses in CCE can be dynamically monitored and automatically updated by a load balance channel that is manually created or generated by importing a workload. +*CCE workloads can be released by tag for testing and version switching.
  • +
  • Multiple authentication modes keep access secure. +*Request throttling policies ensure secure access to your backend service. +Instead of direct access to containerized applications, APIG provides request throttling to ensure that your backend service runs stably.
  • +
  • Pod load balancing improves resource utilization and system reliability.
  • +
+
restrictions
    +
  • Only CCE Turbo clusters and CCE clusters using the VPC network model are supported.
  • +
  • The CCE cluster and your gateway must be in the same VPC or connected.
  • +
  • If you select a CCE cluster that uses the VPC network model, add the container CIDR block of the cluster in the Routes area of the gateway details page.
  • +
+

General Procedure

+

+
    +
  1. Prepare CCE workload) +Before opening a container workload with APIG, create a CCE cluster that uses the VPC network model or a Turbo cluster on the CCE console.
  2. +
  3. Open CCE workload +
      +
    • Method 1: Create a load balance channel on APIG to access pod addresses in the CCE workload.
    • +
    • Method 2: Import a CCE workload to APIG. APIs and a load balance channel are generated and associated with each other to access pod IP addresses in the workload.
    • +
    +
  4. +
  5. (Optional) Configure workload label for grayscale release +Grayscale release is a service release policy that gradually switches traffic from an early version to a later version by specifying the traffic distribution weight.
  6. +
+

Implementation

+

Preparing a CCE Workload

+
    +
  1. Create a cluster. +
      +
    1. Log in to the CCE console and buy a CCE standard or CCE Turbo cluster on the Clusters page. Select CCE Standard Cluster and set Network Model to VPC network.
    2. +
    3. After the cluster is created, record the container CIDR block.
    4. +
    5. Add this CIDR block in the Routes area of a dedicated gateway. +
        +
      1. Log in to the APIG console, and choose Gateways in the navigation pane.
      2. +
      3. Click the gateway name to go to the details page.
      4. +
      5. Add the container CIDR block in the Routes area.
      6. +
      +
    6. +
    +
  2. +
  3. Create a workload. +
      +
    1. Open a terminal and create the following workloads as Deployments:
    2. +
    +
  4. +
+
version1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: whoami-deployment-v1
labels:
app: deployment-demo
version: v1
spec:
replicas: 2
selector:
matchLabels:
app: deployment-demo
version: v1
template:
metadata:
labels:
app: deployment-demo
version: v1
spec:
containers:
- name: whoami
image: traefik/whoami
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: whoami-service-v1
spec:
selector:
app: deployment-demo
version: v1
ports:
- protocol: TCP
port: 80
targetPort: 80
+

and

+
version2.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: whoami-deployment-v2
labels:
app: deployment-demo
version: v2
spec:
replicas: 2
selector:
matchLabels:
app: deployment-demo
version: v2
template:
metadata:
labels:
app: deployment-demo
version: v2
spec:
containers:
- name: whoami
image: traefik/whoami
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: whoami-service-v2
spec:
selector:
app: deployment-demo
version: v2
ports:
- protocol: TCP
port: 80
targetPort: 80
+
    +
  1. Provision the manifest with kubectl:
  2. +
+
kubectl apply -f version1.yaml
kubectl apply -f version2.yaml
+

Method 1: Opening a CCE Workload by Creating a Load Balance Channel

+
    +
  1. Create a load balance channel. +
      +
    1. Go to the APIG console, and choose Gateways in the navigation pane.
    2. +
    3. Choose API Management -> API Policies.
    4. +
    5. On the Load Balance Channels tab, click Create Load Balance Channel. +
        +
      1. Set the basic information.
      2. +
      +
    6. +
    +
  2. +
+

Table 1: Basic information parameters

+
ParameterDescription
NameEnter a name that conforms to specific rules to facilitate search. In this example, enter VPC_demo .
PortContainer port of a workload for opening services. Set this parameter to 80 , which is the default HTTP port.
Routing AlgorithmSelect WRR . This algorithm will be used to forward requests to each of the cloud servers you select in the order of server weight.
TypeSelect Microservice
+
    +
  1. +

    Configure microservice information.

    +
  2. +
+

Table 2 Microservice configuration

+
ParameterDescription
Microservice TypeCloud Container Engine (CCE) is always selected.
ClusterSelect the created cluster.
NamespaceSelect a namespace in the cluster. In this example, select default.
Workload TypeSelect Deployment. This parameter must be the same as the type of the created workload.
Service Label KeySelect the pod label app of the created workload.
Service Label ValueSelect the label value deployment-demo.
+
    +
  1. +

    Configure a server group.

    +
  2. +
+

Table 3 Server group configuration

+
ParameterDescription
Server Group NameEnter server_group_v1 .
WeightEnter 1 .
Backend Service PortEnter 80 . This must be the same as the container port in the workload.
DescriptionEnter "Server group with version v1".
TagSelect the pod label version=v1 of the created workload.
+
    +
  1. +

    Configure health check.

    +
  2. +
+

Table 4 Health check configuration

+
ParameterDescription
ProtocolDefault: TCP .
Check PortBackend server port in the channel.
Healthy thresholdDefault: 2 . This is the number of consecutive successful checks required for a cloud server to be considered healthy.
Unhealthy ThresholdDefault: 5 . This is the number of consecutive failed checks required for a cloud server to be considered unhealthy.
Timeout (s)Default: 5 . This is the timeout used to determine whether a health check has failed.
Interval (s)Default: 10 . This is the interval between consecutive checks.
+
    +
  1. +

    Click Finish.

    +

    In the load balance channel list, click a channel name to view details.

    +
  2. +
  3. +

    Open an API.

    +
      +
    1. Create an API group. +
        +
      1. Choose API Management -> API Groups.
      2. +
      3. Click Create API Group, and choose Create Directly.
      4. +
      5. Configure group information and click OK.
      6. +
      +
    2. +
    3. Create an API and bind the preceding load balance channel to it. +
        +
      1. Click the group name to go to the details page. On the APIs tab, choose Create API -> Create API.
      2. +
      3. Configure frontend information and click Next.
      4. +
      +
    4. +
    +
  4. +
+

Table 5 Frontend configuration

+
ParameterDescription
GroupSelect the preceding API group.
URLMethod : Request method of the API. Set this parameter to ANY.
ProtocolRequest protocol of the API. Set this parameter to HTTPS .
Subdomain NameThe system automatically allocates a subdomain name to each API group for internal testing. The subdomain name can be accessed 1000 times a day.
PathPath for requesting the API.
Gateway ResponseSelect a response to be displayed if the gateway fails to process an API request. Default: default.
Authentication ModeAPI authentication mode. Select None.
+
danger

Authentication Mode None is not recommended for actual services. All users will be granted access to the API.

+
    +
  1. +

    Configure backend information and click Next.

    +
  2. +
+

Table 6 Parameters for defining an HTTP/HTTPS backend service

+
ParameterDescription
URLMethod : Request method of the API. Set this parameter to ANY.
ProtocolSet this parameter to HTTP.
Load Balance ChannelSelect the created channel.
PathPath of the backend service.
+
    +
  1. +

    Define the response and click Finish.

    +
      +
    1. +

      Debug the API.

      +

      On the APIs tab, click Debug. Click the Debug button in red background. If the status code 200 is returned in the response result, the debugging is successful. Then go to the next step. Otherwise, rectify the fault by following the instructions provided in Error Codes.

      +
    2. +
    3. +

      Publish the API.

      +

      On the APIs tab, click Publish Latest Version, retain the default option RELEASE, and click OK. When the exclamation mark in the upper left of the Publish button disappears, the publishing is successful. Then go to the next step. Otherwise, rectify the error indicated in the error message.

      +
    4. +
    +
  2. +
  3. +

    Call the API.

    +
      +
    1. +

      Bind independent domain names to the group of this API.

      +

      On the group details page, click the Group Information tab. The debugging domain name is only used for development and testing and can be accessed 1000 times a day. Bind independent domain names to expose APIs in the group.

      +

      Click Bind Independent Domain Name to bind registered public domain names. For details about how to bind a domain name, see Binding a Domain Name.

      +
    2. +
    3. +

      Copy the URL of the API.

      +

      On the APIs tab, copy the API URL. Open a browser and enter the URL. When the defined success response is displayed, the invocation is successful.

      +

      Figure 1 Copying the URL

      +

      Now, the CCE workload is opened by creating a load balance channel.

      +
    4. +
    +
  4. +
+

Method 2: Opening a CCE Workload by Importing It

+
    +
  1. Import a CCE workload. +
      +
    1. Go to the APIG console, and choose Gateways in the navigation pane.
    2. +
    3. Choose API Management -> API Groups.
    4. +
    5. Choose Create API Group -> Import CCE Workload. +
        +
      1. Enter information about the CCE workload to import.
      2. +
      +
    6. +
    +
  2. +
+

Table 7 Workload information

+
ParameterDescription
ClusterSelect the created cluster.
NamespaceSelect a namespace in the cluster. In this example, select default.
Workload TypeSelect Deployment . This parameter must be the same as the type of the created workload.
Service Label KeySelect the pod label app and its value deployment-demo of the created workload.
Service Label Value
TagAnother pod label version=v1 of the workload is automatically selected.
+
    +
  1. +

    Configure API information.

    +
  2. +
+

Table 8 API information

+
ParameterDescription
Request PathAPI request path for prefix match. Default: /. In this example, retain the default value.
PortEnter 80. This must be the same as the container port in the workload.
Authentication ModeDefault: None.
CORSDisabled by default.
Timeout (ms)Backend timeout. Default: 5000.
+
    +
  1. +

    Click OK. The CCE workload is imported, with an API group, API, and load balance channel generated.

    +
  2. +
  3. +

    View the generated API and load balance channel.

    +
      +
    1. View the generated API. +
        +
      1. Click the API group name, and then view the API name, request method, and publishing status on the APIs tab.
      2. +
      3. Click the Backend Configuration tab and view the bound load balance channel.
      4. +
      +
    2. +
    3. View the generated load balance channel. +
        +
      1. Choose API Management -> API Policies.
      2. +
      3. On the Load Balance Channels tab, click the channel name to view details.
      4. +
      +
    4. +
    5. Check that this load balance channel is the one bound to the API, and then go to the next step. If it is not, repeat the steps from the beginning.
    6. +
    +
  4. +
  5. +

    Open the API.

    +

    Since importing a CCE workload already creates an API group and API, you only need to publish the API in an environment.

    +
      +
    1. +

      Debug the API.

      +

      On the APIs tab, click Debug. Click the Debug button in red background. If the status code 200 is returned in the response result, the debugging is successful. Then go to the next step. Otherwise, rectify the fault by following the instructions provided in Error Codes.

      +
    2. +
    3. +

      Publish the API.

      +

      On the APIs tab, click Publish Latest Version, retain the default option RELEASE, and click OK. When the exclamation mark in the upper left of the Publish button disappears, the publishing is successful. Then go to the next step.

      +
    4. +
    +
  6. +
  7. +

    Call the API.

    +
      +
    1. +

      Bind independent domain names to the group of this API.

      +

      On the group details page, click the Group Information tab. The debugging domain name is only used for development and testing and can be accessed 1000 times a day. Bind independent domain names to expose APIs in the group.

      +

      Click Bind Independent Domain Name to bind registered public domain names. For details about how to bind a domain name, see Binding a Domain Name.

      +
    2. +
    3. +

      Copy the URL of the API.

      +

      On the APIs tab, copy the API URL. Open a browser and enter the URL. When the defined success response is displayed, the invocation is successful.

      +

      Figure 2 Copying the URL

      +

      Now, the CCE workload has been opened by importing it.

      +
    4. +
    +
  8. +
+

(Optional) Configuring Workload Labels for Grayscale Release

+

Grayscale release is a service release policy that gradually switches traffic from an early version to a later version by specifying the traffic distribution weight. Services are verified during release and upgrade. If a later version meets the expectation, you can increase the traffic percentage of this version and decrease that of the early version. Repeat this process until a later version accounts for 100% and an early version is down to 0. Then the traffic is successfully switched to the later version.

+

Figure 3 Grayscale release principle
+

+

CCE workloads are configured using the pod label selector for grayscale release. You can quickly roll out and verify new features, and switch servers for traffic processing. For details, see Using Services to Implement Simple Grayscale Release and Blue-Green Deployment.

+

The following describes how to smoothly switch traffic from V1 to V2 through grayscale release.

+
    +
  1. +

    Create a workload, set a pod label with the same value as the app label of the preceding workload.

    +

    On the workload creation page, go to the Advanced Settings -> Labels and Annotations area, and set app=deployment-demo and version=v2. If you create a workload by importing a YAML file, add pod labels in this file.

    +
  2. +
  3. +

    For the server group with pod label version=v1, adjust the traffic weight.

    +
      +
    1. +

      On the APIG console, choose Gateways in the navigation pane.

      +
    2. +
    3. +

      Choose API Management -> API Policies.

      +
    4. +
    5. +

      On the Load Balance Channels tab, click the name of the created channel.

      +
    6. +
    7. +

      In the Backend Server Address area, click Modify.

      +
    8. +
    9. +

      Change the weight to 100, and click OK.

      +

      Weight is the percentage of traffic to be forwarded. All traffic will be forwarded to the pod IP addresses in server group server_group_v1.

      +
    10. +
    +
  4. +
  5. +

    Create a server group with pod label version=v2, then set the traffic weight.

    +
      +
    1. +

      In the Backend Server Address area, click Create Server Group.

      +

      Table 9 Server group configuration

      +
    2. +
    +
  6. +
+
ParameterDescription
Server Group NameEnter server_group_v2.
WeightEnter 1.
Backend Service PortEnter 80.
TagSelect pod label version=v2.
+
    +
  1. +

    Click OK.

    +
  2. +
  3. +

    Refresh the backend server addresses.

    +

    Refresh the page for the backend server addresses. The load balance channel automatically monitors the pod IP addresses of the workload and dynamically adds the addresses as backend server addresses. As shown in the following figure, tags app=deployment-demo and version=v2 automatically match the pod IP addresses (backend server addresses) of the workload.

    +

    Figure 4 Pod IP addresses automatically matched
    +

    +

    100 of 101 (server group weight of total weight) traffic is distributed to server_group_v1, and the remaining to the later version of server_group_v2.

    +

    Figure 5 Click Modify in the upper right of the page.
    +

    +
  4. +
  5. +

    Check that the new features released to V2 through grayscale release are running stably.

    +

    If the new version meets the expectation, go to 6. Otherwise, the new feature release fails.

    +
  6. +
  7. +

    Adjust the weights of server groups for different versions.

    +

    Gradually decrease the weight of server_group_v1 and increase that of server_group_v2. Repeat 5 to 6 until the weight of server_group_v1 becomes 0 and that of server_group_v2 reaches 100.

    +

    +

    As shown in the preceding figure, all requests are forwarded to server_group_v2. New features are switched from workload deployment-demo of version=v1 to deployment-demo2 of version=v2 through grayscale release. (You can adjust the traffic weight to meet service requirements.)

    +
  8. +
  9. +

    Delete the backend server group server_group_v1 of version=v1.

    +

    Now all traffic has been switched to the backend server group of version=v2. You can delete the server group of version=v1.

    +
      +
    1. +

      Go to the load balance channel details page on the APIG console, delete all IP addresses of the server group of version=v1 in the Backend Server Address area.

      +
    2. +
    3. +

      Click Delete on the right of this area to delete the server group of version=v1.

      +

      The backend server group server_group_v2 of version=v2 is kept.

      +
    4. +
    +
  10. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/application-services/distributed-message-service/migrating-kafka-services/index.html b/pr-preview/pr-186/docs/best-practices/application-services/distributed-message-service/migrating-kafka-services/index.html new file mode 100644 index 000000000..5301c08a3 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/application-services/distributed-message-service/migrating-kafka-services/index.html @@ -0,0 +1,229 @@ + + + + + +Migrating Kafka Services | Architecture Center + + + + + +

Migrating Kafka Services

+

This solution will demonstrate how you can migrate Kafka services to connect message producers and consumers to a new Kafka instance and can even migrate persisted message data to a new Kafka instance.

+

Kafka services can be migrated in the following two scenarios:

+
    +
  • +

    Migrating services to the cloud without downtime

    +

    Services that have high requirements on continuity must be smoothly +migrated to the cloud because they cannot afford a long downtime.

    +
  • +
  • +

    Re-deploying services in the cloud

    +

    A Kafka instance deployed within an AZ is not capable of cross-AZ +disaster recovery. For higher reliability, you can re-deploy +services to an instance that is deployed across AZs.

    +
  • +
+

Prerequisites

+
    +
  1. +

    Configure the network environment.

    +

    A Kafka instance can be accessed within a VPC or over a public +network. For public network access, the producer and consumer must +have public access permissions, and the following security group +rules must be configured:

    +
      +
    • Inbound: TCP/9094, 0.0.0.0/0 -> Access Kafka through the public network (without SSL encryption)
    • +
    • Inbound: TCP/9095, 0.0.0.0/0 -> Access Kafka through the public network (with SSL encryption)
    • +
    +
  2. +
  3. +

    Create a Kafka instance.

    +

    The specifications of the new instance cannot be lower than the +original specifications. For details, see Creating an Instance.

    +
  4. +
  5. +

    Create a topic.

    +

    Create a topic with the same configurations as the original Kafka +instance, including the topic name, number of replicas, number of +partitions, message aging time, and whether to enable synchronous +replication and flushing. For details, see Creating a Topic.

    +
  6. +
+

Migration Scheme 1: Migrating the Production First

+

Migrate the message production service to the new Kafka instance. After +migration, the original Kafka instance will no longer produce messages. +After all messages of the original Kafka instance are consumed, migrate +the message consumption service to the new Kafka instance to consume +messages of this instance.

+
    +
  1. Change the Kafka connection address of the producer to that of the +new Kafka instance.
  2. +
  3. Restart the production service so that the producer can send new +messages to the new Kafka instance.
  4. +
  5. Check the consumption progress of each consumer group in the +original Kafka instance until all data in the original Kafka +instance is consumed.
  6. +
  7. Change the Kafka connection addresses of the consumers to that of +the new Kafka instance.
  8. +
  9. Restart the consumption service so that consumers can consume +messages from the new Kafka instance.
  10. +
  11. Check whether consumers consume messages properly from the new Kafka +instance.
  12. +
  13. The migration is completed.
  14. +
+

This is a common migration scheme. It is simple and easy to control on +the service side. During the migration, the message sequence is ensured, +so this scheme is suitable for scenarios with strict requirements on +the message sequence. However, latency may occur because there is a +period when you have to wait for all data to be consumed.

+

Migration Scheme 2: Migrating the Production Later

+

Use multiple consumers for the consumption service. Some consume +messages from the original Kafka instance, and others consume messages +from the new Kafka instances. Then, migrate the production service to +the new Kafka instance so that all messages can be consumed in time.

+
    +
  1. +

    Start new consumer clients, set the Kafka connection addresses to +that of the new Kafka instance, and consume data from the new Kafka +instance.

    +
    note

    Original consumer clients must continue running. Messages are +consumed from both the original and new Kafka instances.

    +
  2. +
  3. +

    Change the Kafka connection address of the producer to that of the +new Kafka instance.

    +
  4. +
  5. +

    Restart the producer client to migrate the production service to the +new Kafka instance.

    +
  6. +
  7. +

    After the production service is migrated, check whether the +consumption service connected to the new Kafka instance is normal.

    +
  8. +
  9. +

    After all data in the original Kafka is consumed, close the original +consumption clients.

    +
  10. +
  11. +

    The migration is completed.

    +
  12. +
+

In this scheme, the migration process is controlled by services. For a +certain period of time, the consumption service consumes messages from +both the original and new Kafka instances. Before the migration, message +consumption from the new Kafka instance has already started, so there is +no latency. However, early on in the migration, data is consumed from +both the original and new Kafka instances, so the messages may not be +consumed in the order that they are produced. This scheme is suitable +for services that require low latency but do not require strict message +sequence.

+

How Do I Migrate Persisted Data Along with Services?

+

You can migrate consumed data from the original instance to a new +instance by using the open-source tool MirrorMaker. This +tool mirrors the original Kafka producer and consumer into new ones and +migrates data to the new Kafka instance. For details, see +Using MirrorMaker to Synchronize Data Across Clusters.

+
note

Each Open Telekom Cloud Kafka instance stores data in three +replicas. Therefore, the storage space of the new instance should be +three times that of the original single-replica message storage.

+

Using MirrorMaker to Synchronize Data Across Clusters

+

In the following scenarios, MirrorMaker can be used to synchronize data +between different Kafka clusters to ensure the availability and +reliability of the clusters:

+
    +
  • Backup and disaster recovery: An enterprise has multiple data +centers. To prevent service unavailability caused by a fault in one +data center, cluster data is synchronously backed up in multiple +data centers.
  • +
  • Cluster migration: As enterprises migrate services to the cloud, +data in on-premises clusters must be synchronized with that in cloud +clusters to ensure service continuity.
  • +
+

Solution Design

+

MirrorMaker can be used to mirror data from the source cluster to the +target cluster. As shown in figure below, +in essence, MirrorMaker first consumes data from the source cluster and +then produces the consumed data to the target cluster. For more +information about MirrorMaker, see Mirroring data between +clusters.

+

Figure 1 How MirrorMakerworks

+
Restrictions
    +
  • The IP addresses and port numbers of the nodes in the source cluster +cannot be the same as those of the nodes in the target cluster. +Otherwise, data will be replicated infinitely in a topic.
  • +
  • Use MirrorMaker to synchronize data between at least two clusters. +If there is only one cluster, data will be replicated infinitely in +a topic.
  • +
+

Installing and Configuring MirrorMaker

+
    +
  1. +

    Create an ECS that can communicate with the source and target +clusters. For details, see the ECS +documentation.

    +
  2. +
  3. +

    Log in to the ECS, install JDK, and add the following contents to +.bash_profile in the home directory to configure the +environment variables JAVA\_HOME and PATH. In this command, +/opt/java/jdk1.8.0_151 is the JDK installation path. Change it +to the path where you install JDK.

    +
    export JAVA_HOME=/opt/java/jdk1.8.0_151
    export PATH=$JAVA_HOME/bin:$PATH
    +

    Run the source .bash\_profile command for the modification to +take effect.

    +
    note

    Use Oracle JDK instead of ECS's default JDK (for example, OpenJDK), +because ECS's default JDK may not be suitable. Obtain Oracle JDK +1.8.111 or later from Oracle's official website.

    +
  4. +
  5. +

    Download the binary software package of Kafka 3.3.1.

    +
    wget https://archive.apache.org/dist/kafka/3.3.1/kafka_2.12-3.3.1.tgz
    +
  6. +
  7. +

    Decompress the binary software package.

    +
    tar -zxvf kafka_2.12-3.3.1.tgz
    +
  8. +
  9. +

    Go to the binary software package directory and specify the IP +addresses and ports of the source and target clusters and other +parameters in the connect-mirror-maker.properties configuration +file in the config directory.

    +
    connect-mirror-maker.properties
    # Specify two clusters.
    clusters = A, B
    A.bootstrap.servers = A_host1:A_port, A_host2:A_port, A_host3:A_port
    B.bootstrap.servers = B_host1:B_port, B_host2:B_port, B_host3:B_port

    # Specify the data synchronization direction. The data can be synchronized unidirectionally or bidirectionally.
    A->B.enabled = true

    # Specify the topics to be synchronized. Regular expressions are supported. By default, all topics are replicated, for example, foo-.*.
    A->B.topics = .*

    # If the following two configurations are enabled, clusters A and B replicate data with each other.
    #B->A.enabled = true
    #B->A.topics = .*

    # Specify the number of replicas. If multiple topics need to be synchronized and their replica quantities are different, create topics with the same name and replica quantity before starting MirrorMaker.
    replication.factor=3

    # Specify the consumer offset synchronization direction (unidirectionally or bidirectionally).
    A->B.sync.group.offsets.enabled=true

    ############################# Internal Topic Settings #############################
    # The replication factor for mm2 internal topics "heartbeats", "B.checkpoints.internal" and
    # "mm2-offset-syncs.B.internal"
    # In the test environment, the value can be 1. In the production environment, it is recommended that the value be greater than 1, for example, 3.
    checkpoints.topic.replication.factor=3
    heartbeats.topic.replication.factor=3
    offset-syncs.topic.replication.factor=3

    # The replication factor for connect internal topics "mm2-configs.B.internal", "mm2-offsets.B.internal" and
    # "mm2-status.B.internal"
    # In the test environment, the value can be 1. In the production environment, it is recommended that the value be greater than 1, for example, 3.
    offset.storage.replication.factor=3
    status.storage.replication.factor=3
    config.storage.replication.factor=3

    # customize as needed
    # replication.policy.separator = _
    # sync.topic.acls.enabled = false
    # emit.heartbeats.interval.seconds = 5
    +
  10. +
  11. +

    In the binary software package directory, start MirrorMaker to +synchronize data.

    +
    ./bin/connect-mirror-maker.sh config/connect-mirror-maker.properties
    +
  12. +
  13. +

    (Optional) If a topic is created in the source cluster after +MirrorMaker has been started, and the topic data needs to be +synchronized, restart MirrorMaker.

    +
    note

    To periodically synchronize new topics without restarting MirrorMaker. +refresh.topics.interval.seconds is mandatory. Other parameters are optional.

    +
  14. +
+

MirrorMaker Configuration Properties

+
ParameterDefault ValueDescription
sync.topic.configs.enabledtrueWhether to monitor the source cluster for configuration changes.
sync.topic.acls.enabledtrueWhether to monitor the source cluster for ACL changes.
emit.heartbeats.enabledtrueWhether to let the connector send heartbeats periodically.
emit.heartbeats.interval.seconds5 secondsHeartbeat frequency.
emit.checkpoints.enabledtrueWhether to let the connector periodically send the consumer offset information.
emit.checkpoints.interval.seconds5 secondsCheckpoint frequency.
refresh.topics.enabledtrueWhether to let the connector periodically check for new topics.
refresh.topics.interval.seconds5 secondsFrequency of checking for new topics in the source cluster.
refresh.groups.enabledtrueWhether to let the connector periodically check for new consumer groups.
refresh.groups.interval.seconds5 secondsFrequency of checking for new consumer groups in the source cluster.
replication.policy.classorg.apache.kafka.connect.mirror.DefaultReplicationPolicyUse LegacyReplicationPolicy to imitate MirrorMaker of an earlier version.
heartbeats.topic.retention.msOne dayUsed when heartbeat topics are created for the first time.
checkpoints.topic.retention.msOne dayUsed when checkpoint topics are created for the first time.
offset.syncs.topic.retention.msmax longUsed when offset sync topics are created for the first time.
+

Verifying Data Synchronization

+
    +
  1. +

    View the topic list in the target cluster to check whether there are +source topics.

    +
    note

    Topic names in the target cluster have a prefix (for example, +A.) added to the source topic name. This is a MirrorMaker 2 +configuration for preventing cyclic topic backup.

    +
  2. +
  3. +

    Produce and consume messages in the source cluster, view the +consumption progress in the target cluster, and check whether data +has been synchronized from the source cluster to the target cluster.

    +

    If the target cluster is a Open Telekom Cloud Kafka instance, view +the consumption progress on the Consumer Groups page.

    +
  4. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived/index.html b/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived/index.html new file mode 100644 index 000000000..53d4e5725 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalived/index.html @@ -0,0 +1,336 @@ + + + + + +Building Highly Available Web Server Clusters with Keepalived | Architecture Center + + + + + +

Building Highly Available Web Server Clusters with Keepalived

+

Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx.

+

Solution Design

+

A web cluster consists of multiple web servers and a load balancer. +Access requests will first be received by the load balancer, which then +distributes the requests to backend web servers based on the load +balancing policy.In this document, Nginx is used to implement load balancing.

+

Network Topology

+

The data planning could follow one of the implementations below:

+
No.ItemQuantitySpecification
1VPC1192.168.0.0/16
Subnet1192.168.0.0/24
2ECS21 vCPU, 1 GB, CentOS Stream release 9
IP address2ecs-HA1: 192.168.0.10 ecs-HA2: 192.168.0.20
3EIP180.158.xxx.xxx
Virtual IP address1192.168.0.100
+
    +
  • Configure the two ECSs in the same subnet to work in the active/standby mode using Keepalived.
  • +
  • Bind a single virtual IP address to the two ECSs.
  • +
  • Bind the virtual IP address to an EIP, then you can access the active and standby ECSs bound with the virtual IP address from the Internet.
  • +
+

Figure 1 Network topology

+
note
    +
  • Select a region based on your service requirements.
  • +
  • All cloud resources must be in the same region.
  • +
+

Procedure

+

The overall operation process is as follows:

+

Figure 2 Operation process

+

Creating the Cluster

+
    +
  1. +

    Create a VPC and a subnet.

    +
      +
    • Log in to the management console.
    • +
    • Click Service List. Under Networking, click Virtual Private Cloud.
    • +
    • Click Create VPC. +Set required parameters as prompted based on the following table:
    • +
    +
    ParameterExample Value
    Name (of the VPC)vpc-HA
    CIDR Block (of the VPC)192.168.0.0/16
    Name (of the subnet)subnet-HA
    CIDR Block (of the subnet)192.168.0.0/24
    +
      +
    • Click Create Now.
    • +
    +
  2. +
  3. +

    Apply for required cloud resources. +a. Create ECSs.

    +
      +
    1. Log in to the management console.
    2. +
    3. Click Service List. Under Computing, click Elastic Cloud Server.
    4. +
    5. Click Create ECS.
    6. +
    7. On the Create ECS page, set parameters as prompted. For details, see
    8. +
    9. Set the ECS name to ecs-HA1 and ecs-HA2.
    10. +
    +
    note

    In this example, no data disk is purchased. You can buy data +disks based on service requirements and ensure their service +data consistency.

    +
      +
    1. +

      (Optional) Configure security group rules to ensure that the +two ECSs can communicate with each other.

      +

      In this example, the two ECSs are in the same security group +and can communicate with each other through the internal +network by default. In this case, you do not need to +configure rules.

      +

      If two ECSs are in different security groups, you need to +add inbound security group rules for the two ECSs. For +details, see Enabling ECSs in Different Security Groups to +Communicate with Each Other Through an Internal +Network.

      +

      Figure 3 Add Inbound Rule +b. Assign an EIP.

      +
    2. +
    3. +

      Log in to the management console.

      +
    4. +
    5. +

      Click Service List. Under Network, click Elastic IP.

      +
    6. +
    7. +

      Click Assign EIP and set parameters as prompted. For +details, see +Table 1. +c. Assign a virtual IP address.

      +
    8. +
    9. +

      Log in to the management console.

      +
    10. +
    11. +

      Click Service List. Under Network, click Virtual +Private Cloud.

      +
    12. +
    13. +

      In the navigation pane on the left, click Subnets.

      +
    14. +
    15. +

      In the subnet list, locate the target subnet and click its +name.

      +
    16. +
    17. +

      On the IP Addresses tab page, click Assign Virtual IP +Address and set parameters as prompted.

      +
    18. +
    +
  4. +
  5. +

    Configure the ECSs. +a. Configure the ecs-HA1.

    +
      +
    1. +

      Bind EIP (80.158.xxx.xxx) to ecs-HA1.

      +
        +
      1. Log in to the management console.
      2. +
      3. Click Service List. Under Computing, click +Elastic Cloud Server.
      4. +
      5. In the ECS list, click the name of ecs-HA1.
      6. +
      7. Click the EIPs tab and then Bind EIP.
      8. +
      9. On the Bind EIP page, select a NIC and an EIP, and +click OK.
      10. +
      +
    2. +
    3. +

      Connect to ecs-HA1 using SSH and run the following command +to install the Nginx and Keepalived packages and related +dependency packages:

      +
      yum install nginx keepalived -y
      +
    4. +
    5. +

      Run the following command to edit the nginx +configuration file and save it:

      +
      **vim /etc/nginx/nginx.conf**
      +

      An example is provided as follows:

      +
      user root;
      worker_processes 1;
      #error_log logs/error.log;
      #error_log logs/error.log notice;
      #error_log logs/error.log info;
      #pid logs/nginx.pid;
      events {
      worker_connections 1024;
      }
      http {
      include mime.types;
      default_type application/octet-stream;
      #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      # '$status $body_bytes_sent "$http_referer" '
      # '"$http_user_agent" "$http_x_forwarded_for"';
      #access_log logs/access.log main;
      sendfile on;
      #tcp_nopush on;
      #keepalive_timeout 0;
      keepalive_timeout 65;
      #gzip on;
      server {
      listen 80;
      server_name localhost;
      #charset koi8-r;
      #access_log logs/host.access.log main;
      location / {
      root html;
      index index.html index.html;
      }
      #error_page 404 /404.html;
      # redirect server error pages to the static page /50x.html
      error_page 500 502 503 504 /50x.html;
      location = /50x.html {
      root html;
      }

      }
      }
      +
    6. +
    7. +

      Run the following command to edit the index.html file +and save the file:

      +
      vim /usr/share/nginx/html/index.html
      +

      An example is provided as follows:

      +
      Welcome to ECS-HA1
      +
    8. +
    9. +

      Run the following commands to set the automatic startup of +Nginx upon ECS startup:

      +
      systemctl enable nginx
      systemctl start nginx.service
      +
    10. +
    11. +

      Verify the access to a single Nginx node.

      +

      Figure 4 ECS-HA1 access verification

      +
    12. +
    13. +

      Run the following command to edit the keepalived +configuration file and save it:

      +
      vim /etc/keepalived/keepalived.conf
      +

      An example is provided as follows:

      +
      ! Configuration File for keepalived
      global_defs {
      router_id master-node
      }
      vrrp_script chk_http_port {
      script "/etc/keepalived/chk_nginx.sh"
      interval 2
      weight -5
      fall 2
      rise 1
      }
      vrrp_instance VI_1 {
      state MASTER
      interface ens3
      mcast_src_ip 192.168.0.10
      virtual_router_id 51
      priority 101
      advert_int 1
      authentication {
      auth_type PASS
      auth_pass 1111
      }
      unicast_src_ip 192.168.0.10
      virtual_ipaddress {
      192.168.0.100
      }
      track_script {
      chk_http_port
      }
      }
      +
    14. +
    15. +

      Run the following command to edit the nginx monitoring +script and save it:

      +
      vim /etc/keepalived/chk_nginx.sh
      +

      An example is provided as follows:

      +
      #!/bin/bash
      counter=$(ps -C nginx --no-heading|wc -l)
      if [ "${counter}" = "0" ]; then
      systemctl start nginx.service
      sleep 2
      counter=$(ps -C nginx --no-heading|wc -l)
      if [ "${counter}" = "0" ]; then
      systemctl stop keepalived.service
      fi
      fi
      +
      chmod +x /etc/keepalived/chk_nginx.sh adduser keepalived_script
      +
    16. +
    17. +

      Run the following commands to set the automatic startup of +Keepalived upon ECS startup:

      +
      systemctl enable keepalived
      systemctl start keepalived.service
      +
    18. +
    +

    b. Configure the ecs-HA2. +10. Unbind EIP (80.158.xxx.xxx) from ecs-HA1.

    +
      +
    1. +

      Log in to the management console.

      +
    2. +
    3. +

      Click Service List. Under Computing, click +Elastic Cloud Server.

      +
    4. +
    5. +

      In the ECS list, click the name of ecs-HA1.

      +
    6. +
    7. +

      Click the EIPs tab.

      +
    8. +
    9. +

      Locate the row that contains the EIP (80.158.xxx.xxx), +and click Unbind.

      +
    10. +
    11. +

      Bind EIP (80.158.xxx.xxx) to ecs-HA2.

      +
        +
      1. Log in to the management console.
      2. +
      3. Click Service List. Under Computing, click +Elastic Cloud Server.
      4. +
      5. In the ECS list, click the name of ecs-HA2.
      6. +
      7. Click the EIPs tab.
      8. +
      9. Click Bind EIP.
      10. +
      11. Select a NIC and an EIP and click OK.
      12. +
      +
    12. +
    13. +

      Connect to ecs-HA2 using SSH and run the following command +to install the Nginx and Keepalived packages and related +dependency packages:

      +

      yum install nginx keepalived -y

      +
    14. +
    15. +

      Run the following command to edit the nginx.conf +configuration file:

      +

      vim /etc/nginx/nginx.conf

      +

      An example is provided as follows:

      +
      user root;
      worker_processes 1;
      #error_log logs/error.log;
      #error_log logs/error.log notice;
      #error_log logs/error.log info;
      #pid logs/nginx.pid;
      events {
      worker_connections 1024;
      }
      http {
      include mime.types;
      default_type application/octet-stream;
      #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      # '$status $body_bytes_sent "$http_referer" '
      # '"$http_user_agent" "$http_x_forwarded_for"';
      #access_log logs/access.log main;
      sendfile on;
      #tcp_nopush on;
      #keepalive_timeout 0;
      keepalive_timeout 65;
      #gzip on;
      server {
      listen 80;
      server_name localhost;
      #charset koi8-r;
      #access_log logs/host.access.log main;
      location / {
      root html;
      index index.html index.htm;
      }
      #error_page 404 /404.html;
      # redirect server error pages to the static page /50x.html
      error_page 500 502 503 504 /50x.html;
      location = /50x.html {
      root html;
      }
      }
      }
      +
    16. +
    17. +

      Run the following command to edit the index.html file:

      +

      vim /usr/share/nginx/html/index.html

      +

      An example is provided as follows:

      +
      Welcome to ECS-HA2
      +
    18. +
    19. +

      Run the following commands to set the automatic startup of +Nginx upon ECS startup:

      +

      systemctl enable nginx

      +

      systemctl start nginx.service

      +
    20. +
    21. +

      Test the access to a single Nginx node.

      +

      Figure 5 ECS-HA2 verification result

      +
    22. +
    23. +

      Run the following command to edit the Keepalived +configuration file:

      +

      vim /etc/keepalived/keepalived.conf

      +

      An example is provided as follows:

      +
      ! Configuration File for keepalived
      global_defs {
      router_id master-node
      }
      vrrp_script chk_http_port {
      script "/etc/keepalived/chk_nginx.sh"
      interval 2
      weight -5
      fall 2
      rise 1
      }
      vrrp_instance VI_1 {
      state BACKUP
      interface ens3
      mcast_src_ip 192.168.0.20
      virtual_router_id 51
      priority 100
      advert_int 1
      authentication {
      auth_type PASS
      auth_pass 1111
      }
      unicast_src_ip 192.168.0.20
      virtual_ipaddress {
      192.168.0.100
      }
      track_script {
      chk_http_port
      }
      }
      +
    24. +
    25. +

      Run the following command to edit the nginx monitoring +script and add execute permissions:

      +

      vim /etc/keepalived/chk_nginx.sh

      +

      An example is provided as follows:

      +
      #!/bin/bash
      counter=$(ps -C nginx --no-heading|wc -l)
      if [ "${counter}" = "0" ]; then
      systemctl start nginx.service
      sleep 2
      counter=$(ps -C nginx --no-heading|wc -l)
      if [ "${counter}" = "0" ]; then
      systemctl stop keepalived.service
      fi
      fi
      +

      chmod +x /etc/keepalived/chk_nginx.sh adduser +keepalived_script

      +
    26. +
    27. +

      Run the following commands to set the automatic startup of +Keepalived upon ECS startup:

      +

      systemctl enable keepalived systemctl start +keepalived

      +
    28. +
    +
  6. +
  7. +

    Bind a virtual IP address to an ECS. +a. Unbind EIP (80.158.xxx.xxx) from ecs-HA2.

    +

    b. Bind the virtual IP address to ecs-HA1.

    +
      +
    1. Log in to the management console.
    2. +
    3. Click Service List. Under Network, click Virtual +Private Cloud.
    4. +
    5. In the navigation pane on the left, click Subnets.
    6. +
    7. In the subnet list, locate the target subnet and click its +name.
    8. +
    9. Click the IP Addresses tab, locate the row that contains +the target virtual IP address, and click Bind to Server +in the Operation column.
    10. +
    11. On the page that is displayed, select ecs HA1.
    12. +
    13. Bind the virtual IP address to ecs HA1. For details, see +Binding a Virtual IP Address to an EIP or +ECS.
    14. +
    +

    c. Bind the virtual IP address to ecs-HA2 by referring to

    +

    d. Bind the virtual IP address to the EIP 80.158.xxx.xxx. +8. Log in to the management console. +9. Click Service List. Under Network, click Virtual +Private Cloud. +10. In the navigation pane on the left, click Subnets. +11. In the subnet list, locate the target subnet and click its +name. +12. Click the IP Addresses tab, locate the row that contains +the target virtual IP address, and click Bind to EIP in +the Operation column. +13. On the page that is displayed, select the EIP +(80.158.xxx.xxx). +14. Click OK.

    +
  8. +
+

Verifying High Availability

+
    +
  1. +

    Restart ecs-HA1 and ecs-HA2 through the management console.

    +
  2. +
  3. +

    Remotely log in to ecs-HA1 through the management console.

    +
  4. +
  5. +

    Run the following command to check whether the virtual IP address is +bound to the eth0 NIC of ecs-HA1:

    +

    ip addr show

    +

    As shown in Figure 6, the virtual IP address has been bound to the ens3 NIC of ecs-HA1.

    +

    Figure 6 Virtual IP address of ecs-HA1

    +
  6. +
  7. +

    Use a browser to access the EIP and check whether the web page on +ecs-HA1 can be accessed.

    +

    If the information shown in Figure 7`* is displayed, the access is normal.

    +

    Figure 7 ecs-HA1 access verification

    +
  8. +
  9. +

    Run the following command to disable Keepalived on ecs-HA1:

    +

    systemctl stop keepalived.service

    +
  10. +
  11. +

    Run the following command to check whether ecs-HA2 has taken over +the virtual IP address:

    +

    ip addr show

    +

    Figure 8 Virtual IP address of ecs-HA2

    +
  12. +
  13. +

    Use a browser to access the EIP and check whether the web page on +ecs-HA2 can be accessed.

    +

    If the information shown in Figure 9 is displayed, the access is normal.

    +

    Figure 9 ecs-HA2 access verification

    +
  14. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file/index.html b/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file/index.html new file mode 100644 index 000000000..59237d903 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-file/index.html @@ -0,0 +1,409 @@ + + + + + +Creating a Linux Image Using VirtualBox and an ISO File | Architecture Center + + + + + +

Creating a Linux Image Using VirtualBox and an ISO File

+

VirtualBox is free, open-source virtualization software. It was first offered by InnoTek GmbH from Germany and re-branded as Oracle VM VirtualBox when InnoTek was acquired by Oracle Corporation.

+

For more information about VirtualBox, visit the Oracle official website. Click here to see the guest OSs that can work with VirtualBox.

+

You can use a 32-bit or 64-bit Linux guest OS provided by VirtualBox to create an image file in VHD format. +The following figure shows how to use VirtualBox to create an image from an ISO file.

+

Figure 1 Image creation process

+

Installing VirtualBox

+

Prerequisites

+

The host where VirtualBox is to be installed must meet the following requirements:

+
    +
  • A 64-bit Windows OS (recommended).
  • +
  • At least 4 GB of memory and a dual-core processor. For example, the host specifications can be 8U16G.
  • +
  • At least 20 GB of available disk space.
  • +
  • Hardware virtualization (Intel VT-x or AMD-V). For how to enable this, see Configuring Host BIOS CPU Settings.
  • +
+
note

For details about how to install VirtualBox, see the VirtualBox user guide at
+https://www.virtualbox.org/manual/UserManual.html.

+

Configuring Host BIOS CPU Settings

+

For an Intel host, perform the following operations to enable hardware virtualization:

+
warning

The operations may differ depending on the CPU type. You can do it as prompted.

+
    +
  1. +

    During the host startup, press the BIOS key set by the manufacturer to access the BIOS.

    +
  2. +
  3. +

    Choose Configuration -> Intel Virtual Technology, and press Enter.

    +
  4. +
  5. +

    Select Enabled and press Enter. The value of Intel Virtual Technology will become Enabled.

    +
  6. +
  7. +

    Press F10 to save the settings and exit.

    +

    Figure 1 Enabling hardware virtualization

    +

    +
  8. +
+

Installing VirtualBox Binaries

+
    +
  1. +

    Download the VirtualBox installation package. VirtualBox-5.2.0 is used as an example.

    +

    Download it from https://www.virtualbox.org/wiki/Downloads.

    +
  2. +
  3. +

    Decompress the package. Right-click VirtualBox-5.2.0-118431-Win.exe, choose Run as administrator, and click Next.

    +

    Figure 2 Installing VirtualBox

    +

    +
  4. +
  5. +

    Select the VirtualBox installation path and click Next.

    +

    Figure 3 Selecting an installation path

    +

    +
  6. +
  7. +

    Personalize the settings and click Next.

    +

    Figure 4 Personalized settings

    +

    +
  8. +
  9. +

    Click Finish.

    +
  10. +
+

Creating a VM and Installing an OS

+

Creating an Empty VM

+
    +
  1. +

    Open VirtualBox and click New. In the displayed Create Virtual Machine dialog box, enter a VM name, select an OS type and version, and click Next.

    +

    Take Ubuntu as an example. The type must be Linux. Ensure that the selected version is the same as that of the OS you want to install on the VM.

    +

    Figure 1 Creating a VM
    +

    +
  2. +
  3. +

    In the Memory size dialog box, set a value and click Next.

    +

    You can reference the VM specifications or official OS requirements. The minimum value is 256 MB. You can set the memory size to 512 MB as an example.

    +

    Figure 2 Setting the memory size

    +

    +
  4. +
  5. +

    In the Hard disk dialog box, select Create a virtual hard disk now and click Create.

    +

    Figure 3 Creating a virtual hard disk
    +

    +
  6. +
  7. +

    In the Hard disk file type dialog box, select VHD and click Next.

    +

    Figure 4 Setting the hard disk file type
    +

    +
  8. +
  9. +

    In the Storage on physical hard disk dialog box, select Dynamically allocated and click Next.

    +

    Figure 5 Selecting the disk allocation mode
    +

    +
  10. +
  11. +

    In the File location and size dialog box, set the disk size and storage location.

    +

    For example, you can set the disk size to 20 GB.

    +

    Figure 6 Setting the disk location and size
    +

    +
  12. +
  13. +

    Click Create.

    +
  14. +
+

Installing a Linux OS on the VM

+

The procedure varies depending on the image file you use. This section uses Ubuntu 20.04 as an example to describe how to install a Linux OS on the VM.

+
note

Make sure you have obtained the ISO image file of your target OS, for example, Ubuntu-20.04-server.iso.

+

Use the ISO file to install Linux for the empty VM.

+
    +
  1. +

    In VirtualBox Manager, select the new VM and click Settings.

    +

    Figure 1 Setting the VM
    +

    +
  2. +
  3. +

    Choose Storage -> Empty, click in the Attributes area, and select the ISO image file Ubuntu-20.04-server.iso.

    +

    Figure 2 Selecting the ISO file to be mounted
    +

    +

    Figure 3 Mounted ISO file
    +

    +
  4. +
  5. +

    Click OK.

    +
  6. +
  7. +

    In VirtualBox Manager, select the new VM and click Start.

    +

    Figure 4 Starting the VM
    +

    +
  8. +
  9. +

    Install the OS.

    +
      +
    1. +

      Select English and press Enter.

      +

      +
    2. +
    3. +

      Select Continue without updating.

      +

      +
    4. +
    5. +

      Retain the default settings for the keyboard. Select Done

      +

      +
    6. +
    7. +

      Retain the default settings for the installation base. Select Done.

      +

      +
    8. +
    9. +

      Retain the default settings for the network. Select Done.

      +

      The installation program will automatically identify the IP address. If the network cannot be found, the installation program can still continue and you can configure the network again after the installation is complete.

      +

      +
    10. +
    11. +

      Retain the default settings for the proxy. Select Done.

      +

      +
    12. +
    13. +

      Retain the default settings for the software source. Select Done.

      +

      +
    14. +
    15. +

      Retain the default settings for disk partitioning (use an entire disk and set up this disk as an LVM group). Select Done.

      +

      +

      The file system information will be displayed. Check it and select Done.

      +

      +

      Confirm the destructive action and select Continue.

      +

      +
    16. +
    17. +

      Configure the server name, username, and password. Select Done.

      +

      Your name: It is not a username for logging in to the server. You can consider it as server description.

      +

      Your Server's name: It is a unique server name on the same network. The name cannot contain uppercase letters.

      +

      Pick a username: It is a username for logging in to the server. If you forget it or its password, you will not be allowed to log in to the server.

      +

      Choose a password: It is the password for logging in to the server.

      +

      Confirm your password: Enter your password again.

      +

      +
    18. +
    19. +

      Install SSH so that you can remotely connect to the Linux server.

      +

      Select Install OpenSSH server. Then, press TAB to select Done.

      +

      +
    20. +
    21. +

      Select Done to start the OS installation.

      +

      +
    22. +
    23. +

      After the installation is complete, select Reboot to restart the system.

      +

      +
    24. +
    +
  10. +
+

Configuring the VM

+

Installing Drivers and Changing the Disk Identifiers to the UUID Format

+

To ensure that the ECSs created from the image support both Xen and KVM virtualization, install Native Xen and KVM drivers and change the disk identifiers to the UUID format for the VM which is used as the image source.

+

This section describes how to perform these operations on a Linux VM that runs Ubuntu 20.04. For other OSs, see Optimization Process (Linux).

+
    +
  1. +

    Run the following command to open the modules file:

    +

    vi /etc/initramfs-tools/modules

    +
  2. +
  3. +

    Press i to enter the editing mode and add the native Xen (xen-pv) and KVM (virtio) drivers to the /etc/initramfs-tools/modules file (the format depends on the OS requirements).

    +
    [root@CTU10000xxxxx ~]#vi /etc/initramfs-tools/modules 
    ...
    # Examples:
    #
    # raid1
    # sd_mOd
    xen-blkfront
    xen-netfront
    virtio_blk
    virtio_scsi
    virtio_net
    virtio_pci
    virtio_ring
    virtio
    +
  4. +
  5. +

    Press ESC, enter :wq, and press Enter to save the settings and exit the vi editor.

    +
  6. +
  7. +

    Run the following command to generate initrd again:

    +
    update-initramfs -u
    +
  8. +
  9. +

    Run the following commands to check whether native Xen and KVM drivers have been installed:

    +
    lsinitramfs /boot/initrd.img-\`uname -r\` |grep xen

    lsinitramfs /boot/initrd.img-\`uname -r\` |grep virtio
    +
    [root@ CTU10000xxxxx home]# lsinitramfs /boot/initrd.img-`uname -r` |grep xen 
    lib/modules/3.5.0-23-generic/kernel/drivers/net/ethernet/qlogic/netxen
    lib/modules/3.5.0-23-generic/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko
    lib/modules/3.5.0-23-generic/kernel/drivers/net/xen-netback
    lib/modules/3.5.0-23-generic/kernel/drivers/net/xen-netback/xen-netback.ko
    lib/modules/3.5.0-23-generic/kernel/drivers/block/xen-blkback
    lib/modules/3.5.0-23-generic/kernel/drivers/block/xen-blkback/xen-blkback.ko

    [root@ CTU10000xxxxx home]# lsinitramfs /boot/initrd.img-`uname -r` |grep virtio
    lib/modules/3.5.0-23-generic/kernel/drivers/scsi/virtio_scsi.ko
    +
    note

    If you add built-in drivers to the initrd or initramfs file, the VM will not be affected. This makes it easy to modify the drivers. However, the drivers cannot be shown by running the lsinitrd command. You can run the following commands to check whether the drivers are built-in ones in the kernel:

    [root@ CTU10000xxxxx home]# cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y
    CONFIG_VIRTIO_BLK=y
    CONFIG_VIRTIO_NET=y
    CONFIG_VIRTIO=y
    CONFIG_VIRTIO_RING=y
    CONFIG_VIRTIO_PCI=y
    CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
    [root@ CTU10000xxxxx home]# cat /boot/config-`uname -r` | grep CONFIG_XEN | grep y
    CONFIG_XEN_BLKDEV_FRONTEND=y
    CONFIG_XEN_NETDEV_FRONTEND=y
    +
  10. +
+

Changing the Disk Identifier in the GRUB Configuration File to the UUID Format

+

Take Ubuntu 20.04 as an example. Run blkid to obtain the UUID of the root partition. Modify the /boot/grub/grub.cfg file and use the UUID of the root partition to configure the boot item. If the root partition already uses UUID, no modification is required. The procedure is as follows:

+
    +
  1. +

    Log in to the newly created VM as user root.

    +
  2. +
  3. +

    Run the following command to query all types of mounted file systems and their device UUIDs:

    +
    blkid
    +

    The following information is displayed:

    +
    /dev/xvda1: UUID="ec51d860-34bf-4374-ad46-a0c3e337fd34" TYPE="ext3"
    /dev/xvda5: UUID="7a44a9ce-9281-4740-b95f-c8de33ae5c11" TYPE="swap"
    +
  4. +
  5. +

    Run the following command to query the grub.cfg file:

    +
    cat /boot/grub/grub.****cfg
    +

    The following information is displayed:

    +
    ......menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    else
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    fi
    echo 'Loading Linux 3.13.0-24-generic ...'
    linux /boot/vmlinuz-3.13.0-24-generic root=/dev/xvda1 ro
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-3.13.0-24-generic
    }
    +
  6. +
  7. +

    Check whether the /boot/grub/grub.cfg configuration file contains root=/dev/xvda1 or root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34.

    +
      +
    • If root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 is contained, the root partition is in the UUID format and no further action is required.
    • +
    • If root=/dev/xvda1 is contained, the root partition is represented by a device name. Go to step 5.
    • +
    +
  8. +
  9. +

    Obtain the UUID of the root partition based on root=/dev/xvda1 and information obtained by running the blkid command.

    +
  10. +
  11. +

    Run the following command to open the grub.cfg file:

    +
    vi /boot/grub/grub.cfg
    +
  12. +
  13. +

    Press i to enter the editing mode. Change the identifier of the root partition to the UUID format. For example, change root=/dev/xvda1 to root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34.

    +
  14. +
  15. +

    Press ESC, enter :wq, and press Enter to save the settings and exit the vi editor.

    +
  16. +
  17. +

    Run the following command to verify the change:

    +
    cat /boot/grub/grub.cfg
    +

    The change is successful if information similar to the following is displayed:

    +
    ......menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    else
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    fi
    echo 'Loading Linux 3.13.0-24-generic ...'
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 ro
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-3.13.0-24-generic
    }
    +
  18. +
+

Changing the Disk Identifiers in the fstab File to the UUID Format

+

Take Ubuntu 20.04 as an example. Run blkid to obtain the UUIDs of all partitions. Modify the /etc/fstab file and use the partition UUIDs to configure automatic partition mounting.

+
    +
  1. +

    Run the following command to query all types of mounted file systems and their device UUIDs:

    +
    blkid
    +

    The following information is displayed:

    +
    /dev/xvda2: UUID="4eb40294-4c6f-4384-bbb6-b8795bbb1130" TYPE="xfs"  
    /dev/xvda1: UUID="2de37c6b-2648-43b4-a4f5-40162154e135" TYPE="swap"
    +
  2. +
  3. +

    Run the following command to query the fstab file:

    +
    cat /etc/fstab
    +

    The following information is displayed:

    +
    [root@CTU1000028010 ~]# cat /etc/fstab  
    /dev/xvda2 / xfs defaults 0 0
    /dev/xvda1 swap swap defaults 0 0
    +
  4. +
  5. +

    Check whether the disk identifiers in the fstab file are device names or UUIDs.

    +
      +
    • If they are UUIDs, no further action is required.
    • +
    • If they are device names, go to step 4.
    • +
    +
  6. +
  7. +

    Run the following command to open the fstab file:

    +
    vi /etc/fstab
    +
  8. +
  9. +

    Press i to enter the editing mode and change the disk identifiers to the UUID format.

    +
  10. +
  11. +

    Press ESC, enter :wq, and press Enter to save the settings and exit the vi editor.

    +
  12. +
+

Installing Cloud-Init

+
note

For more information on cloud-init check this link.

+

Configuring Cloud-Init

+
note

For more information on cloud-init check this link.

+

Configuring NetworkManager

+

Linux allows you to use NetworkManager to automatically configure the VM network. You are advised to use NetworkManager for new OS versions.

+

Alternatively, you can use the native network management service of the OS.

+ +
    +
  1. +

    Run the following command to install NetworkManager:

    +
    yum install NetworkManager
    +
  2. +
  3. +

    Delete ifcfg-eth1 to ifcfg-eth11 from the /etc/sysconfig/network-scripts/ directory and retain only ifcfg-eth0.

    +
  4. +
  5. +

    Run the following command to disable the network:

    +
    service network stop
    +
  6. +
  7. +

    Run the following command to disable automatic startup of the network:

    +
    chkconfig network off
    +
  8. +
  9. +

    Run the following commands to restart messagebus and NetworkManager and enable NetworkManager to start automatically at startup:

    +
    service messagebus restart
    service NetworkManager restart
    chkconfig NetworkManager on
    +
  10. +
+

Obtaining the Image File

+

After the VM is configured, perform the following operations to generate and export a Linux image file:

+
    +
  1. Open VirtualBox, select the VM, choose Settings -> Storage, and select Linux.vhd.
  2. +
  3. On the right pane, view the image file location.
  4. +
  5. Go to the location to obtain the generated Linux.vhd image file.
  6. +
+

Registering the Image File as a Private Image

+

Upload the image file to an OBS bucket and register it as a private image.

+
important
    +
  • Only an unencrypted image file or an image file encrypted using SSE-KMS can be uploaded to an OBS bucket.
  • +
  • When uploading an image file, you must select an OBS bucket with the storage class of Standard.
  • +
+
    +
  1. +

    Use OBS Browser+ to upload the image file. For details, see OBS Browser+ Best Practices.

    +

    For how to download OBS Browser+, see https://docs.otc.t-systems.com/object-storage-service/tool-guide/downloading_obs_browser.html.

    +
  2. +
  3. +

    Register the external image file as a private image. For details, see Registering an Image File as a Private Image (Linux).

    +
  4. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks/index.html b/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks/index.html new file mode 100644 index 000000000..de70a2094 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disks/index.html @@ -0,0 +1,178 @@ + + + + + +Migrating Service Data Across Accounts (Data Disks) | Architecture Center + + + + + +

Migrating Service Data Across Accounts (Data Disks)

+

Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region.

+

Solution Design

+

To migrate service data stored on a data disk across accounts, create an +image for the data disk, share the image with the target account. The +target account accepts the shared image and attaches the new data disk +created from the shared image to an existing or new ECS.

+

Figure 1 Migration process

+

Creating a Data Disk Image

+

Assume that hello-world.txt is stored on the data disk of your ECS +and you want to migrate the file to another account.

+

image1

+
    +
  1. +

    Log in to the management console and switch to the related region.

    +
  2. +
  3. +

    Under Service List, choose Compute -> Image ManagementService.

    +

    The Image Management Service page is displayed.

    +
  4. +
  5. +

    In the upper right corner, click Create Image.

    +

    The Create Image page is displayed.

    +
  6. +
  7. +

    Set parameters.

    +

    Figure 2 Creating a data disk
+image

    +
      +
    • Type: Select Data disk image.
    • +
    • Source: Select ECS and then select the data disk ecs-disk-image-test-volume data disk.
    • +
    • Name: Enter a name for the data disk image, for example, disk-image-test.
    • +
    • Enterprise Project: Select default.
    • +
    +
  8. +
  9. +

    Click Next.

    +
  10. +
  11. +

    Confirm the settings, read and agree to the agreement, and click +Submit.

    +
  12. +
  13. +

    The system redirects to the private image list. Wait for several +minutes and check whether the data disk image is successfully +created.

    +

    Figure 3 Viewing private
+images

    +
  14. +
+

Sharing the Image with the Target Account

+

Share the data disk image created in Step 1 with the target account. Before the image sharing, obtain +the project ID of the target account. (You can obtain the project ID from My Credentials:

+

Figure 4 Viewing the project
+ID

+
    +
  1. +

    Locate the row that contains the disk-image-test private image. +Choose More -> Share in the Operation column.

    +

    The Share Image dialog box is displayed.

    +
  2. +
  3. +

    In the Share Image dialog box, enter the project ID of the +target account.

    +
  4. +
  5. +

    Click OK.

    +
  6. +
+

Accepting the Shared Image

+

Accept the shared data disk image.

+
    +
  1. +

    Log in to the management console using the account the image is +shared with and switch to the related region.

    +
  2. +
  3. +

    Under Service List, choose Compute -> Image Management +Service. Then, click the Images Shared with Me tab.

    +
  4. +
  5. +

    Select disk-image-test and click Accept.

    +

    Figure 5 Accepting a shared
+image

    +

    After the image is accepted, it is displayed in the shared image +list.

    +
  6. +
+

Creating a Data Disk or an ECS

+

Use the shared image to create a new data disk and attach it to an +existing ECS. Alternatively, create an ECS with a data disk created from +the shared image. Then, check whether the service data is successfully +migrated.

+
    +
  • Create a new data disk and attach it to an existing ECS. +
      +
    1. +

      Locate the row that contains the shared image +disk-image-test, and click Create Data Disk in the +Operation column.

      +

      Figure 6 Creating a data
+disk

      +

      The page for purchasing EVS disks is displayed.

      +
    2. +
    3. +

      Configure the billing mode and disk specifications as needed. +The AZ must be the same as that of the ECS to which the data +disk will be attached. Click Next.

      +
    4. +
    5. +

      Return to the EVS disk list. Wait for several minutes until the +EVS disk is created successfully.

      +
    6. +
    7. +

      Locate the row that contains the new EVS disk and click +Attach in the Operation column to attach the data disk +to the ECS.

      +
    8. +
    9. +

      Log in to the ECS and check whether the service data is +successfully migrated.

      +

      Run the fdisk -l command. The command output shows that the +new data disk has been partitioned.

      +

      image2

      +

      Mount the new partition to a directory of the ECS and check the +hello-world.txt file. The file content is properly printed, +which means that the service data migration is successful.

      +

      image3

      +
    10. +
    +
  • +
  • Create an ECS with a data disk attached. +
      +
    1. +

      Under Service List, choose Compute -> Elastic Cloud +Server.

      +
    2. +
    3. +

      In the upper right corner, click Create ECS.

      +

      The page for purchasing ECSs is displayed.

      +
    4. +
    5. +

      Configure the billing mode, AZ, and specifications as needed and +add a data disk which will be created from the shared data disk +image. Complete the ECS creation as instructed.

      +

      Figure 7 Adding a data
+disk

      +
    6. +
    7. +

      Wait for several minutes and check whether the new ECS is +displayed in the ECS list.

      +
    8. +
    9. +

      Log in to the new ECS and check whether the service data is +successfully migrated.

      +

      Run the fdisk -l command. The command output shows that the +new data disk has been partitioned. Mount the new partition to a +directory of the ECS and check the hello-world.txt file. The +file content is properly printed, which means that the service +data migration is successful.

      +

      image4

      +
    10. +
    +
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics/index.html new file mode 100644 index 000000000..a1847f296 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metrics/index.html @@ -0,0 +1,248 @@ + + + + + +Auto Scaling Based on ELB Monitoring Metrics | Architecture Center + + + + + +

Auto Scaling Based on ELB Monitoring Metrics

+

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

+

Solution Design

+

This section describes an auto scaling solution based on ELB monitoring +metrics. Compared with CPU/memory usage-based auto scaling, auto scaling +based on ELB QPS data is more targeted and timely.

+

The key of this solution is to obtain the ELB metric data and report the +data to Prometheus, convert the data in Prometheus to the metric data +that can be identified by HPA, and then perform auto scaling based on +the converted data.

+

The implementation scheme is as follows:

+
    +
  • Develop a Prometheus exporter to obtain ELB metric data
  • +
  • Convert the data into the format required by Prometheus
  • +
  • Report it to Prometheus.
  • +
  • Convert the Prometheus data into the Kubernetes metric API for the HPA controller to use.
  • +
  • Set an HPA rule to use ELB monitoring data as auto scaling metrics.
  • +
+
note

This section uses cloudeye-exporter as an example.

+

Figure 1 ELB traffic flows and monitoring
+data

+
tip

Other metrics can be collected in the similar way.

+

Prerequisites

+
    +
  1. You must be familiar with Prometheus and be able to write the Prometheus exporter.
  2. +
  3. You have the Cloud Native Cluster Monitoring add-on installed in your cluster. This add-on supports clusters of v1.17 or later.
  4. +
  5. Set the deployment mode of Cloud Native Cluster Monitoring to the server mode.
  6. +
+

Building the Exporter Image

+

This section uses cloudeye-exporter to +monitor load balancer metrics.

+

Installing Buildpacks

+

In this tutorial we build the image wite the help of Buildpacks.

+
note

With this approach we are building an OCI image which is +compatible whit almost all of the container runtimes which support +OCI. In addition the image can also be build with Dockerfile and +docker build.

+
git clone https://github.com/akyriako/cloudeye-exporter
curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.32.1-linux.tgz" | sudo tar -C /usr/local/bin/ --no-same-owner -xzv pack
+

Building the image

+

The image name is cloudeye-exporter and the image version is 1.0.

+
cd cloudeye-exporter
pack build cloudeye-exporter:v1 --builder gcr.io/buildpacks/builder:v1
+

Pushing the image to SWR

+
    +
  1. +

    (Optional) Log in to the SWR console, choose Organizations +in the navigation pane, and click Create Organization in the +upper right corner of the page.

    +
  2. +
  3. +

    In the navigation pane, choose My Images and then click +Upload Through Client. On the page displayed, click +Generate a temporary login command and click +image1 to +copy the command.

    +
  4. +
  5. +

    Run the login command copied in the previous step on the cluster +node. If the login is successful, the message "Login +Succeeded" is displayed.

    +
  6. +
  7. +

    Tag the cloudeye-exporter image.

    +
  8. +
+
**docker tag** *{Image name 1*:*Tag 1}*/*{Image repository address}*/*{Organization name}*/*{Image name 2*:*Tag 2}* 
+
    +
  • {Image name 1:Tag 1}: name and tag of the local image to be uploaded.
  • +
  • {Image repository address}: The domain name at the end of the login command in is the image repository address, which can be obtained on the SWR console.
  • +
  • {Organization name}: name of the organization created in.
  • +
  • {Image name 2:Tag 2}: desired image name and tag to be displayed on the SWR console.
  • +
+
Example

docker tag cloudeye-exporter:1.0 swr.eu-de.otc.t-systems.com/cloud-develop/cloudeye-exporter:1.0

+
    +
  1. Pushing the image to the image repository.
  2. +
+
**docker push** *{Image repository address}*/*{Organizationname}*/*{Image name 2:Tag 2}*
+
Example

docker push swr.eu-de.otc.t-systems.com/cloud-develop/cloudeye-exporter:1.0

+

The following information will be returned upon a successful push:

+
The push refers to repository [swr.eu-de.otc.t-systems.com/cloud-develop/cloudeye-exporter]
030***: Pushed
v1.0: digest: sha256:eb7e3bbd*** size: **
+

To view the pushed image, go to the SWR console and refresh the My Images page.

+

Installing Prometheus/Grafana Stack & cloudeye-exporter artifacts

+

Install Prometheus/Grafana stack via the kube-prometheus-stack chart. +The configuration values used will be autogenerated at +deploy/manifests/prometheus-stack/override.yaml. You could diff them +with the default values default.yaml to figure out the changes.

+

Run ./install-stack.sh. This script will deploy, besides the +kube-prometheus-stack, all the cloudeye-exporter related artifacts.

+

Deploying the Exporter

+

Prometheus can dynamically monitor pods if you add Prometheus +annotations to the pods (the default path is /metrics). This section +uses cloudeye-exporter +as an example.

+

Common annotations in Prometheus are as follows:

+
    +
  • prometheus.io/scrape: If the value is true, the pod will bemonitored.
  • +
  • prometheus.io/path: URL from which the data is collected. The default value is /metrics.
  • +
  • prometheus.io/port: port number of the endpoint to collect data from.
  • +
  • prometheus.io/scheme: Defaults to http. If HTTPS is configured for security purposes, change the value to https.
  • +
+
    +
  1. +

    Use kubectl to connect to the cluster.

    +
  2. +
  3. +

    Create a secret, which will be used by cloudeye-exporter for +authentication.

    +

    a. Create a copy of clouds.tpl template, name it clouds.yml +file with the following content:

    +
      +
    • auth_url: indicates the IAM endpoint, which can be obtained from Regions and Endpoints.
    • +
    • project_name: indicates the project name. On the My Credential page, view the project name and project ID in the Projects area.
    • +
    • access_key and secret_key: You can obtain them from Access Keys.
    • +
    • region: indicates the region name, which must correspond to the project in project_name.
    • +
    +

    b. Then encode it to base64 with the following command:

    +
    base64 -i clouds.yaml 
    +

    c. Create the cloudeye-exporter-clouds-secret.yaml file with +the following content:

    +
    cloudeye-exporter-clouds-secret.yaml
    apiVersion: v1
    kind: Secret
    metadata:
    name: cloudeye-exporter-clouds
    namespace: default
    type: Opaque
    data:
    clouds.yaml: Z2xvYmFsOg************************************************************
    +

    d. Create secret and deploy the exporter.

    +
    kubectl apply -f cloudeye-exporter-clouds-secret.yaml
    kubectl apply -f cloudeye-exporter-clouds-secret.yaml
    kubectl apply -f cloudeye-exporter-clouds-secret.yaml
    +
  4. +
+

Getting ELB and ELB Listener IDs

+

In this example, the ELB metrics associated with the workload need to be +monitored. Therefore, the target workload must use the Service or +Ingress of the LoadBalancer type.

+
    +
  1. +

    View the access mode of the workload to be monitored and obtain the +ELB ID and ELB listener ID.

    +

    a. On the CCE cluster console, choose Networking. On the +Services or Ingresses tab page, view the Service or +Ingress of the LoadBalancer type and click the load balancer +to access the load balancer page and copy the ELB ID.

    +

    image2

    +

    b. On the Listeners tab, view the listener corresponding to the +workload and copy the listener ID which corresponds to port 80.

    +

    image3

    +
  2. +
  3. +

    Export the Elastic Load Balancer's ID and listener ID as an env +variables

    +
    export ELB_ID="66872*****"
    export ELB_LISTENER_ID="94424*****"
    +
  4. +
+

Installing Nginx Ingress Controller

+

Next, we are going to install the Nginx Ingress Controller using the +script ./install-ingress.sh:

+
install-ingress.sh
envsubst < nginx-ingress-controller/override.tpl  nginx-ingress-controller/override.yaml
sleep 15

helm upgrade --install -f nginx-ingress-controller/override.yaml --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace
+

Installing an Nginx Demo Workload

+

We are going to need a workload to test HPA and the autoscaling via our +custom CloudEye derived metrics. For that matter we will deploy a dummy +nginx deployment and service using the script ./install-workload.sh:

+
kubectl create namespace applications
kubectl apply -f deploy/manifests/nginx-deployment.yaml
kubectl apply -f deploy/manifests/nginx-ingress.yaml
+

Installing prometheus-adapter

+

Next, and last step, of the installation sequence is the deployment of +prometheus-adapter that will give an additional custom metrics api +endpoint that will bind our custom CloudEye metrics with HPA +./install-adapter.sh:

+
install-adapter.sh
envsubst < prometheus-adapter/override.tpl  prometheus-adapter/override.yaml
sleep 15

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

helm upgrade --install --values prometheus-adapter/override.yaml prometheus-adapter prometheus-community/prometheus-adapter -n monitoring
+

The configuration values used for the prometheus-adapter chart will be +autogenerated at deploy/manifests/prometheus-adapter/override.yaml. You +could diff them with the default values default.yaml to figure out the +changes.

+

Creating an HPA Policy

+

After the data reported by the exporter to Prometheus is converted into +the Kubernetes metric API by using the Prometheus adapter, you can +create an HPA policy for auto scaling.

+
    +
  1. +

    Create an HPA policy. The inbound traffic of the ELB load balancer +is used to trigger scale-out. When the value of m7_in_Bps +(inbound traffic rate) exceeds 1000, the nginx Deployment will be +scaled.

    +
    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
    name: nginx
    namespace: default
    spec:
    scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx
    minReplicas: 1
    maxReplicas: 10
    metrics:
    - type: Object
    object:
    metric:
    name: elb01_listener_m7_in_Bps
    describedObject:
    apiVersion: v1
    kind: Service
    name: cloudeye-exporter
    target:
    type: Value
    value: 1000
    +

    Figure 2 Created HPA Policy

    +
  2. +
  3. +

    After the HPA policy is created, perform a pressure test on the +workload (accessing the pods through ELB). Then, the HPA controller +determines whether scaling is required based on the configured +value.

    +

    In the Events dialog box, obtain scaling records in the Kubernetes Event column.

    +

    Figure 3 Scaling events

    +
  4. +
+

Appendix

+

ELB Listener Metrics

+

The following table lists the Elastic Load Balancer Listener metrics that can be collected +using the method described in sections above.

+
MetricNameUnitDescription
m1_cpsConcurrent ConnectionsCountNumber of concurrent connections processed by a load balance
m1e_server_rpsReset Packets from Backend ServersCount/SecondNumber of reset packets sent from the backend server to clients. These reset packages are generated by the backend server and then forwarded by load balancers.
m1f_lvs_rpsReset Packets from Load BalancersCount/SecondNumber of reset packets sent from load balancers.
m21_client_rpsReset Packets from ClientsCount/SecondNumber of reset packets sent from clients to the backend server. These reset packages are generated by the clients and then forwarded by load balancers.
m22_in_bandwidthInbound Bandwidthbit/sInbound bandwidth of a load balancer.
m23_out_bandwidthOutbound Bandwidthbit/sOutbound bandwidth of a load balancer.
m2_act_connActive ConnectionsCountNumber of current active connections.
m3_inact_connInactive ConnectionsCountNumber of current inactive connections.
m4_ncpsNew ConnectionsCountNumber of current new connections.
m5_in_ppsIncoming PacketsCountNumber of packets sent to a load balancer.
m6_out_ppsOutgoing PacketsCountNumber of packets sent from a load balancer.
m7_in_BpsInbound Ratebyte/sNumber of incoming bytes per second on a load balancer.
m8_out_BpsOutbound Ratebyte/sNumber of outgoing bytes per second on a load balancer.
+

Developing an Exporter

+

Prometheus periodically calls the /metrics API of the exporter to obtain metric data. Applications only need to report monitoring data +through /metrics. You can select a Prometheus client in a desired language and integrate it into applications to implement the +/metrics API. For details about the client, see Prometheus Client Libraries. For +details about how to write the exporter, see Writing Exporters.

+

The monitoring data must be in the format that Prometheus supports. Each +data record provides the ELB ID, listener ID, namespace where the +Service is located, Service name, and Service UID as labels, as shown in +the following figure.

+

image5

+

To obtain the preceding data, perform the following steps:

+
    +
  1. +

    Obtain all Services.

    +

    The annotations field in the returned information contains the +ELB associated with the Service.

    +
      +
    • kubernetes.io/elb.id
    • +
    • kubernetes.io/elb.class
    • +
    +
  2. +
  3. +

    Use APIs in Querying Listeners to get the listener ID based on the +load balancer ID obtained in the previous step.

    +
  4. +
  5. +

    Obtain the ELB monitoring data.

    +

    The ELB monitoring data is obtained using the CES APIs described in +Querying Monitoring Data in Batches. For details about ELB +monitoring metrics, see Monitoring Metrics. Example:

    +
      +
    • m1_cps: number of concurrent connections
    • +
    • m5_in_pps: number of incoming data packets
    • +
    • m6_out_pps: number of outgoing data packets
    • +
    • m7_in_Bps: incoming rate
    • +
    • m8_out_Bps: outgoing rate
    • +
    +
  6. +
  7. +

    Aggregate data in the format that Prometheus supports and expose the +data through the /metrics API.

    +
  8. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects/index.html new file mode 100644 index 000000000..ccc08ed62 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objects/index.html @@ -0,0 +1,29 @@ + + + + + +Backing Up Kubernetes Objects of other Clusters | Architecture Center + + + + + +

Backing Up Kubernetes Objects of other Clusters

+
    +
  1. +

    To back up a WordPress application with PV data, add an annotation +to the corresponding pod. If you do not need to back up the PV data, skip this step.

    +
    # kubectl -n YOUR_POD_NAMESPACE annotate pod/YOUR_POD_NAME backup.velero.io/backup-volumes=YOUR_VOLUME_NAME_1,YOUR_VOLUME_NAME_2,...

    [root@iZbp1cqobeh1iyyf7qgvvzZ ack2cce]# kubectl get pod -n wordpress
    NAME READY STATUSRESTARTS AGE
    wordpress-67796d86b5-f9bfm 1/1 Running 1 39m
    wordpress-mysql-645b796d8d-6k8wh 1/1 Running 0 38m

    [root@iZbp1cqobeh1iyyf7qgvvzZ ack2cce]# kubectl -n wordpress annotate pod/wordpress-67796d86b5-f9bfm backup.velero.io/backup-volumes=wordpress-pvc
    pod/wordpress-67796d86b5-f9bfm annotated
    [root@iZbp1cqobeh1iyyf7qgvvzZ ack2cce]# kubectl -n wordpress annotate pod/wordpress-mysql-645b796d8d-6k8wh backup.velero.io/backup-volumes=wordpress-mysql-pvc
    pod/wordpress-mysql-645b796d8d-6k8wh annotated
    +
  2. +
  3. +

    Execute the backup task.

    +
    [root@iZbp1cqobeh1iyyf7qgvvzZ ack2cce]# velero backup create  wordpress-backup --include-namespaces wordpress
    Backup request "wordpress-backup" submitted successfully.
    Run `velero backup describe wordpress-backup` or `velero backup logs wordpress-backup` for more details.
    +
  4. +
  5. +

    Check whether the backup task is successful.

    +
    [root@iZbp1cqobeh1iyyf7qgvvzZ ack2cce]# velero backup get
    NAME STATUS CREATED EXPIRES STORAGE LOCATION SELECTOR
    wordpress-backup InProgress 2020-07-07 20:31:19 +0800 CST 29d default<none>
    [root@iZbp1cqobeh1iyyf7qgvvzZ ack2cce]# velero backup get
    NAME STATUS CREATED EXPIRES STORAGE LOCATION SELECTOR
    wordpress-backup Completed 2020-07-07 20:31:19 +0800 CST 29d default<none>
    +
  6. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-application/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-application/index.html new file mode 100644 index 000000000..1ca8bc8b4 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-application/index.html @@ -0,0 +1,44 @@ + + + + + +Debugging and Starting the Application | Architecture Center + + + + + +

Debugging and Starting the Application

+

Application Verification

+

Debug and access the application to check data:

+
    +
  1. In the navigation pane, choose Resource Management -> Network. Pick the EIP next to the WordPress Service.
  2. +
+

Figure 1 Obtaining the access address

+
    +
  1. If the access is normal, and the migration is successful.
  2. +
+

Figure 2 WordPress welcome page

+

Service Verification

+

Testing personnel check the functions of the new cluster without interrupting the live traffic.

+
    +
  • Configure a test domain name.
  • +
  • Test service functions.
  • +
  • Check O&M functions, such as log monitoring and alarm reporting.
  • +
+

Switching Live Traffic to the CCE Cluster

+

O&M switch DNS to direct live traffic to the CCE cluster.

+
    +
  • DNS traffic switching: Adjust the DNS configuration to switch traffic.
  • +
  • Client traffic switching: Upgrade the client code or update the configuration to switch traffic.
  • +
+

Bringing Other Cluster Offline

+

After confirming that the service on the CCE cluster is normal, bring other cluster offline and delete the backup files.

+
    +
  • Verify that the service on the CCE cluster is running properly.
  • +
  • Bring other cluster offline.
  • +
  • Delete backup files.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/issue-an-acme-certificate-with-dns01-solver-in-cce/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/issue-an-acme-certificate-with-dns01-solver-in-cce/index.html new file mode 100644 index 000000000..6ed41c6f0 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/issue-an-acme-certificate-with-dns01-solver-in-cce/index.html @@ -0,0 +1,73 @@ + + + + + +Issue an ACME Certificate with DNS01 Solver in CCE | Architecture Center + + + + + +

Issue an ACME Certificate with DNS01 Solver in CCE

+

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+

When you request a certificate, the Certificate Authority (CA) needs to ensure that you have control over the domain for which you're requesting the certificate. The DNS01 challenge is one of the methods used to prove this control. Here's how it generally works:

+
    +
  1. +

    Challenge Issuance: The CA provides you with a unique token (a random string of characters) that needs to be added to your domain's DNS records.

    +
  2. +
  3. +

    DNS Record Addition: You must create a specific DNS TXT record for your domain that includes the token provided by the CA. This record usually follows a format like _acme-challenge.example.com with a value corresponding to the token.

    +
  4. +
  5. +

    Verification: Once you've added the TXT record to your domain's DNS configuration, the CA will query your domain's DNS records to look for the TXT record. If it finds the correct token, it confirms that you control the domain.

    +
  6. +
  7. +

    Certificate Issuance: After successful verification, the CA will issue the SSL/TLS certificate.

    +
  8. +
+

The DNS01 challenge is commonly used because it allows for domain validation without needing to serve files over HTTP, which can be advantageous in certain situations, such as when you don't have a web server configured or when you're managing multiple subdomains.

+

One of the tools, that can be employed in the context of Kubernetes, to secure certificates from a Certificate Authority (CA) via the ACME protocol using the the DNS01 challenge, is cert-manager. Specifically for Open Telekom Cloud, we can use an additional webhook that acts as an ACME DNS01 solver for Open Telekom Cloud's Domain Name Service, cert-manager-webhook-opentelekomcloud.

+

Prerequisites

+

Only prerequisite is cert-manager. If you don't have it already installed on your CCE Cluster, this can be very easily done using a Helm Chart:

+
helm repo add jetstack https://charts.jetstack.io 
helm repo update

helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.15.3 \
--set crds.enabled=true
+

Installing the ACME DNS01 Solver

+

cert-manager-webhook-opentelekomcloud is an ACME DNS01 solver webhook for Open Telekom Cloud DNS written in Golang, and requires cert-manager to be installed first.

+

Acquiring Access/Secret Keys

+

In the console, go to My Credentials -> Access Keys and either pick up an existing pair or create a new one:

+

alt text

+

Export this pair as environment variables:

+
export OS_ACCESS_KEY={value}
export OS_SECRET_KEY={value}
+

Installing the Helm Chart

+
helm repo add cert-manager-webhook-opentelekomcloud https://akyriako.github.io/cert-manager-webhook-opentelekomcloud/
helm repo update

helm upgrade --install \
acme-dns cert-manager-webhook-opentelekomcloud/cert-manager-webhook-opentelekomcloud \
--set opentelekomcloud.accessKey=$OS_ACCESS_KEY \
--set opentelekomcloud.secretKey=$OS_SECRET_KEY \
--namespace cert-manager
+

Installing Cluster Issuers

+

You are going to need one ClusterIssuer for the production and one for the staging Let's Encrypt endpoint.

+
warning

cert-manager has a known bug, that prevents custom webhooks to work with an Issuer. For that reason you need to install your issuer as ClusterIssuer.

+

For Staging

+

Create and deploy the following manifest:

+
opentelekomcloud-letsencrypt-staging.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: opentelekomcloud-letsencrypt-staging
namespace: cert-manager
spec:
acme:
email: user@company.com
server: https://acme-staging-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: opentelekomcloud-letsencrypt-staging-tls-key
solvers:
- dns01:
webhook:
groupName: acme.opentelekomcloud.com
solverName: opentelekomcloud
config:
region: "eu-de"
accessKeySecretRef:
name: cert-manager-webhook-opentelekomcloud-creds
key: accessKey
secretKeySecretRef:
name: cert-manager-webhook-opentelekomcloud-creds
key: secretKey
+
note

Replace placeholder email value, user@company.com, with the email that will be used for requesting certificates from Let's Encrypt.

+
kubectl apply -f opentelekomcloud-letsencrypt-staging.yaml
+

For Production

+
opentelekomcloud-letsencrypt.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: opentelekomcloud-letsencrypt
namespace: cert-manager
spec:
acme:
email: user@company.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: opentelekomcloud-letsencrypt-tls-key
solvers:
- dns01:
webhook:
groupName: acme.opentelekomcloud.com
solverName: opentelekomcloud
config:
region: "eu-de"
accessKeySecretRef:
name: cert-manager-webhook-opentelekomcloud-creds
key: accessKey
secretKeySecretRef:
name: cert-manager-webhook-opentelekomcloud-creds
key: secretKey
+
note

Replace placeholder email value, user@company.com, with the email that will be used for requesting certificates from Let's Encrypt.

+
kubectl apply -f opentelekomcloud-letsencrypt.yaml
+

Requesting a Certificate

+

Create and deploy the following manifest:

+
certificate-subdomain-example-com
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: certificate-subdomain-example-com
spec:
dnsNames:
- '*.subdomain.example.com'
issuerRef:
kind: ClusterIssuer
name: opentelekomcloud-letsencrypt-staging
secretName: certificate-subdomain-example-com-tls
+
note

Replace placeholder DNS name *.subdomain.example.com, with one that you own and will be used to request a certificate from Let's Encrypt.

+
kubectl apply -f certificate-subdomain-example-com
+
warning

Using the staging endpoint of Let's Encrypt before moving to the production endpoint is a best practice. Let's Encrypt imposes rate limits on the number of certificates you can request in a given period to prevent abuse. By testing with the staging environment, you avoid hitting these limits during your development and testing phases.

+

Exposing a workload with Ingress

+

Create and deploy the following manifest:

+
workload-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: workload-ingress
labels:
app: workload
annotations:
kubernetes.io/elb.class: union
kubernetes.io/elb.id: "{value}"
kubernetes.io/elb.port: 443
spec:
ingressClassName: cce
tls:
- hosts:
- subdomain.example.com
secretName: certificate-subdomain-example-com-tls
rules:
- host: subdomain.example.com
http:
paths:
- backend:
service:
name: workload-svc
port:
number: 80
path: /
pathType: ImplementationSpecific
+
note

You need to have:

    +
  • a workload installed in your CCE Cluster (you can experiment with traefik/whoami)
  • +
  • this workload exposed with a Service, workload-svc, of type NodePort
  • +
  • a Shared Elastic Load Balancer
  • +
+
ParameterValue
kubernetes.io/elb.classunion, if it is a Shared Elastic Load Balancer
kubernetes.io/elb.idReplace placeholder value {value} with the ID of the Elastic Load Balancer
kubernetes.io/elb.port443
ingressClassNamecce
tls.hosts[0]Replace placeholder value subdomain.example.com with your own
tls.secretNameUse the name of the Secret that was created from Certificate
rules.host[0]Replace placeholder value subdomain.example.com with your own
+
kubectl apply -f workload-ingress.yaml
+

If you visit in your browser the address https://subdomain.example.com you will notice that the endpoint is served in HTTPS and is secured by a valid certificate.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce/index.html new file mode 100644 index 000000000..67b3dd641 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cce/index.html @@ -0,0 +1,379 @@ + + + + + +Migrating Clusters from Other Clouds to CCE | Architecture Center + + + + + +

Migrating Clusters from Other Clouds to CCE

+

Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.

+

Solution Design

+

image1 +image1

+

Migrating Data

+

Migrating Databases and Storage

+
    +
  1. Storage Migration: Create a bucket on OBS. For details, see Creating a Bucket.
  2. +
+

Migrating Container Images

+
    +
  1. +

    Export the container images used in the other clusters: Pull the images to the client by referring to the operation guide of +other Cloud Container Registry.

    +
  2. +
  3. +

    Upload the image files to Open Telekom Cloud SWR: Run the docker pull command to push the image to Open Telekom +Cloud. For details, see Uploading an Image Through the Client.

    +
  4. +
+

Installing the Migration Tool

+

Velero is an open-source backup and migration tool for Kubernetes +clusters. It integrates the Persistent Volume(PV) data backup +capability of the Restic tool and can be used to back up Kubernetes +resource objects (such as Deployments, Jobs, Services, and ConfigMaps) +in the source cluster. Data in the PV mounted to the Pod are backed up +and uploaded to the object storage. When a disruption or a major incident occurs or a migration +is required, the target cluster can use Velero to obtain the +corresponding backup data from OBS and restore cluster resources as +required.

+

You need to prepare temporary object storage to store backup files before the +migration. Velero supports OBS or MinIO as the object +storage (For more details about how to deploy MinIO, see Installing MinIO). OBS requires sufficient storage space for storing backup files.You can estimate the storage space based on your cluster scale and data volume. You are advised to use OBS for backup. For details about how to +deploy Velero, see Installing Velero

+

CCE supports backup and restore using the e-backup add-on, which is +compatible with Velero and uses OBS as the storage backend. You can use +Velero in on-premises clusters and use e-backup in CCE.

+ +

Prerequisites

+
    +
  • The Kubernetes version of the source on-premises cluster must be +1.10 or later, and the cluster can use DNS and Internet services +properly.
  • +
  • If you use OBS to store backup files, obtain the AK/SK of a user who +has the right to operate OBS. For details, see Obtaining Access Keys (AK/SK).
  • +
  • If you use MinIO to store backup files, bind an EIP to the server +where MinIO is installed and enable the API and console port of +MinIO in the security group.
  • +
  • The target CCE cluster has been created.
  • +
  • The source cluster and target cluster must each have at least one +idle node. It is recommended that the node specifications be 4 vCPUs +and 8 GiB memory or higher.
  • +
+

Installing MinIO

+

MinIO is an open-source, high-performance object storage tool compatible +with the S3 API protocol. If MinIO is used to store backup files for +cluster migration, you need a temporary server to deploy MinIO and +provide services for external systems. If you use OBS to store backup +files, skip this section and go to Installing Velero

+

MinIO can be installed in any of the following locations:

+
    +
  • Temporary ECS outside a cluster. If the MinIO server is installed outside the cluster, backup files +will not be affected when a catastrophic fault occurs in the +cluster.
  • +
  • Idle nodes in a cluster. You can remotely log in to a node to install the MinIO server or +containerize MinIO. For details, see the official Velero +documentation.
  • +
+
important

For example, to containerize MinIO, do as follows:

    +
  • Change the storage type (empty dir) in the YAML file +provided by Velero to HostPath or Local. Otherwise, +backup files will be permanently lost after the pod are restarted.
  • +
  • Change the Service type to NodePort or use other types of +Services that support public network access to ensure that MinIO +can be accessed by external networks. Otherwise, backup files +cannot be downloaded outside the cluster.
  • +
+

Regardless of which deployment method is used, the server where MinIO is +installed must have sufficient storage space, an EIP must be bound to +the server, and the MinIO service port must be enabled in the security +group. Otherwise, backup files cannot be uploaded or downloaded.

+

In this example, MinIO is installed on a temporary ECS outside the +cluster.

+
    +
  1. +

    Download MinIO.

    +
    mkdir /opt/minio
    mkdir /opt/miniodata
    cd /opt/minio
    wget https://dl.minio.io/server/minio/release/linux-amd64/minio
    chmod +x minio
    +
  2. +
  3. +

    Configure the username and password of MinIO.

    +

    The username and password set using this method are temporary +environment variables and must be reset after the service is +restarted. Otherwise, the default root credential will be used to +create the service.

    +
    export MINIO_ROOT_USER=minio
    export MINIO_ROOT_PASSWORD=minio123
    +
  4. +
  5. +

    Create a service. In the command, /opt/miniodata/ indicates the +local disk path for MinIO to store data.

    +

    The default API port of MinIO is 9000, and the console port is +randomly generated. You can use the \--console-address parameter +to specify a console port.

    +
    ./minio server /opt/miniodata/ --console-address ":30840" &
    +
    note

    Enable the API and console ports in the firewall and security group +on the server where MinIO is to be installed. Otherwise, access to +the object bucket will fail.

    +
  6. +
  7. +

    Use a browser to access http://<EIP of the node where MinIO resides>:30840. The MinIO console page is displayed.

    +
  8. +
+

Installing Velero

+

Go to the OBS or MinIO console and create a bucket named velero to +store backup files. You can custom the bucket name, which must be used +when installing Velero. Otherwise, the bucket cannot be accessed and the +backup fails.

+
important
    +
  • Velero instances need to be installed and deployed in both the +source and target clusters. The installation procedures are the +same, which are used for backup and restoration, respectively.
  • +
  • The master node of a CCE cluster does not provide a port for remote +login. You can install Velero using kubectl.
  • +
  • If there are a large number of resources to back up, you are advised +to adjust the CPU and memory resources of Velero and Restic to 1 +vCPU and 1 GiB memory or higher.
  • +
  • The object storage bucket for storing backup files must be +empty.
  • +
+

Download the latest, stable binary file. This article uses +Velero 1.7.0 as an example. The installation process in the source cluster is the same as that in the target cluster:

+
    +
  1. +

    Download the binary file of Velero 1.7.0.

    +
    wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0/velero-v1.7.0-linux-amd64.tar.gz
    +
  2. +
  3. +

    Install the Velero client.

    +
    tar -xvf velero-v1.7.0-linux-amd64.tar.gz
    cp ./velero-v1.7.0-linux-amd64/velero /usr/local/bin
    +
  4. +
  5. +

    Create the access key file credentials-velero for the backup +object storage.

    +
    vim credentials-velero
    +

    Replace the AK/SK in the file based on the site requirements. When +you use OBS, you can obtain the AK/SK by referring to Obtaining Access Keys (AK/SK).

    +
    note

    If MinIO is used, create an AK/SK pair in MinIO panel

    +
    [default]
    aws_access_key_id={AK}
    aws_secret_access_key={SK}
    +
  6. +
  7. +

    Deploy the Velero server. Change the value of \--bucket to the +name of the created object storage bucket. In this example, the +bucket name is velero. For more information about custom +installation parameters, see Customize Velero Install.

    +
    velero install \
    --provider aws \
    --plugins velero/velero-plugin-for-aws:v1.2.1 \
    --bucket velero \
    --secret-file ./credentials-velero \
    --use-restic \
    --use-volume-snapshots=false \
    --backup-location-config region=eu-de,s3ForcePathStyle="true",s3Url=http://obs.eu-de.otc.t-systems.com
    +
    ParameterDescription
    --providerVendor who provides the plug-in.
    --pluginsAPI component compatible with AWS S3. Both OBS and MinIO support the S3 protocol.
    --bucketName of the object storage bucket for storing backup files. The bucket must be created in advance.
    --secret-fileSecret file for accessing the object storage, that is, the credentials-velero file created before
    --use-resticWhether to use Restic to support PV data backup. You are advised to enable this function. Otherwise, storage volume resources cannot be backed up.
    --use-volume-snapshotsWhether to create the VolumeSnapshotLocation object for PV snapshot, which requires support from the snapshot program. Set this parameter to false.
    --backup-location-configOBS bucket configurations, including region, s3ForcePathStyle, and s3Url.
    regionRegion to which object storage bucket belongs. If OBS is used, set this parameter according to your region, for example, eu-nl. If MinIO is used, set this parameter to minio.
    s3ForcePathStyleThe value true indicates that the S3 file path format is used.
    s3UrlAPI access address of the object storage bucket. If OBS is used, set this parameter to http://obs.{region}.otc.t-systems.com (region indicates the region where the object storage bucket is located). For example, if the region is Germany (eu-de), the value is http://obs.eu-de.otc.t-systems.com. If MinIO is used, set this parameter to http://{EIP of the node where minio is located}:9000. The value of this parameter is determined based on the IP address and port of the node where MinIO is installed. Note: The access port in s3Url must be set to the API port of MinIO instead of the console port. The default API port of MinIO is 9000. To access MinIO installed outside the cluster, enter the public IP address of MinIO.
    +

    Table 1 Installation parameters of Velero

    +
  8. +
  9. +

    By default, a namespace named velero is created for the Velero +instance. Run the following command to view the pod status:

    +
    $ kubectl get pod -n velero
    NAME READY STATUS RESTARTS AGE
    restic-rn29c 1/1 Running 0 16s
    velero-c9ddd56-tkzpk 1/1 Running 0 16s
    +
    note

    To prevent memory insufficiency during backup in the actual +production environment, change the CPU and memory allocated to +Restic and Velero.

    +
  10. +
  11. +

    Check the interconnection between Velero and the object storage and +ensure that the status is Available.

    +
    $ velero backup-location get
    NAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT
    default aws velero Available 2021-10-22 15:21:12 +0800 CST ReadWrite true
    +
  12. +
+

Migrating Resources in a Cluster

+

WordPress is used as an example to describe how to migrate an +application from a Kubernetes cluster to a CCE cluster. The WordPress +application consists of the WordPress and MySQL components, which are +containerized. The two components are bound to two local storage volumes +of the Local type respectively and provide external access through the +NodePort Service.

+

Before the migration, use a browser to access the WordPress site, create +a site named Migrate to CCE, and publish an article to verify the +integrity of PV data after the migration. The article published in +WordPress will be stored in the wp_posts table of the MySQL +database. If the migration is successful, all contents in the database +will be migrated to the new cluster. You can verify the PV data +migration based on the migration result.

+

Prerequisites

+
    +
  • Before the migration, clear the abnormal pod resources in the source +cluster. If the pod is in the abnormal state and has a PVC mounted, +the PVC is in the pending state after the cluster is migrated.
  • +
  • Ensure that the cluster on the CCE side does not have the same +resources as the cluster to be migrated because Velero does not +restore the same resources by default.
  • +
  • To ensure that container images can be properly pulled after cluster +migration, migrate the images to SWR.
  • +
  • CCE does not support EVS disks of the ReadWriteMany type. If +resources of this type exist in the source cluster, change the +storage type to ReadWriteOnce.
  • +
  • Velero integrates the Restic tool to back up and restore storage +volumes. Currently, the storage volumes of the HostPath type are not +supported. For details, see Restic Restrictions. To +back up storage volumes of this type, replace the hostPath volumes +with local volumes.
  • +
+
important

If a backup task involves storage of the +HostPath type, the storage volumes of this type will be +automatically skipped and a warning message will be generated. This +will not cause a backup failure.

+

Backing Up an Application in the Source Cluster

+
    +
  1. +

    (Optional) To back up the data of a specified storage volume in the +pod, add an annotation to the pod. The annotation template is as +follows:

    +
    kubectl -n <namespace> annotate <pod/pod_name> backup.velero.io/backup-volumes=<volume_name_1>,<volume_name_2>,...
    +
      +
    • \<namespace\>: namespace where the pod is located.
    • +
    • \<pod_name\>: pod name.
    • +
    • \<volume_name\>: name of the persistent volume mounted to +the pod. You can run the describe statement to query the pod +information. The Volume field indicates the names of all +persistent volumes attached to the pod.
    • +
    +

    Add annotations to the pods of WordPress and MySQL. The pod names +are something like wordpress-758fbf6fc7-s7fsr and +mysql-5ffdfbc498-c45lh. As long as the pods are in the default namespace +default, the -n \<NAMESPACE\> parameter can be omitted.

    +
    kubectl annotate pod/wordpress-758fbf6fc7-s7fsr backup.velero.io/backup-volumes=wp-storage
    kubectl annotate pod/mysql-5ffdfbc498-c45lh backup.velero.io/backup-volumes=mysql-storage
    +
  2. +
  3. +

    Back up the application. During the backup, you can specify +resources based on parameters. If no parameter is added, the entire +cluster resources are backed up by default. For details about the +parameters, see Resource filtering.

    +
      +
    • +

      \--default-volumes-to-restic: indicates that Restic is used +to back up all storage volumes mounted to a pod. HostPath +volumes are not supported. If this parameter is left blank, the +storage volume specified by annotation in +cce_bestpractice_0024__en-us_topic_0000001171703796_li686918502812> is backed up by default. This parameter is available +only if \--use-restic is specified during Velero Installation.

      +
      velero backup create <backup-name> --default-volumes-to-restic
      +
    • +
    • +

      \--include-namespaces: backs up resources in a specified namespace.

      +
      velero backup create <backup-name> --include-namespaces <namespace>
      +
    • +
    • +

      \--include-resources: backs up the specified resources.

      +
      velero backup create <backup-name> --include-resources deployments
      +
    • +
    • +

      \--selector: backs up resources that match the selector.

      +
      velero backup create <backup-name> --selector <key>=<value>
      +
    • +
    +

    In this section, resources in the namespace default are backed +up. wordpress-backup is the backup name. Specify the same backup +name when restoring applications. The following is an example:

    +
    velero backup create wordpress-backup --include-namespaces default --default-volumes-to-restic
    +

    If the following information is displayed, the backup task is successfully created:

    +
    Backup request "wordpress-backup" submitted successfully. Run `velero backup describe wordpress-backup` or `velero backup logs wordpress-backup` for more details.
    +
  4. +
  5. +

    Check the backup status.

    +
    velero backup get
    +

    Information similar to the following is displayed:

    +
    NAME               STATUS      ERRORS   WARNINGS   CREATED                         EXPIRES   STORAGE LOCATION   SELECTOR
    wordpress-backup Completed 0 0 2021-10-14 15:32:07 +0800 CST 29d default <none>
    +

    In addition, you can go to the object bucket to view the backup +files. The backups path is the application resource backup path, and +the restic path is the PV data backup path.

    +

    image1

    +
  6. +
+

Restoring Applications in the Target Cluster

+

The storage infrastructure of an on-premises cluster is different from +that of a cloud cluster. After the cluster is migrated, PVs cannot be +mounted to pods. Therefore, during the migration, update the storage +class of the target cluster to shield the differences of underlying +storage interfaces between the two clusters when creating a workload and +request storage resources of the corresponding type. For details, see +Updating the Storage Class

+
    +
  1. +

    Create a ConfigMap in the CCE cluster and map the storage class used +by the source cluster to the default storage class of the CCE +cluster.

    +

    In this example, the storage class name of the source cluster is +default and the storage class name of the target cluster is +csi-disk.

    +
    note
      +
    • When an application containing PV data is restored in a CCE +cluster, the defined storage class dynamically creates and +mounts storage resources (such as EVS volumes) based on the PVC.
    • +
    • The storage resources of the cluster can be changed as required, +not limited to EVS volumes. To mount other types of storage, +such as file storage and object storage, see +Updating the Storage Class
    • +
    +

    YAML file for the migrated cluster:

    +
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: change-storageclass-plugin-config
    namespace: velero
    labels:
    app.kubernetes.io/name: velero
    velero.io/plugin-config: "true"
    velero.io/change-storage-class: RestoreItemAction
    data:
    default:csi-disk
    +
  2. +
  3. +

    Use the Velero tool to create a restore and specify a backup named +wordpress-backup to restore the WordPress application to the CCE +cluster.

    +
    velero restore create --from-backup wordpress-backup
    +

    You can run the velero restore get statement to view the +application restoration status.

    +
  4. +
  5. +

    After the restoration is complete, check whether the application is +running properly. If other adaptation problems may occur, rectify +the fault by following the procedure described in +Updating Resources Accordingly.

    +
  6. +
+

Preparing Object Storage and Velero

+

Preparing Object Storage MinIO

+

Prepare the object storage and save its AK/SK.

+
    +
  1. +

    Install the MinIO.

    +
    # Binary installation
    mkdir /opt/minio
    mkdir /opt/miniodata
    cd /opt/minio
    wget https://dl.minio.io/server/minio/release/linux-amd64/minio
    chmod +x minio
    export MINIO_ACCESS_KEY=minio
    export MINIO_SECRET_KEY=minio123
    ./minio server /opt/miniodata/ &
    +

    Enter http://<EIP of the node where MinIO is deployed>:9000 in the address box of a browser. Note that the corresponding ports on the firewall and security group must be enabled.

    +

    To release the MinIO service as a service that can be accessed from outside the cluster, change the service type in 00-minio-deployment.yaml to NodePort or LoadBalancer.

    +
    kubectl apply -f ./velero-v1.4.0-linux-amd64/examples/minio/00-minio-deployment.yaml
    +
  2. +
  3. +

    Create a bucket, which will be used in the migration.

    +

    Open the web page of the MinIO service. Use MINIO_ACCESS_KEY/MINIO_SECRET_KEY to log in to the MinIO service. In this example, use minio/minio123. Click Create bucket. In this example, create a bucket named velero.

    +
  4. +
+

Preparing Velero

+

Perform the following operations on other cluster and CCE nodes that can run kubectl commands:

+
    +
  1. +

    Download the latest stable version of the migration tool from here.

    +
    note

    This article uses velero-v1.4.0-linux-amd64.tar.gz as an example.

    +
  2. +
  3. +

    Install the Velero client.

    +
    mkdir /opt/ack2cce
    cd /opt/ack2cce
    tar -xvf velero-v1.4.0-linux-amd64.tar.gz -C /opt/ack2cce
    cp /opt/ack2cce/velero-v1.4.0-linux-amd64/velero /usr/local/bin
    +
  4. +
  5. +

    Install the Velero server.

    +
      +
    • +

      Prepare the MinIO authentication file:

      +
      cd /opt/ack2cce
      vi credentials-velero

      [default]
      aws_access_key_id = minio
      aws_secret_access_key = minio123
      +
    • +
    • +

      Install the Velero server:

      +
      velero install \
      --provider aws \
      --plugins velero/velero-plugin-for-aws:v1.0.0 \
      --bucket velero \
      --secret-file ./credentials-velero \
      --use-restic \
      --use-volume-snapshots=false \
      --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://{EIP of the node where minio runs}:9000
      +
      note

      s3Url must be set to the actual MinIO address.

      +
    • +
    +
  6. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects/index.html new file mode 100644 index 000000000..a89971354 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objects/index.html @@ -0,0 +1,25 @@ + + + + + +Restoring Kubernetes Objects in a CCE Cluster | Architecture Center + + + + + +

Restoring Kubernetes Objects in a CCE Cluster

+

In this example, the WordPress application uses Azure SSD persistent data volumes, which need to be replaced with Open Telekom Cloud SSDs.

+

Creating a StorageClass

+

The StorageClass used in this example is azurefile-csi.

+
caution

You must create a StorageClass with the exact same name as in the other cloud provider and use it in Open Telekom Cloud. In this case SSDs as backend storage media will be mapped to a new StorageClass that has the same name, azurefile-csi, as their equivalent in Azure.

+
cce-sc-csidisk.yaml
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: azurefile-csi
selfLink: /apis/storage.k8s.io/v1/storageclasses/csi-disk
parameters:
csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
csi.storage.k8s.io/fstype: ext4
everest.io/disk-volume-type: SSD
everest.io/passthrough: "true"
provisioner: everest-csi-provisioner
reclaimPolicy: Delete
volumeBindingMode: Immediate
+
[root@ccenode-roprr hujun]# kubectl create -f cce-sc-csidisk.yaml
+

Restoring the Application

+
[root@ccenode-roprr hujun]# velero restore create --from-backup   wordpress-backup
Restore request "wordpress-backup-20200707212519" submitted successfully.
Run `velero restore describe wordpress-backup-20200707212519` or `velero restore logs wordpress-backup-20200707212519` for more details

[root@ccenode-roprr hujun]# velero restore get
NAME BACKUP STATUS WARNINGS ERRORS CREATED SELECTOR
wordpress-backup-20200708112940 wordpress-backup Completed 0 02020-07-08 11:29:42 +0800 CST <none>
+

Check the running status of the WordPress application. Make adaptation +if issues such as image pulling failures and service access failures +occur.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources/index.html b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources/index.html new file mode 100644 index 000000000..bf207fb48 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resources/index.html @@ -0,0 +1,156 @@ + + + + + +Updating Resources Accordingly | Architecture Center + + + + + +

Updating Resources Accordingly

+

Updating Images

+

The WordPress and MySQL images used in this example can be pulled from +SWR. Therefore, the image pull failure (ErrImagePull) will not occur. If +the application to be migrated is created from a private image, perform +the following steps to update the image:

+
    +
  1. +

    Migrate the image resources to SWR. For details, see Uploading an Image Through the Client.

    +
  2. +
  3. +

    Log in to the SWR console and obtain the image path used after the +migration.

    +

    The image path is in the following format:

    +
    'swr.{Region}.otc.t-systems.com/{Organization name}/{Image name}:{Tag}'
    +
  4. +
  5. +

    Run the following command to modify the workload and replace the +image field in the YAML file with the image path:

    +
    kubectl edit deploy wordpress
    +
  6. +
  7. +

    Check the running status of the workload.

    +
  8. +
+

Updating Services

+

After the cluster is migrated, the Service of the source cluster may +fail to take effect. You can perform the following steps to update the +Service. If ingresses are configured in the source cluster, connect the +new cluster to ELB again after the migration. For details, see Using kubectl to Create an ELB Ingress.

+
    +
  1. +

    Connect to the cluster using kubectl.

    +
  2. +
  3. +

    Edit the YAML file of the corresponding Service to change the +Service type and port number.

    +
    kubectl edit svc wordpress
    +

    To update load balancer resources, connect to ELB again. Add the +annotations by following the procedure described in LoadBalancer.

    +
    annotations:
    kubernetes.io/elb.class: union # Shared load balancer
    kubernetes.io/elb.id: 9d06a39d-xxxx-xxxx-xxxx-c204397498a3 # Load balancer ID, which can be queried on the ELB console.
    kubernetes.io/elb.subnet-id: f86ba71c-xxxx-xxxx-xxxx-39c8a7d4bb36 # ID of the cluster where the subnet resides
    kubernetes.io/session-affinity-mode: SOURCE_IP # Enable the sticky session based on the source IP address.
    +
  4. +
  5. +

    Use a browser to check whether the Service is available.

    +
  6. +
+

Updating the Storage Class

+

As the storage infrastructures of clusters may be different, storage +volumes cannot be mounted to the target cluster. You can use either of +the following methods to update the volumes:

+
important

Both update methods can be performed only before the application is +restored in the target cluster. Otherwise, PV data resources may fail to +be restored. In this case, use Velero to restore applications after the +storage class update is complete.

+

Method 1: Creating a ConfigMap mapping

+
    +
  1. +

    Create a ConfigMap in the CCE cluster and map the storage class used +by the source cluster to the default storage class of the CCE +cluster.

    +
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: change-storageclass-plugin-config
    namespace: velero
    labels:
    app.kubernetes.io/name: velero
    velero.io/plugin-config: "true"
    velero.io/change-storage-class: RestoreItemAction
    data:
    {Storage class name01 in the source cluster}: {Storage class name01 in the target cluster}
    {Storage class name02 in the source cluster}: {Storage class name02 in the target cluster}
    +
  2. +
  3. +

    Run the following command to apply the ConfigMap configuration:

    +
    kubectl create -f change-storage-class.yaml
    +
  4. +
+

Method 2: Creating a storage class with the same name

+
    +
  1. +

    Run the following command to query the default storage class +supported by CCE:

    +
    kubectl get sc
    +

    Information similar to the following is displayed:

    +
    NAME                PROVISIONER                     RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    csi-disk everest-csi-provisioner Delete Immediate true 3d23h
    csi-disk-topology everest-csi-provisioner Delete WaitForFirstConsumer true 3d23h
    csi-nas everest-csi-provisioner Delete Immediate true 3d23h
    csi-obs everest-csi-provisioner Delete Immediate false 3d23h
    csi-sfsturbo everest-csi-provisioner Delete Immediate true 3d23h

    Storage Class Storage Resource
    ------------------- --------------------------
    csi-disk EVS
    csi-disk-topology EVS with delayed binding
    csi-nas SFS
    csi-obs OBS
    csi-sfsturbo SFS Turbo
    +
  2. +
  3. +

    Run the following command to export the required storage class +details in YAML format:

    +
    kubectl get sc <storageclass-name> -o=yaml
    +
  4. +
  5. +

    Copy the YAML file and create a new storage class.

    +

    Change the storage class name to the name used in the source cluster +to call basic storage resources of the cloud.

    +

    The YAML file of csi-obs is used as an example. Delete the +unnecessary information in italic under the metadata field and +modify the information in bold. You are advised not to modify other +parameters.

    +
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    creationTimestamp: "2021-10-18T06:41:36Z"
    name: <your_storageclass_name> # Use the name of the storage class used in the source cluster.
    resourceVersion: "747"
    selfLink: /apis/storage.k8s.io/v1/storageclasses/csi-obs
    uid: 4dbbe557-ddd1-4ce8-bb7b-7fa15459aac7
    parameters:
    csi.storage.k8s.io/csi-driver-name: obs.csi.everest.io
    csi.storage.k8s.io/fstype: obsfs
    everest.io/obs-volume-type: STANDARD
    provisioner: everest-csi-provisioner
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    +
    note
      +
    • SFS Turbo file systems cannot be directly created using +StorageClass. Go to the SFS Turbo console to create SFS Turbo +file systems that belong to the same VPC subnet and have inbound +ports (111, 445, 2049, 2051, 2052, and 20048) enabled in the +security group.
    • +
    • CCE does not support EVS disks of the ReadWriteMany type. If +resources of this type exist in the source cluster, change the +storage type to ReadWriteOnce.
    • +
    +
  6. +
  7. +

    Restore the cluster application by referring to +Restoring Applications in the Target Cluster and check whether the PVC is successfully created.

    +
    kubectl get pvc
    +

    In the command output, the VOLUME column indicates the name of +the PV automatically created using the storage class.

    +
    NAME   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    pvc Bound pvc-4c8e655a-1dbc-4897-ae6c-446b502f5e77 5Gi RWX local 13s
    +
  8. +
+

Updating Databases

+

In this example, the database is a local MySQL database and does not +need to be reconfigured after the migration.

+
note
    +
  • If the RDS instance is in the same VPC as the CCE cluster, it can be +accessed using the private IP address. Otherwise, it can only be +accessed only through public networks by binding an EIP. You are +advised to use the private network access mode for high security and +good RDS performance.
  • +
  • Ensure that the inbound rule of the security group to which RDS +belongs has been enabled for the cluster. Otherwise, the connection +will fail.
  • +
+
    +
  1. +

    Log in to the RDS console and obtain the private IP address and port +number of the DB instance on the Basic Information page.

    +
  2. +
  3. +

    Run the following command to modify the WordPress workload:

    +
    kubectl edit deploy wordpress
    +

    Set the environment variables in the env field.

    +
      +
    • WORDPRESS_DB_HOST: address and port number used for accessing the database, that is, the internal network address and port number obtained in the previous step.
    • +
    • WORDPRESS_DB_USER: username for accessing the database.
    • +
    • WORDPRESS_DB_PASSWORD: password for accessing the database.
    • +
    • WORDPRESS_DB_NAME: name of the database to be connected.
    • +
    +
  4. +
  5. +

    Check whether the RDS database is properly connected.

    +
  6. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-images/index.html b/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-images/index.html new file mode 100644 index 000000000..c12f34ea0 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-images/index.html @@ -0,0 +1,154 @@ + + + + + +Migrating Container Images | Architecture Center + + + + + +

Migrating Container Images

+

Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.

+

This blueprint describes three different scenarios for migrating image repositories to SWR smoothly. You can select one as required:

+
SolutionApplication ScenarioPrecautions
Migrating images to SWR using Docker commandsSmall quantity of images- Disk storage leads to the timely deletion of local images and time-cost flushing.
- Docker daemon strictly restricts the number of concurrent pull/push operations, so high-concurrency synchronization cannot be performed.
- Scripts are complex because HTTP APIs are needed to perform the operations that cannot be implemented through Docker CLI.
Migrating images to SWR using image-syncerA large number of images- Many-to-many image repository synchronization is supported.
- Docker Registry V2-based image repositories (such as Docker Hub, Quay, and Harbor) can be migrated to SWR.
- Memory- and network-dependent synchronization is fast.
- Flushing the Blob information of synchronized images avoids repetition.
- The number of concurrent synchronization tasks can be adjusted in the configuration file.
- Automatically retrying failed synchronization tasks can resolve most network jitter during image synchronization.
- Docker or other programs are not required.
Synchronizing images across clouds from Harbor to SWRA customer deploys services in multiple clouds and uses Harbor as their image repository.Only Harbor v1.10.5 and later versions are supported.
+

Migrating Images to SWR using Docker Commands

+

SWR provides easy-to-use image hosting and efficient distribution +services. If small quantity of images need to be migrated, enterprises +can use the docker pull/push command to migrate images to SWR:

+
    +
  1. +

    Pull images from the source repository. +Run the docker pull command to pull the images.

    +
    Example

    docker pull nginx:latest

    +

    Run the docker images command to check whether the images are +successfully pulled.

    +
    docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    nginx latest 22f2bf2e2b4f 5 hours ago 22.8MB
    +
  2. +
  3. +

    Push the images pulled to SWR.

    +

    a. Log in to the VM where the target container is located and log +in to SWR. For details, see Uploading an Image Through a Container Engine Client.

    +

    b. Tag the images: docker tag [Image name:Tag name] [Image repository +address]/[Organization name]/[Image name:Tag name]

    +
    example

    docker tag nginx:v1 swr.eu-de.otc.t-systems.com/cloud-develop/nginx:v1

    +

    c. Run the following command to push the images to the target image +repository: docker push [Image repository address]/[Organization +name]/[Image name:Tag name]

    +
    Example

    docker push swr.eu-de.otc.t-systems.com/cloud-develop/nginx:v1

    +

    d. Check whether the following information is returned. If yes, the +push is successful.

    +
    fbce26647e70: Pushed
    fb04ab8effa8: Pushed
    8f736d52032f: Pushed
    009f1d338b57: Pushed
    678bbd796838: Pushed
    d1279c519351: Pushed
    f68ef921efae: Pushed
    v1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780
    +

    To view the pushed image, refresh the My Images page.

    +
  4. +
+

Migrating Images to SWR using image-syncer

+

If small quantity of images need to be migrated, you can use Docker +commands. However, for thousands of images and several TBs of image +repository data, it takes a long time and even data may be lost. In this +case, you can use the open-source image migration tool +image-syncer:

+
    +
  1. +

    Download, decompress, and run image-syncer.

    +

    The following uses image-syncer v1.3.1 as an example.

    +
    wget https://github.com/AliyunContainerService/image-syncer/releases/download/v1.3.1/image-syncer-v1.3.1-linux-amd64.tar.gz
    tar -zvxf image-syncer-v1.3.1-linux-amd64.tar.gz
    +
  2. +
  3. +

    Create auth.json, the authentication information file of the +image repositories.

    +

    image-syncer supports the Docker image repository based on Docker +Registry V2. Enter the authentication information as required. In +the following example, the image repository of eu-de is migrated to +eu-nl.

    +

    The following describes how to write the authentication information +of the source and target repositories.

    +
    {
    "swr.eu-de.otc.t-systems.com": {
    "username": "eu-de_otc@F1I3Q......",
    "password": "2fd4c969ea0......"
    },
    "swr.eu-nl.otc.t-systems.com": {
    "username": "eu-nl_otc@4N3FA......",
    "password": "f1c82b57855f9d35......"
    }
    }
    +

    In the preceding commands, swr.eu-de.otc.t-systems.com indicates +the image repository address. You can obtain the username and +password from the login command as follows:

    +

    Log in to the SWR console, and click Generate Login Command in +the upper right corner to obtain the login command in the dialog box +displayed, as shown in the following figure.

    +

    Figure 1 Generating a login command

    +

    In the above figure :

    +
      +
    • eu-de_otc@9LA\...\... is the username
    • +
    • 077be\...\...\...\..... is the password and
    • +
    • swr.eu-de.otc.t-systems.com is the image repository address.
    • +
    +
  4. +
  5. +

    Create images.json, the image synchronization description file.

    +

    In the following example, the source repository address is on the +left, and the target repository address is on the right. +image-syncer also supports other description modes. For details, see +README.md.

    +
    {
    "swr.eu-de.otc.t-systems.com/org-ss/canary-consumer": "swr.eu-nl.otc.t-systems.com/dev-container/canary-consumer"
    }
    +
  6. +
  7. +

    Run the following command to migrate the images to SWR:

    +
    ./image-syncer \--auth=./auth.json \--images=./images.json
    \--namespace=dev-container \--registry=swr.eu-de.otc.t-systems.com
    \--retries=3 \--log=./log
    +
  8. +
+

Synchronizing Images Across Clouds from Harbor to SWR

+

Harbor is an open-source enterprise-class Docker Registry server +developed by VMware. It extends the Docker Distribution by adding the +functionalities such as role-based access control (RBAC), image +scanning, and image replication. Harbor has been widely used to store +and distribute container images.

+

Our scenarion in this blueprint is a customer that deploys services in multiple clouds and uses Harbor as their +image repository. We are going to be accessing SWR through a public network.

+
    +
  1. +

    Configure a registry endpoint on Harbor.

    +
    note

    Open Telekom Cloud SWR has not yet integrated with Harbor. You need clone this repo and build it from branch opentelekomcloud_adapter.

    +

    Add an endpoint and configure the following parameters.

    +

    image2

    +
      +
    • Provider: Select Open Telekom Cloud SWR.
    • +
    • Name: Enter a customized name.
    • +
    • Endpoint URL: Enter the public network domain name of +SWR in the format of https://{SWR image repository address}. To obtain the image repository address, log in +to the SWR console, choose My Images, and click Upload +Through Client. You can view the image repository address +of the current region on the page that is displayed.
    • +
    • Access ID: Enter an access ID in the format of Regional project name@\[AK\].
    • +
    • Access Secret: Enter an AK/SK. To obtain an AK/SK, see Obtaining a Long-Term Valid Login Command.
    • +
    • Verify Remote Cert: Deselect the option.
    • +
    +
  2. +
  3. +

    Configure a replication rule.

    +

    a. Create a replication rule.

    +

    image1

    +

    b. Configure the following parameters:

    +
      +
    • Name: Enter a customized name.
    • +
    • Replication mode: Select Push-based, indicating that images are pushed from the local Harbor to the remote repository.
    • +
    • Source resource filter: Filters images on Harbor based on the configured rules.
    • +
    • Destination registry: Select the endpoint created previously.
    • +
    • Destination +Namespace: Enter the organization name on SWR. +Flattening: Select Flatten All Levels, indicating +that the hierarchy of the registry is reduced when copying +images. If the directory of Harbor registry is +library/nginx and the directory of the endpoint +namespace is dev-container, after you flatten all +levels, the directory of the endpoint namespace is +library/nginx -> dev-container/nginx.
    • +
    • Trigger Mode: Select Manual.
    • +
    • Bandwidth: Set the maximum network bandwidth when +executing the replication rule. The value -1 indicates +no limitation.
    • +
    +
  4. +
  5. +

    After creating the replication rule, select it and click +REPLICATE to complete the replication.

    +

    image2

    +
  6. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/connecting-a-redis-client-to-dcs-through-cce/index.html b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/connecting-a-redis-client-to-dcs-through-cce/index.html new file mode 100644 index 000000000..ba098ed14 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/connecting-a-redis-client-to-dcs-through-cce/index.html @@ -0,0 +1,195 @@ + + + + + +Connecting a Redis Client to DCS Through CCE | Architecture Center + + + + + +

Connecting a Redis Client to DCS Through CCE

+

With the development of the container technology, more and more applications are deployed in containers. This section describes how to deploy a Redis client in a Cloud Container Engine (CCE) cluster container and connect it to DCS.

+

image1

+

Prerequisites

+

Prepare the following resources:

+
    +
  • +

    VPC and subnet, for example, vpc-test. For details, see +Creating a VPC.

    +

    (Optional) Create two subnets. Place your DCS instance in one subnet (subnet 1) and your CCE cluster in the other (subnet 2).

    +
  • +
  • +

    DCS instance, for example, dcs-test. For details, see +Creating a DCS Redis Instance.

    +

    When creating a DCS instance, select the created VPC (vpc-test) and subnet 1.

    +
  • +
  • +

    CCE cluster, for example, cce-test. For details, see +Creating a CCE Cluster.

    +

    When creating a CCE cluster, set Network Model to VPC network, and select VPC vpc-test and subnet 2.

    +
  • +
  • +

    CCE node pool, for example, cce-test-nodepool. For details, +see Creating a Node Pool.

    +

    When creating a node pool, set Node Type to Elastic Cloud Server (VM), Container Engine to Docker, OS to +CentOS 7.7, and bind an existing EIP or create one.

    +
  • +
+

Solution Design

+

image2

+

Creating a Client Image

+
    +
  1. +

    Download a Redis client.

    +

    a. Log in to the CCE cluster node.

    +

    Click the name of the created node pool. On the displayed page, +click Remote Login in the upper right corner.

    +

    image3

    +

    b. Run the gcc --version command to check whether the GCC +compiler for compiling the Redis program is installed in the OS. +The following figure shows that the GCC compiler has been +installed.

    +

    image4

    +

    If the GCC compiler is not installed, run the following commands +to install it:

    +
    sudo yum update
    yum -y install gcc
    yum -y install gcc-c++
    +

    c. Run the following command to create the redis directory in +the home directory, and then go to the directory:

    +
    cd /home 
    mkdir redis
    cd redis
    +

    d. Run the following command to download the Redis client. The +following takes version 5.0.13 as an example.

    +
    sudo wget https://download.redis.io/releases/redis-5.0.13.tar.gz
    +

    image5

    +

    e. Decompress the Redis package, go to the Redis directory, run the +compilation command, and return to the Redis directory.

    +
    tar xvzf redis-5.0.13.tar.gz
    cd redis-5.0.13
    make redis-cli
    cd ..
    +
  2. +
  3. +

    Create a Dockerfile.

    +

    Run the vim Dockerfile command to create a Dockerfile and enter +the following information:

    +
    Dockerfile
    FROM centos:7
    RUN useradd -d /home/redis -m redis
    COPY ./redis-5.0.13 /home/redis/redis-5.0.13
    RUN chown redis:redis /home/redis/redis-5.0.13 -R
    USER redis
    ENV HW_HOME=/home/redis/redis-5.0.13
    ENV PATH=$HW_HOME/src:$PATH
    WORKDIR /home/redis/
    +

    Press ESC to exit the editing mode and type :wq! to save the +configuration and exit the editing interface.

    +
  4. +
  5. +

    Build a client image.

    +

    a. Choose Software Repository for Container from the service +list to go to the SWR console.

    +

    b. Click Create Organization in the upper right corner and +enter an organization name to create an organization. You can +also use an existing organization. (Click Organization +Management in the navigation pane to view organizations.)

    +

    c. On the SWR Dashboard page, click Generate Login Command +in the upper right corner to obtain and copy the login command. +(swr.xxxxxx.com at the end of the login command is the image +repository address.)

    +

    Figure 1 Obtaining a login command

    +

    d. Run the copied login command on the CCE node to log in to SWR.

    +

    Figure 2 Logging in to SWR

    +

    e. Run the following command to build an image:

    +
    docker build -t <Image repository address>/<Organization name>/<Image name :version>
    +

    Image repository address indicates the address of the image +repository, which is at the end of the login command. +Organization name indicates the name of the organization. Image name +indicates the name of the image to be built. version indicates +the image version. Replace them with the actual values.

    +

    Figure 3 Building an image

    +
  6. +
  7. +

    Run the following command to upload the client image to SWR:

    +
    docker push <Image repository address>/<Organization name>/<Image name :version>
    +

    Figure 4 Uploading an image

    +
  8. +
  9. +

    After the image is uploaded, you can view it on the My Images +page of the SWR console.

    +

    Figure 5 Viewing images

    +
  10. +
+

Creating a Workload

+
    +
  1. +

    On the DCS console, click the created Redis instance dcs-test to +go to the details page.

    +
  2. +
  3. +

    In the Connection area, obtain the IP address and port number of +the Redis instance.

    +
  4. +
  5. +

    Click Connect to Redis in the upper right corner to use the Web +CLI.

    +
  6. +
  7. +

    On the Web CLI, run a SET command. The following figure uses +SET hello "hello redis!" as an example.

    +

    image6

    +
  8. +
  9. +

    On the CCE console, click the created CCE cluster cce-test.

    +
  10. +
  11. +

    In the navigation pane, choose Workloads. Click Create +Workload in the upper right corner. For details, see Creating a +Workload.

    +
      +
    • +

      In the Container Settings -> Basic Info area, set +Image Name to the name of the created Redis image.

      +
    • +
    • +

      In the Container Settings -> Lifecycle area, configure +the parameters as follows:

      +
        +
      • Command: /bin/bash
      • +
      • Args: -c
      • +
      • while true ;do sleep 10;/home/redis/redis-5.0.13/src/redis-cli h** **{10.0.0.0}** **-p** **6379** **-a** **{DCS instance password}** **get** **hello;done**
      • +
      +

      In the preceding command, 10.0.0.0 indicates the IP address +of the DCS instance, 6379 indicates the port number of the +DCS instance, {DCS instance password} indicates the password +of the DCS instance, and hello indicates the data set when +you connect to Redis through the Web CLI. Replace them with the +actual values.

      +

      Figure 6 Configuring lifecycle parameters

      +
    • +
    +
  12. +
  13. +

    If the workload is in the Running state, it has been +successfully created.

    +

    Figure 7 Checking the workload status

    +
  14. +
+

Testing the Workload

+
    +
  1. +

    Log in to the CCE cluster node.

    +
  2. +
  3. +

    Download and configure the kubectl configuration file by referring +to Connecting to a Cluster Using kubectl.

    +
  4. +
  5. +

    Run the following command. If Running is returned, the Redis +container is running.

    +
    kubectl get pod -n default
    +

    image7

    +
  6. +
  7. +

    Run the following command to view the logs of the Redis container:

    +
    kubectl logs --tail 10 -f redis-xxxxxxxx -n default
    +

    redis-xxxxxxxx indicates the name of the created workload pod. +(Click the workload name to view the workload pod name.)

    +

    image8

    +

    In the command output, the information returned by DCS is hello redis!, which is the data you've previously set.

    +
  8. +
  9. +

    The test is complete.

    +
  10. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-elb-for-public-access-to-dcs/index.html b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-elb-for-public-access-to-dcs/index.html new file mode 100644 index 000000000..83ef7a9a4 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-elb-for-public-access-to-dcs/index.html @@ -0,0 +1,151 @@ + + + + + +Using ELB for Public Access to DCS | Architecture Center + + + + + +

Using ELB for Public Access to DCS

+

Currently, DCS Redis 4.0, 5.0, and 6.0 instances cannot be bound with elastic IP addresses (EIPs) and cannot be accessed over public networks directly. This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster instance or a node in a Redis Cluster instance through public networks by enabling cross-VPC backend on a load balancer.

+
note
    +
  • Due to cluster node address translation, you cannot access a Redis +Cluster as a whole. You can only access individual nodes in the +cluster.
  • +
  • Do not use public network access in the production environment. +Client access exceptions caused by poor public network performance +will not be included in the SLA.
  • +
+

Solution Design

+

The following figure shows the process for accessing DCS through ELB.

+

Figure 1 Process for accessing DCS through ELB

+

Prerequisites

+
    +
  1. Create a VPC +or use an existing one.
  2. +
  3. Create a DCS Redis instance. +Record the IP address and port number of the instance.
  4. +
  5. Create a dedicated load balancer.
  6. +
+
note
    +
  • A shared load balancer does not support cross-VPC backend +servers. Therefore, it cannot be bound to a DCS instance.
  • +
  • For Specification, select Network load balancing +(TCP/UDP).
  • +
  • To access the DCS instance over public networks, enable IP as +a Backend when creating a dedicated load balancer.
  • +
+
    +
  1. +

    Add a TCP listener +to the dedicated load balancer.

    +
    note
      +
    • When adding a backend server, click the IP as Backend +Servers tab and then click Add IP as Backend Sever.
    • +
    • In the Backend Server IP Address Column, enter the IP address +and in the Backend Port Column, enter the port number of your +DCS instance.
    • +
    • A Redis Cluster DCS instance contains multiple master/replica +pairs. When configuring an IP as Backend server, you can add the +IP address and port number of any master or replica node.
    • +
    • If you enable Health Check, you do not need to manually +configure the port. By default, the service port of the backend +server will be used.
    • +
    +
  2. +
  3. +

    Create a VPC peering connection. +For the local VPC, select the VPC where your load balancer is located. For the peer VPC, select the VPC where your DCS instance is +located.

    +
    note

    Even if your load balancer and DCS instance are in the same VPC, you +still need to create a VPC peering connection. For the local VPC, +select the VPC where your load balancer and DCS instance are +located. For the peer VPC, select another VPC.

    +
  4. +
  5. +

    Click the name of the VPC peering connection to go to its details +page. Obtain Local VPC CIDR Block and Peer VPC CIDR Block.

    +

    image1

    +
  6. +
  7. +

    Configure local and peer routes for the VPC peering connection.

    +

    a. On the Local Routes and Peer Routes tab pages, click the +link to go to the Route Tables page.

    +

    image2

    +

    b. Local route: On the summary page of local routes, click Add +Route. In the displayed Add Route dialog box, set +Destination to the value of Peer VPC CIDR Block of the +VPC peering connection, set Next Hop Type to VPC peering +connection, set Next Hop to the VPC peering connection +created in 5 <dcs-bp-211201001__li782011051412>, and click +OK.

    +

    c. Peer route: On the summary page of peer routes, click Add +Route. In the displayed Add Route dialog box, set +Destination to the value of Local VPC CIDR Block of the +VPC peering connection, set Next Hop Type to VPC peering +connection, set Next Hop to the VPC peering connection +created in 5 <dcs-bp-211201001__li782011051412>, and click +OK.

    +
    note

    If the load balancer and the DCS instance are in the same VPC, +you do not need to add a peer route. +:::

    +
  8. +
  9. +

    Perform a health check on the IP address of the DCS instance. If the +health check result is Healthy, the added cross-VPC backend IP +address can be used.

    +

    a. In the navigation pane of Network Console, choose Elastic +Load Balance -> Load Balancers. +b. Click the name of the created Elastic Load Balancer. +c. On the Backend Server Server Groups -> IP as Backend +Servers tab page, view the health check result of the DCS +instance IP address.

    +

    image3

    +
  10. +
+

Connecting to the DCS Instance Through ELB

+
    +
  • +

    Connecting to a node in a Redis Cluster DCS instance through ELB +a. View the basic information of the load balancer created in +3 <dcs-bp-211201001__li185984400426>.

    +

    image4

    +

    b. Create an +ECS, +log in to it, and install the Redis client by referring to +redis-cli.

    +

    c. On the Redis client, connect to the DCS instance using the IP +address and port number configured in +4 <dcs-bp-211201001__li2180434205513>. If you use the EIP and +port number of the load balancer, an error will be reported.

    +

    image5

    +
  • +
  • +

    Connecting to a single-node, master/standby, read/write splitting, +or Proxy Cluster DCS instance through ELB +a. View the IPv4 EIP and port number of the load balancer created +in 3 <dcs-bp-211201001__li185984400426>.

    +

    image6

    +

    image7

    +

    b. Create an +ECS, +log in to it, and install the Redis client by referring to +redis-cli.

    +

    c. Use redis-cli to access the load balancer using its EIP and port +number (which is 80).

    +

    image8

    +

    d. Write a key through ELB.

    +

    image9

    +

    e. Log in to the DCS console. On the Cache Manager page, choose +More -> Connect to Redis in the row that contains the +DCS instance created in 2 <dcs-bp-211201001__li145661168417>. +Check whether the key written in +4 <dcs-bp-211201001__li352815512015> exists.

    +

    image10

    +
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-nginx-for-public-access-to-single-node-master-standby-or-proxy-cluster-dcs-redis-instances/index.html b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-nginx-for-public-access-to-single-node-master-standby-or-proxy-cluster-dcs-redis-instances/index.html new file mode 100644 index 000000000..eef0e6101 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-nginx-for-public-access-to-single-node-master-standby-or-proxy-cluster-dcs-redis-instances/index.html @@ -0,0 +1,160 @@ + + + + + +Using Nginx for Public Access of DCS Redis Instances | Architecture Center + + + + + +

Using Nginx for Public Access of DCS Redis Instances

+

This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster DCS Redis 4.0, 5.0, or 6.0 instance by using a jump server. This solution cannot be used to access a Redis Cluster instance over public networks.

+

Currently, DCS Redis 4.0, 5.0, and 6.0 instances cannot be bound with +elastic IP addresses (EIPs) and cannot be accessed over public networks +directly.

+

As shown in figure below, the ECS where +Nginx is installed is a jump server. The ECS is in the same VPC as the +DCS Redis instances and can access the DCS Redis instances through the +subnet IP addresses. After an EIP is bound to the ECS, the ECS can be +accessed over the public network. Nginx can listen on multiple ports and +forward requests to different DCS Redis instances.

+

Figure 1 Accessing DCS Redis instances in a VPC by usingNginx

+
note

Do not use public network access in the production environment. Client +access exceptions caused by poor public network performance will not be +included in the SLA.

+

Creating an ECS

+
    +
  1. +

    Obtain the VPC where the DCS Redis instance is deployed.

    +

    As shown in the following figure, the master/standby instance is +deployed in the vpc-demo VPC.

    +

    Figure 2 DCS Redis instance details

    +
  2. +
  3. +

    Create an ECS. Configure the ECS with the vpc-demo VPC, bind an +EIP to the ECS, and select the bandwidth as required.

    +

    Figure 3 ECS details

    +
  4. +
+

Installing Nginx

+

After Creating an ECS, install Nginx on the ECS. The following uses +CentOS Stream 9 as an example to describe how to install Nginx. The +commands vary depending on the OS.

+
    +
  1. +

    Run the following command to add Nginx to the Yum repository:

    +
    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    +
  2. +
  3. +

    Run the following command to check whether Nginx has been added +successfully:

    +
    yum search nginx
    +
  4. +
  5. +

    Run the following command to install Nginx:

    +
    sudo yum install -y nginx
    +
  6. +
  7. +

    Run the following command to install the stream module:

    +
    sudo yum install nginx-mod-stream --skip-broken
    +
  8. +
  9. +

    Run the following commands to start Nginx and set it to run +automatically upon system startup:

    +
    sudo systemctl start nginx.service
    sudo systemctl enable nginx.service
    +
  10. +
  11. +

    In the address box of a browser, enter the server address (the EIP +of the ECS) to check whether Nginx is installed successfully.

    +

    If the following page is displayed, Nginx has been installed +successfully.

    +

    image1

    +
  12. +
+

Setting Up Nginx

+

After installing Nginx, configure request forwarding rules to specify +the ports that Nginx listens on and the DCS Redis instances that Nginx +forwards requests to.

+
    +
  1. +

    Open and modify the configuration file.

    +
    cd /etc/nginx
    sudo vi nginx.conf
    +

    The following is a configuration example. To access multiple DCS +Redis instances over public networks, configure multiple server +sections and configure the DCS Redis instance connection addresses +for proxy\pass.

    +
    nginx.conf
        stream {
    server {
    listen 8080;
    proxy_pass 192.168.0.5:6379;
    }
    server {
    listen 8081;
    proxy_pass 192.168.0.6:6379;
    }
    }
    +
    note

    Set proxy\pass to the IP address of the DCS Redis instance in +the same VPC. You can obtain the IP address from the Connection +area on the DCS instance details page.

    +

    Figure 4 Adding Nginx configurations

    +
  2. +
  3. +

    Restarting Nginx.

    +
    sudo service nginx restart
    +
  4. +
  5. +

    Verify whether Nginx has been started.

    +
    netstat -an|grep 808
    +

    Figure 5 Starting Nginx and verifying the start

    +

    If Nginx is listening on ports 8080 and 8081, Nginx has been started successfully.

    +
  6. +
+

(Optional) Persistent Connections

+

If persistent connections (pconnect in Redis terminology) are required +for public network access, add the following configuration in +Setting up Nginx:

+
    +
  • +

    Timeout of a connection from Nginx to the server"

    +
        stream {
    server {
    listen 8080;
    proxy_pass 192.168.0.5:6379;
    proxy_socket_keepalive on;
    proxy_timeout 60m;
    proxy_connect_timeout 60s;
    }
    server {
    listen 8081;
    proxy_pass 192.168.0.6:6379;
    proxy_socket_keepalive on;
    proxy_timeout 60m;
    proxy_connect_timeout 60s;
    }
    }
    +

    The default value of proxy\timeout is 10m. You can set it +to 60m or other values as required. For details about this +parameter, see the Nginx official website.

    +
  • +
  • +

    Timeout of a connection from the client to Nginx:

    +
        http {
    keepalive_timeout 3600s;
    }
    +

    The default value of keepalive\_timeout is 75s. You can set +it to 3600s or other values as required. For details about this +parameter, see the Nginx official website.

    +
  • +
+

Accessing DCS Redis Instances Using Nginx

+
    +
  1. +

    Log in to the ECS console and check the security group rules of the +ECS that serves as the jump server. Ensure that access over ports +8080 and 8081 is allowed.

    +
      +
    1. Click the ECS name to go to the details page.
    2. +
    3. On the Security Groups tab page, click Modify Security +Group Rule. The security group configuration page is +displayed.
    4. +
    +

    Figure 6 Checking the ECS security group

    +

    Figure 7 Adding an inbound rule for the security group

    +
  2. +
  3. +

    In the public network environment, open the redis-cli and run the +following command to check whether the login and query are +successful:

    +
    note

    Ensure that redis-cli has been installed in the public network +environment by referring to +redis-cli.

    +
    **./redis-cli -h** *{myeip}* **-p** *{port}* **-a** *{mypassword}*
    +

    In the preceding command, {myeip} indicates the host connection +address, which should be replaced with the EIP of the ECS. Replace +{port} with the listening port of Nginx.

    +

    As shown in the following figures, the two listening ports are 8080 +and 8081, which correspond to two DCS Redis instances.

    +

    Figure 8 Accessing the first DCS Redis instance using Nginx

    +

    Figure 9 Accessing the second DCS Redis instance using Nginx

    +

    The jump server has now been set up. You can access Redis over +public networks.

    +
  4. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-ssh-tunneling-for-public-access-to-a-dcs-instance/index.html b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-ssh-tunneling-for-public-access-to-a-dcs-instance/index.html new file mode 100644 index 000000000..cbd487f17 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-ssh-tunneling-for-public-access-to-a-dcs-instance/index.html @@ -0,0 +1,79 @@ + + + + + +Using SSH Tunneling for Public Access to a DCS Instance | Architecture Center + + + + + +

Using SSH Tunneling for Public Access to a DCS Instance

+

VPCs are used to ensure network security of public cloud services, such as DCS. Your DCS instance can be accessed only by an ECS that is in the same VPC as the instance.

+

Solution Design

+

If an EIP is bound to a Open Telekom Cloud ECS, you can remotely access +the ECS from a local computer. You can create an SSH tunnel as a proxy to connect +your DCS instance and local computer to achieve proxy forwarding.

+
note
    +
  • Redis Cluster DCS Redis 4.0, 5.0, or 6.0 instances do not support +public access using this solution.
  • +
  • Do not use public network access in the production environment. +Client access exceptions caused by poor public network performance +will not be included in the SLA.
  • +
+

Prerequisites

+

You have a DCS instance and a local computer that can connect to the +Internet. Tools such as MobaXterm and the Redis client have been +installed.

+

You have an ECS that meets the following requirements:

+
    +
  • The ECS is bound with an EIP for public access.
  • +
  • The VPC and subnet configured for the ECS are the same as those +configured for the DCS instance.
  • +
  • Security group rules have been correctly configured for the ECS.
  • +
  • The ECS runs the Linux OS.
  • +
+

If these prerequisites are met, the ECS can communicate with the DCS +instance and you can remotely connect to the ECS using SSH from a local +computer.

+

Using MobaXterm to Create a Tunnel as a Jump Server

+
    +
  1. +

    Create an SSH session for connecting to the ECS using port 22.

    +

    Figure 1 Creating an SSH session

    +
  2. +
  3. +

    After the session is configured, enter the username and password to +log in to the ECS. After login, enter TMOUT=0 to prevent the +session from being automatically closed due to timeout.

    +

    Figure 2 Entering &quot;TMOUT=0&quot;

    +
  4. +
  5. +

    Click Tunneling to create a tunnel.

    +

    Figure 3 Creating a tunnel

    +
  6. +
  7. +

    Set the local IP address to 127.0.0.1 and start the tunnel.

    +

    Figure 4 Starting the tunnel

    +
  8. +
  9. +

    Open the Redis client on the local computer. The following uses the +Redis CLI as an example. Run the following command to access the DCS +instance:

    +
    **Redis-cli -h 127.0.0.1 -p 3306 -a {password}**
    +

    Parameter description:

    +

    -h host name: localhost or 127.0.0.1, which is the same as +the local IP address configured for the tunnel.

    +

    -p port number: 3306, which is the same as the forward port +configured for the tunnel.

    +

    -a password: password of the DCS instance.

    +
  10. +
  11. +

    If the connection is successful, the following information is +displayed.

    +

    Figure 5 Successfully connecting to a DCS instance

    +
  12. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds/index.html b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds/index.html new file mode 100644 index 000000000..b7c27a2e5 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-dds/index.html @@ -0,0 +1,299 @@ + + + + + +From ECS-hosted MongoDB to DDS | Architecture Center + + + + + +

From ECS-hosted MongoDB to DDS

+

DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

+

Solution Design

+

This section describes how to use DRS to migrate data from an ECS +database to a DDS instance on the current cloud. The following network +scenarios are supported:

+

Source and destination databases are in the same VPC

+

Figure 1 Source and destination databases in the same VPC

+

Source and destination databases are in different VPCs

+

Figure 2 Source and destination databases in the same region and different VPCs

+

Procedure

+

Figure 3 Flowchart

+

Migration Suggestions

+
important
    +
  • Database migration is closely impacted by a wide range of +environmental and operational factors. To ensure the migration goes +smoothly, perform a test run before the actual migration to help you +detect and resolve any potential issues in advance. Recommendations +on how to minimize any potential impacts on your data base are +provided in this section.
  • +
  • It is strongly recommended that you start your migration task during +off-peak hours. A less active database is easier to migrate +successfully. If the data is fairly static, there is less likely to +be any severe performance impacts during the migration.
  • +
+

Notes on Migration

+
important

For details, see +precautions +on using specific migration tasks in Data Replication Service Real-Time +Migration.

+

Prerequisites

+
    +
  1. +

    Permissions:

    +

    Table 1 below, lists the permissions required for the source and destination +databases when migrating data from a MongoDB database on an ECS to +DDS on the current cloud.

    +
    DatabaseFull Migration PermissionFull+Incremental Migration Permission
    SourceReplica set: The source database user must have the read permission for the database to be migrated.
    Single node: The source database user must have the read permission for the database to be migrated.
    Cluster: The source database user must have the read permission for the databases to be migrated and the config database. To migrate accounts and roles of the source database, the source database user must have the read permission for the system.users and system.roles system tables of the admin database.
    Replica set: The source database user must have the read permission for the databases to be migrated and the local database.
    Single node: The source database user must have the read permission for the databases to be migrated and the local database.
    Cluster: The source mongos node user must have the readAnyDatabase permission for the databases to be migrated and the config database. The source shard node user must have the readAnyDatabase permission for the admin database and the read permission for the local database. To migrate accounts and roles of the source database, the source database user must have the read permission for the system.users and system.roles system tables of the admin database.
    DestinationThe destination database user must have the dbAdminAnyDatabase permission for the admin database and the readWrite permission for the destination database. If the destination database is a cluster instance, the migration account must have the read permission for the config database.
    +

    Table 1 Migration permissions

    +
      +
    • +

      Source database permissions:

      +

      The source MongoDB database user must have all the required +permissions listed in the table above. +If the permissions are insufficient, create a user that has all +of the permissions on the source database.

      +
    • +
    • +

      Destination database permissions:

      +

      The initial account of the DDS instance has the required +permissions.

      +
    • +
    +
  2. +
  3. +

    Network settings

    +
      +
    • The source database and destination DDS DB instance must be in +the same region.
    • +
    • The source database and destination DDS DB instance can be +either in the same VPC or different VPCs. +
        +
      • +

        If the source and destination databases are in different +VPCs, the subnets of the source and destination databases +are required to be in different CIDR blocks. You need to +create a VPC peering connection between the two VPCs.

        +

        For details, see VPC Peering Connection +Overview +in the Virtual Private Cloud User Guide.

        +
      • +
      • +

        If the source and destination databases are in the same VPC, +the networks are interconnected by default.

        +
      • +
      +
    • +
    +
  4. +
  5. +

    Security rules

    +
      +
    • In the same VPC, the network is connected by default. You do not +need to set a security group.
    • +
    • In different VPCs, establish a VPC peering connection between +the two VPCs. You do not need to set a security group.
    • +
    +
  6. +
  7. +

    Other

    +

    You need to export the user information of the MongoDB database +first and manually add it to the destination DDS DB instance because +the user information will not be migrated.

    +
  8. +
+

Migrating the Database

+
    +
  1. +

    Create a migration task.

    +
      +
    1. +

      Log in to the management console and choose Databases -> +Data Replication Service to go to the DRS console.

      +
    2. +
    3. +

      On the Online Migration Management page, click Create +Migration Task.

      +
    4. +
    5. +

      On the Create Replication Instance page, configure the task +details, recipient, and replication instance and click Next.

      +

      Figure 4 Replication instance information

      +
      ParameterDescription
      ProjectThe project corresponds to the current region and can be changed.
      Task NameThe task name consists of 4 to 50 characters, starts with a letter, and can contain only letters (case-insensitive), digits, hyphens (-), and underscores (_).
      DescriptionThe description consists of a maximum of 256 characters and cannot contain the following special characters: =<>&'\"
      +

      Table 2 Task settings

      +
      ParameterDescription
      Data FlowTo the cloud
      Source DB EngineSelect MongoDB.
      Destination DB EngineSelect DDS.
      Network TypeSelect VPC.
      Destination DB InstanceThe DDS DB instance you purchased.
      Migration TypeSelect Full+Incremental as an example:
      Full: This migration type is suitable for scenarios where a service interruption is acceptable. All objects and data in non-system databases are migrated to the destination database at one time. The objects include tables, views, and stored procedures.
      If you perform a full migration, you are advised to stop operations on the source database. Otherwise, data generated in the source database during the migration will not be synchronized to the destination database.
      Full+Incremental: This migration type allows you to migrate data without interrupting services. After a full migration initializes the destination database, an incremental migration initiates and parses logs to ensure data consistency between the source and destination databases. Note If you select the Full+Incremental migration type, data generated during the full migration will be synchronized to the destination database with zero downtime, ensuring that both the source and destination databases remain accessible.
      Source DB Instance TypeIf you select Full+Incremental for Migration Type, set this parameter based on the source database. Non-cluster is selected as an example. If the source database is a cluster instance, set this parameter to Cluster. If the source database is a replica set or a single node instance, set this parameter to Non-cluster.
      Obtain Incremental DataThis parameter is available for configuration if Source DB Instance Type is set to Cluster. You can determine how to capture data changes during the incremental synchronization.
      - oplog: For MongoDB 3.2 or later, DRS directly connects to each shard of the source DB instance to extract data. If you select this mode, you must disable the balancer of the source instance. When testing the connection, you need to enter the connection information of each shard node of the source instance.
      - changeStream: This method is recommended. For MongoDB 4.0 and later, DRS connects to mongos nodes of the source instance to extract data. If you select this method, you must enable the WiredTiger storage engine of the source instance. Only whitelisted users can use changeStream. To use this function, submit a service ticket. In the upper right corner of the management console, choose Service Tickets -> Create Service Ticket to submit a service ticket.
      Source Shard QuantityIf Source DB Instance Type is set to Cluster and Obtain Incremental Data is set to oplog, enter the number of source shard nodes. The default minimum number of source DB instances is 2 and the maximum number is 32. You can set this parameter based on the number of source database shards.
      +

      Table 3 Replication instance information

      +
    6. +
    7. +

      On the Configure Source and Destination Databases page, wait +until the replication instance is created. Then, specify source +and destination database information and click Test +Connection for both the source and destination databases to +check whether they have been connected to the replication +instance. After the connection tests are successful, select the +check box before the agreement and click Next.

      +

      Figure 5 Source and destination database details

      +
      ParameterDescription
      Source Database TypeSelect Self-built on ECS.
      VPCA dedicated virtual network in which the source database is located. It isolates networks for different services. You can select an existing VPC or create a VPC. For details on how to create a VPC, see Creating a VPC.
      SubnetA subnet provides dedicated network resources that are logically isolated from other networks, improving network security. The subnet must be in the AZ where the source database resides. You need to enable DHCP for creating the source database subnet. For details on how to create a VPC, see the Creating a VPC section in the Virtual Private Cloud User Guide.
      IP Address or Domain NameThe IP address or domain name of the source database.
      PortThe port of the source database. Range: 1 - 65535
      Database UsernameA username for the source database.
      Database PasswordThe password for the database username.
      SSL ConnectionTo improve data security during the migration, you are advised to enable SSL to encrypt migration links and upload a CA certificate.
      +

      Table 4 Source database information

      +
      ParameterDescription
      DB Instance NameThe DDS DB instance you have selected during the migration task creation is displayed by default and cannot be changed.
      Database UsernameThe username for accessing the destination DDS DB instance.
      Database PasswordThe password for the database username.
      +

      Table 5 Destination database information

      +
    8. +
    9. +

      On the Set Task page, select migration objects and click +Next.

      +

      Figure 6 Migration object

      +
      ParameterDescription
      Migrate AccountThere are accounts that can be migrated completely and accounts that cannot be migrated. You can choose whether to migrate the accounts. Accounts that cannot be migrated or accounts that are not selected will not exist in the destination database. Ensure that your services will not be affected by these accounts. Yes If you choose to migrate accounts, see Migrating Accounts in Data Replication Service User Guide to migrate database users and roles. No During the migration, accounts and roles are not migrated.
      Migrate ObjectYou can choose to migrate all objects, tables, or databases based on your service requirements. All: All objects in the source database are migrated to the destination database. After the migration, the object names will remain the same as those in the source database and cannot be modified. Tables: The selected table-level objects will be migrated. Databases: The selected database-level objects will be migrated. If the source database is changed, click in the upper right corner before selecting migration objects to ensure that the objects to be selected are from the changed source database. Note If you choose not to migrate all of the databases, the migration may fail because the objects, such as stored procedures and views, in the database to be migrated may have dependencies on other objects that are not migrated. To ensure a successful migration, you are advised to migrate all of the databases. When you select an object, the spaces before and after the object name are not displayed. If there are two or more consecutive spaces in the middle of the object name, only one space is displayed. The search function can help you quickly select the required database objects.
      +

      Table 6 Migration object

      +
    10. +
    11. +

      On the Check Task page, check the migration task.

      +
        +
      • +

        If any check fails, review the cause and rectify the fault. +After the fault is rectified, click Check Again.

        +
        note

        For details about how to handle check failures, see +Checking Whether the Source Database Is +Connected +in Data Replication Service User Guide.

        +
      • +
      • +

        If all check items are successful, click Next.

        +

        Figure 7 Task Check

        +
      • +
      +

      You can proceed to the next step only when all check items are +successful. If any alarms are generated, view and confirm the +alarm details first before proceeding to the next step.

      +
    12. +
    13. +

      On the displayed page, specify Start Time and confirm that +the configured information is correct and click Submit to +submit the task.

      +

      Figure 8 Task startup settings

      +
      ParameterDescription
      Start TimeSet Start Time to Start upon task creation or Start at a specified time based on site requirements. The Start at a specified time option is recommended. Note The migration task may affect the performance of the source and destination databases. You are advised to start the task in off-peak hours and reserve two to three days for data verification.
      +

      Table 7 Task startup settings

      +
    14. +
    15. +

      After the task is submitted, go back to the Online Migration +Management page to view the task status.

      +
    16. +
    +
  2. +
  3. +

    Manage the migration task.

    +

    The migration task contains two phases: full migration and +incremental migration. You can manage them in different phases.

    +
      +
    • Full migration +
        +
      • Viewing the migration progress: Click the target full +migration task, and on the Migration Progress tab, you +can see the migration progress of the structure, data, +indexes, and migration objects. When the progress reaches +100%, the migration is complete.
      • +
      • Viewing migration details: In the migration details, you can +view the migration progress of a specific object. If the +number of objects is the same as that of migrated objects, +the migration is complete. You can view the migration +progress of each object in detail. Currently, this function +is available only to whitelisted users. You can submit a +service ticket to apply for this function.
      • +
      +
    • +
    • Incremental Migration Permission +
        +
      • +

        Viewing the synchronization delay: After the full migration +is complete, an incremental migration starts. On the +Online Migration Management page, click the target +migration task. On the displayed page, click Migration +Progress to view the synchronization delay of the +incremental migration. If the synchronization delay is 0s, +the destination database is being synchronized with the +source database in real time. You can also view the data +consistency on the Migration Comparison tab.

        +

        Figure 9 Viewing the synchronization delay

        +
      • +
      • +

        Viewing the migration results: On the Online Migration +Management page, click the target migration task. On the +displayed page, click Migration Comparison and perform a +migration comparison in accordance with the comparison +process, which should help you determine an appropriate time +for migration to minimize service downtime.

        +

        Figure 10 Database comparison
+process

        +

        For details, see Comparing Migration +Items +in Data Replication Service User Guide.

        +
      • +
      +
    • +
    +
  4. +
  5. +

    Cut over services.

    +

    You are advised to start the cutover process during off-peak hours. +At least one complete data comparison is performed during off-peak +hours. To obtain accurate comparison results, start data comparison +at a specified time point during off-peak hours. If it is needed, +select Start at a specified time for Comparison Time. Due to +slight time difference and continuous operations on data, +inconsistent comparison results may be generated, reducing the +reliability and validity of the results.

    +
      +
    1. +

      Interrupt services first. If the workload is not heavy, you may +not need to interrupt the services.

      +
    2. +
    3. +

      Run the following statement on the source database and check +whether any new sessions execute SQL statements within the next +1 to 5 minutes. If there are no new statements executed, the +service has been stopped.

      +
      db.currentOp()
      +
      note

      The process list queried by the preceding statement includes the +connection of the DRS replication instance. If no additional +session executes SQL statements, the service has been stopped.

      +
    4. +
    5. +

      On the Migration Progress page, view the synchronization +delay. When the delay is displayed as 0s and remains stable for +a period, then you can perform a data-level comparison between +the source and destination databases. For details about the time +required, refer to the results of the previous comparison.

      +
        +
      • If there is enough time, compare all objects.
      • +
      • If there is not enough time, use the data-level comparison +to compare the tables that are frequently used and that +contain key business data or inconsistent data.
      • +
      +
    6. +
    7. +

      Determine an appropriate time to cut the services over to the +destination database. After services are restored and available, +the migration is complete.

      +
    8. +
    +
  6. +
  7. +

    Stop or delete the migration task.

    +
      +
    1. Stopping the migration task. After databases and services are +migrated to the destination database, to prevent operations on +the source database from being synchronized to the destination +database to overwrite data, you can stop the migration task. +This operation only deletes the replication instance, and the +migration task is still displayed in the task list. You can view +or delete the task. DRS will not charge for this task after you +stop it.
    2. +
    3. Delete the migration task. After the migration task is complete, +you can delete it. After the migration task is deleted, it will +no longer be displayed in the task list.
    4. +
    +
  8. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds/index.html b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds/index.html new file mode 100644 index 000000000..d703fa0ba --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-on-premises-mongodb-to-dds/index.html @@ -0,0 +1,301 @@ + + + + + +From On-Premises MongoDB to DDS | Architecture Center + + + + + +

From On-Premises MongoDB to DDS

+

DRS helps you migrate data from on-premises MongoDB databases to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

+

Solution Design

+

This section describes how to use DRS to migrate an on-premises MongoDB +database to DDS on the current cloud. The following network types are +supported:

+

VPN

+

Figure 1 VPN

+

Public network

+

Figure 2 Public network+SSL connection

+

Procedure

+

Figure 3 Flowchart

+
important
    +
  • Database migration is closely impacted by a wide range of +environmental and operational factors. To ensure the migration goes +smoothly, perform a test run before the actual migration to help you +detect and resolve any potential issues in advance. Recommendations +on how to minimize any potential impacts on your data base are +provided in this section.
  • +
  • It is strongly recommended that you start your migration task during +off-peak hours. A less active database is easier to migrate +successfully. If the data is fairly static, there is less likely to +be any severe performance impacts during the migration.
  • +
+
caution

Before creating a migration task, read the migration notes carefully.

+

For details, see +precautions +on using specific migration tasks in Data Replication Service Real-Time +Migration.

+

Prerequisites

+
    +
  1. +

    Permissions

    +
    DatabaseFull Migration PermissionFull+Incremental Migration Permission
    SourceReplica set: The source database user must have the read permission for the database to be migrated.
    Single node: The source database user must have the read permission for the database to be migrated.
    Cluster: The source database user must have the read permission for the databases to be migrated and the config database. To migrate accounts and roles of the source database, the source database user must have the read permission for the system.users and system.roles system tables of the admin database.
    Replica set: The source database user must have the read permission for the databases to be migrated and the local database.
    Single node: The source database user must have the read permission for the databases to be migrated and the local database.
    Cluster: The source mongos node user must have the readAnyDatabase permission for the databases to be migrated and the config database. The source shard node user must have the readAnyDatabase permission for the admin database and the read permission for the local database. To migrate accounts and roles of the source database, the source database user must have the read permission for the system.users and system.roles system tables of the admin database.
    DestinationThe destination database user must have the dbAdminAnyDatabase permission for the admin database and the readWrite permission for the destination database. If the destination database is a cluster instance, the migration account must have the read permission for the config database.
    +

    Table 1 Migration permissions

    +
      +
    • +

      Source database permissions:

      +

      The source database user must have all the required permissions +listed in the table above. If the permissions are insufficient, create a user +that has all of the permissions on the source database.

      +
    • +
    • +

      Destination database permissions:

      +

      If the destination database is a DDS database, the initial +account can be used.

      +
    • +
    +
  2. +
  3. +

    Network settings

    +
      +
    • +

      Source database network settings:

      +

      You can migrate on-premises MongoDB databases to DDS through a +VPN or public network. Enable public accessibility or establish +a VPN for local MongoDB databases based on the site +requirements. You are advised to migrate data through a public +network, which is more convenient and cost-effective.

      +
    • +
    • +

      Destination database network settings:

      +
        +
      • If the source database accesses the destination database +through a VPN, enable the VPN service first so that the +source database can communicate with the destination DDS +network.
      • +
      • If you access the DDS DB instance through a public network, +no network settings are required.
      • +
      +
    • +
    +
  4. +
  5. +

    Security rules

    +

    a. Source database network settings:

    +
      +
    • +

      The replication instance needs to be able to access the +source DB. That means that the EIP of the replication +instance must be on the whitelist of the source MongoDB +instance. Before configuring the network whitelist for the +source database, you need to obtain the EIP of the DRS +replication instance.

      +

      After creating a replication instance on the DRS console, +you can find the EIP on the Configure Source and +Destination Databases page as shown below:

      +

      Figure 4 EIP of the replication instance

      +
    • +
    +

    You can also add 0.0.0.0/0 to the source database whitelist to +allow any IP address to access the source database but this +action may result in security risks.

    +
      +
    • If the migration is performed over a VPN network, add the +private IP address of the DRS replication instance to the +whitelist of the source database to enable the source +database to communicate with the destination database.
    • +
    +

    If you do take this step, then once the migration is complete, +you should delete this item from the whitelist or your system +will insecure.

    +

    b. Destination database security group settings:

    +

    By default, the destination database and the DRS replication +instance are in the same VPC and can communicate with each +other. No further configuration is required.

    +
  6. +
  7. +

    Other

    +

    You need to export the user information of the MongoDB database +first and manually add it to the destination DDS DB instance because +the user information will not be migrated.

    +
  8. +
+

Migration Procedure

+

The following describes how to use DRS to migrate an on-premises MongoDB +database to a DDS DB instance.

+
    +
  1. +

    Create a migration task.

    +

    a. Log in to the management console and choose Databases -> +Data Replication Service to go to the DRS console.

    +

    b. On the Online Migration Management page, click Create +Migration Task.

    +

    c. On the Create Replication Instance page, configure the task +details, recipient, and replication instance and click Next.

    +

    Figure 5 Replication instance
+information

    +
    ParameterDescription
    RegionThe region where the replication instance is deployed. You can change the region. To reduce latency and improve access speed, select the region closest to your workloads.
    ProjectThe project corresponds to the current region and can be changed.
    Task NameThe task name consists of 4 to 50 characters, starts with a letter, and can contain only letters (case-insensitive), digits, hyphens (-), and underscores (_).
    DescriptionThe description consists of a maximum of 256 characters and cannot contain the following special characters: =<>&'\"
    +

    Table 2 Task settings

    +
    ParameterDescription
    Data FlowTo the cloud
    Source DB EngineSelect MongoDB.
    Destination DB EngineSelect DDS.
    Network TypeSelect Public network.
    Destination DB InstanceThe DDS DB instance you purchased.
    Replication Instance SubnetThe subnet where the replication instance resides. You can also click View Subnet to go to the network console to view the subnet where the instance resides. By default, the DRS instance and the destination DB instance are in the same subnet. You need to select the subnet where the DRS instance resides, and there are available IP addresses for the subnet. To ensure that the replication instance is successfully created, only subnets with DHCP enabled are displayed.
    Migration TypeFull This migration type is suitable for scenarios where service interruption is acceptable. All objects in non-system databases are migrated to the destination database at one time. The objects include collections and indexes. Full+Incremental The full+incremental migration type allows you to migrate data without interrupting services. After a full migration initializes the destination database, an incremental migration parses logs to ensure data consistency between the source and destination databases.
    Source DB Instance TypeIf you select Full+Incremental for Migration Type, set this parameter based on the source database. If the source database is a cluster instance, set this parameter to Cluster. If the source database is a replica set or a single node instance, set this parameter to Non-cluster.
    Obtain Incremental DataThis parameter is available for configuration if Source DB Instance Type is set to Cluster. You can determine how to capture data changes during the incremental synchronization. oplog: For MongoDB 3.2 or later, DRS directly connects to each shard of the source DB instance to extract data. If you select this mode, you must disable the balancer of the source instance. When testing the connection, you need to enter the connection information of each shard node of the source instance. changeStream: This method is recommended. For MongoDB 4.0 and later, DRS connects to mongos nodes of the source instance to extract data. If you select this method, you must enable the WiredTiger storage engine of the source instance. Note Only whitelisted users can use changeStream. To use this function, submit a service ticket. In the upper right corner of the management console, choose Service Tickets > Create Service Ticket to submit a service ticket.
    Source Shard QuantityIf Source DB Instance Type is set to Cluster and Obtain Incremental Data is set to oplog, enter the number of source shard nodes. The default minimum number of source DB instances is 2 and the maximum number is 32. You can set this parameter based on the number of source database shards.
    +

    Table 3 Replication instance settings

    +

    d. On the Configure Source and Destination Databases page, wait +until the replication instance is created. Then, specify source +and destination database information and click Test +Connection for both the source and destination databases to +check whether they have been connected to the replication +instance. After the connection tests are successful, select the +check box before the agreement and click Next.

    +

    Figure 6 Source database
+information

    +
    ParameterDescription
    mongos AddressIP address or domain name of the source database in the IP address/Domain name:Port format. The port of the source database. Range: 1 - 65534 You can enter a maximum of three groups of IP addresses or domain names of the source database. Separate multiple values with commas (,). For example: 192.168.0.1:8080,192.168.0.2:8080. Ensure that the entered IP addresses or domain names belong to the same sharded cluster. Note If multiple IP addresses or domain names are entered, the test connection is successful as long as one IP address or domain name is accessible. Therefore, you must ensure that the IP address or domain name is correct.
    Authentication DatabaseThe name of the authentication database. For example: The default authentication database of Open Telekom Cloud DDS instance is admin.
    mongos UsernameA username for the source database.
    mongos PasswordThe password for the source database username.
    SSL ConnectionSSL encrypts the connections between the source and destination databases. If SSL is enabled, upload the SSL CA root certificate.
    Sharded DatabaseEnter the information about the sharded databases in the source database.
    +

    Table 4 Source database settings

    +
    ParameterDescription
    DB Instance NameThe DB instance you selected when creating the migration task and cannot be changed.
    Database UsernameThe username for accessing the destination database.
    Database PasswordThe password for the database username.
    +

    Table 5 Destination database settings

    +
      +
    • +

      Destination database configuration

      +

      Figure 7 Destination database information

      +
    • +
    +

    e. On the Set Task page, select migration objects and click +Next.

    +

    Figure 8 Migration
+object

    +
    ParameterDescription
    Migrate AccountThere are accounts that can be migrated completely and accounts that cannot be migrated. You can choose whether to migrate the accounts. Accounts that cannot be migrated or accounts that are not selected will not exist in the destination database. Ensure that your services will not be affected by these accounts. Yes If you choose to migrate accounts, see Migrating Accounts in Data Replication Service User Guide to migrate database users and roles. No During the migration, accounts and roles are not migrated.
    Migrate ObjectYou can choose to migrate all objects, tables, or databases based on your service requirements. All: All objects in the source database are migrated to the destination database. After the migration, the object names will remain the same as those in the source database and cannot be modified. Tables: The selected table-level objects will be migrated. Databases: The selected database-level objects will be migrated. If the source database is changed, click in the upper right corner before selecting migration objects to ensure that the objects to be selected are from the changed source database. Note If you choose not to migrate all of the databases, the migration may fail because the objects, such as stored procedures and views, in the database to be migrated may have dependencies on other objects that are not migrated. To ensure a successful migration, you are advised to migrate all of the databases. When you select an object, the spaces before and after the object name are not displayed. If there are two or more consecutive spaces in the middle of the object name, only one space is displayed. The search function can help you quickly select the required database objects.
    +

    Table 6 Migration object

    +

    f. On the Check Task page, check the migration task.

    +
      +
    • +

      If any check fails, review the cause and rectify the fault. +After the fault is rectified, click Check Again.

      +

      For details about how to handle check failures, see +Checking Whether the Source Database Is +Connected +in Data Replication Service User Guide.

      +
    • +
    • +

      If all check items are successful, click Next.

      +

      Figure 9 Task
+Check

      +
    • +
    +
    note

    You can proceed to the next step only when all check items are +successful. If any alarms are generated, view and confirm the +alarm details first before proceeding to the next step.

    +

    g. On the displayed page, specify Start Time and confirm that +the configured information is correct and click Submit to +submit the task.

    +

    Figure 10 Task startup
+settings

    +
    ParameterDescription
    Start TimeSet Start Time to Start upon task creation or Start at a specified time based on site requirements. The Start at a specified time option is recommended. Note The migration task may affect the performance of the source and destination databases. You are advised to start the task in off-peak hours and reserve two to three days for data verification.
    +

    h. After the task is submitted, go back to the Online Migration +Management page to view the task status.

    +
  2. +
  3. +

    Manage the migration task.

    +

    The migration task contains two phases: full migration and +incremental migration. You can manage them in different phases.

    +
      +
    • Full migration +
        +
      • Viewing the migration progress: Click the target full +migration task, and on the Migration Progress tab, you +can see the migration progress of the structure, data, +indexes, and migration objects. When the progress reaches +100%, the migration is complete.
      • +
      • Viewing migration details: In the migration details, you can +view the migration progress of a specific object. If the +number of objects is the same as that of migrated objects, +the migration is complete. You can view the migration +progress of each object in detail. Currently, this function +is available only to whitelisted users. You can submit a +service ticket to apply for this function.
      • +
      +
    • +
    • Incremental Migration Permission +
        +
      • +

        Viewing the synchronization delay: After the full migration +is complete, an incremental migration starts. On the +Online Migration Management page, click the target +migration task. On the displayed page, click Migration +Progress to view the synchronization delay of the +incremental migration. If the synchronization delay is 0s, +the destination database is being synchronized with the +source database in real time. You can also view the data +consistency on the Migration Comparison tab.

        +

        Figure 11 Viewing the synchronization
+delay

        +
      • +
      • +

        Viewing the migration results: On the Online Migration +Management page, click the target migration task. On the +displayed page, click Migration Comparison and perform a +migration comparison in accordance with the comparison +process, which should help you determine an appropriate time +for migration to minimize service downtime.

        +

        Figure 12 Database comparison
+process

        +

        For details, see Comparing Migration +Items +in Data Replication Service User Guide.

        +
      • +
      +
    • +
    +
  4. +
  5. +

    Cut over services.

    +

    You are advised to start the cutover process during off-peak hours. +At least one complete data comparison is performed during off-peak +hours. To obtain accurate comparison results, start data comparison +at a specified time point during off-peak hours. If it is needed, +select Start at a specified time for Comparison Time. Due to +slight time difference and continuous operations on data, +inconsistent comparison results may be generated, reducing the +reliability and validity of the results.

    +

    a. Interrupt services first. If the workload is not heavy, you may +not need to interrupt the services.

    +

    b. Run the following statement on the source database and check +whether any new sessions execute SQL statements within the next +1 to 5 minutes. If there are no new statements executed, the +service has been stopped.

    +
    db.currentOp()
    +
    note

    The process list queried by the preceding statement includes the +connection of the DRS replication instance. If no additional +session executes SQL statements, the service has been stopped.

    +

    c. On the Migration Progress page, view the synchronization +delay. When the delay is displayed as 0s and remains stable for +a period, then you can perform a data-level comparison between +the source and destination databases. For details about the time +required, refer to the results of the previous comparison.

    +
      +
    • If there is enough time, compare all objects.
    • +
    • If there is not enough time, use the data-level comparison +to compare the tables that are frequently used and that +contain key business data or inconsistent data.
    • +
    +

    d. Determine an appropriate time to cut the services over to the +destination database. After services are restored and available, +the migration is complete.

    +
  6. +
  7. +

    Stop or delete the migration task.

    +

    a. Stopping the migration task. After databases and services are +migrated to the destination database, to prevent operations on +the source database from being synchronized to the destination +database to overwrite data, you can stop the migration task. +This operation only deletes the replication instance, and the +migration task is still displayed in the task list. You can view +or delete the task. DRS will not charge for this task after you +stop it. +b. Delete the migration task. After the migration task is complete, +you can delete it. After the migration task is deleted, it will +no longer be displayed in the task list.

    +
  8. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds/index.html b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds/index.html new file mode 100644 index 000000000..f8561f22e --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-other-cloud-mongodb-to-dds/index.html @@ -0,0 +1,332 @@ + + + + + +From Other Cloud MongoDB to DDS | Architecture Center + + + + + +

From Other Cloud MongoDB to DDS

+

DRS helps you migrate MongoDB databases from other cloud platforms to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

+

Solution Design

+

This section describes how to use DRS to migrate MongoDB databases from +another cloud to DDS on the current cloud. Migration scenarios include:

+

Migrating MongoDB databases from another cloud to DDS on the current cloud

+

Figure 1 Migrating MongoDB databases from other
+clouds

+

Migrating self-built MongoDB databases from servers on another cloud to DDS on the current cloud

+

Figure 2 Migrating MongoDB databases from other cloud
+servers

+

Procedure

+

Figure 3
+Flowchart

+
important
    +
  • Database migration is closely impacted by a wide range of +environmental and operational factors. To ensure the migration goes +smoothly, perform a test run before the actual migration to help you +detect and resolve any potential issues in advance. Recommendations +on how to minimize any potential impacts on your data base are +provided in this section.
  • +
  • It is strongly recommended that you start your migration task during +off-peak hours. A less active database is easier to migrate +successfully. If the data is fairly static, there is less likely to +be any severe performance impacts during the migration.
  • +
+
caution

Before creating a migration task, read the migration notes carefully.

+

For details, see +precautions +on using specific migration tasks in Data Replication Service Real-Time +Migration.

+

Prerequisites

+
    +
  1. +

    Permissions

    +

    Table 1 below, lists the permissions required for the source and destination +databases when migrating a MongoDB database from another cloud to +DDS on the current cloud.

    +
    DatabaseFull Migration PermissionFull+Incremental Migration Permission
    SourceReplica set: The source database user must have the read permission for the database to be migrated.
    Single node: The source database user must have the read permission for the database to be migrated.
    Cluster: The source database user must have the read permission for the databases to be migrated and the config database. To migrate accounts and roles of the source database, the source database user must have the read permission for the system.users and system.roles system tables of the admin database.
    Replica set: The source database user must have the read permission for the databases to be migrated and the local database.
    Single node: The source database user must have the read permission for the databases to be migrated and the local database.
    Cluster: The source mongos node user must have the readAnyDatabase permission for the databases to be migrated and the config database. The source shard node user must have the readAnyDatabase permission for the admin database and the read permission for the local database. To migrate accounts and roles of the source database, the source database user must have the read permission for the system.users and system.roles system tables of the admin database.
    DestinationThe destination database user must have the dbAdminAnyDatabase permission for the admin database and the readWrite permission for the destination database. If the destination database is a cluster instance, the migration account must have the read permission for the config database.
    +

    Table 1 Migration permissions

    +
      +
    • +

      Source database permissions:

      +

      The source MongoDB database user must have all the required +permissions listed in Table 1. +If the permissions are insufficient, create a user that has all +of the permissions on the source database.

      +
    • +
    • +

      Destination database permissions:

      +

      If the destination database is a DDS database, the initial +account can be used.

      +
    • +
    +
  2. +
  3. +

    Network settings

    +

    Enable public accessibility for the source database.

    +
      +
    • +

      Source database network settings:

      +

      Any source database MongoDB instances will need to be accessible +from the Internet.

      +
    • +
    • +

      Destination database network settings: No settings are required.

      +
    • +
    +
  4. +
  5. +

    Security rules

    +
      +
    • +

      Source database security group settings:

      +

      The replication instance needs to be able to access the source +MongoDB instance. That means that the EIP of the replication +instance must be on the whitelist of the source MongoDB +instance.

      +

      Before configuring the network whitelist, you need to obtain the +EIP of the replication instance.

      +
        +
      • +

        After creating a replication instance on the DRS console, +you can find the EIP on the Configure Source and +Destination Databases page as shown in +Figure 4 <dds_0016__en-us_topic_0120558714_fig121513143432>.

        +

        Figure 4 EIP of the replication
+instance

        +
      • +
      +

      You can also add 0.0.0.0/0 to the source database whitelist to +allow any IP address to access the source database but this +action may result in security risks.

      +

      If you do take this step, then once the migration is complete, +you should delete this item from the whitelist or your system +will insecure.

      +
    • +
    • +

      Destination database security group settings:

      +

      By default, the destination database and the DRS replication +instance are in the same VPC and can communicate with each +other. No further configuration is required.

      +
    • +
    +
  6. +
  7. +

    Other

    +

    You need to export the user information of the MongoDB database +first and manually add it to the destination DDS DB instance because +the user information will not be migrated.

    +
  8. +
+

Migration Procedure

+
    +
  1. +

    Create a migration task.

    +
      +
    1. +

      Log in to the management console and choose Databases -> +Data Replication Service to go to the DRS console.

      +
    2. +
    3. +

      On the Online Migration Management page, click Create +Migration Task.

      +
    4. +
    5. +

      On the Replication Instance Information page, configure the +task details, description, and replication instance details and +click Next.

      +

      Figure 5 Replication instance
+information

      +
    6. +
    +
  2. +
+
ParameterDescription
RegionThe region where the replication instance is deployed. You can change the region. To reduce latency and improve access speed, select the region closest to your workloads.
ProjectThe project corresponds to the current region and can be changed.
Task NameThe task name consists of 4 to 50 characters, starts with a letter, and can contain only letters (case-insensitive), digits, hyphens (-), and underscores (_).
DescriptionThe description consists of a maximum of 256 characters and cannot contain the following special characters: =<>&'\"
+

Table 2 Task settings

+
ParameterDescription
Data FlowTo the cloud
Source DB EngineSelect MongoDB.
Destination DB EngineSelect DDS.
Network TypeSelect Public network.
Destination DB InstanceThe DDS DB instance you purchased.
Replication Instance SubnetThe subnet where the replication instance resides. You can also click View Subnet to go to the network console to view the subnet where the instance resides. By default, the DRS instance and the destination DB instance are in the same subnet. You need to select the subnet where the DRS instance resides, and there are available IP addresses for the subnet. To ensure that the replication instance is successfully created, only subnets with DHCP enabled are displayed.
Migration TypeFull This migration type is suitable for scenarios where service interruption is acceptable. All objects in non-system databases are migrated to the destination database at one time. The objects include collections and indexes. Full+Incremental The full+incremental migration type allows you to migrate data without interrupting services. After a full migration initializes the destination database, an incremental migration parses logs to ensure data consistency between the source and destination databases.
Source DB Instance TypeIf you select Full+Incremental for Migration Type, set this parameter based on the source database. If the source database is a cluster instance, set this parameter to Cluster. If the source database is a replica set or a single node instance, set this parameter to Non-cluster.
Obtain Incremental DataThis parameter is available for configuration if Source DB Instance Type is set to Cluster. You can determine how to capture data changes during the incremental synchronization. oplog: For MongoDB 3.2 or later, DRS directly connects to each shard of the source DB instance to extract data. If you select this mode, you must disable the balancer of the source instance. When testing the connection, you need to enter the connection information of each shard node of the source instance. changeStream: This method is recommended. For MongoDB 4.0 and later, DRS connects to mongos nodes of the source instance to extract data. If you select this method, you must enable the WiredTiger storage engine of the source instance. Note Only whitelisted users can use changeStream. To use this function, submit a service ticket. In the upper right corner of the management console, choose Service Tickets > Create Service Ticket to submit a service ticket.
Source Shard QuantityIf Source DB Instance Type is set to Cluster and Obtain Incremental Data is set to oplog, enter the number of source shard nodes. The default minimum number of source DB instances is 2 and the maximum number is 32. You can set this parameter based on the number of source database shards.
+

Table 3 Replication instance settings

+
    +
  1. +

    On the Configure Source and Destination Databases page, wait +until the replication instance is created. Then, specify source +and destination database information and click Test +Connection for both the source and destination databases to +check whether they have been connected to the replication +instance. After the connection tests are successful, select the +check box before the agreement and click Next.

    +

    Figure 6 Source database
+information

    +
      +
    • +

      Destination database configuration

      +
      ParameterDescription
      mongos AddressIP address or domain name of the source database in the IP address/Domain name:Port format. The port of the source database. Range: 1 - 65534 You can enter a maximum of three groups of IP addresses or domain names of the source database. Separate multiple values with commas (,). For example: 192.168.0.1:8080,192.168.0.2:8080. Ensure that the entered IP addresses or domain names belong to the same sharded cluster. Note If multiple IP addresses or domain names are entered, the test connection is successful as long as one IP address or domain name is accessible. Therefore, you must ensure that the IP address or domain name is correct.
      Authentication DatabaseThe name of the authentication database. For example: The default authentication database of Open Telekom Cloud DDS instance is admin.
      mongos UsernameA username for the source database.
      mongos PasswordThe password for the source database username.
      SSL ConnectionSSL encrypts the connections between the source and destination databases. If SSL is enabled, upload the SSL CA root certificate.
      Sharded DatabaseEnter the information about the sharded databases in the source database.
      +

      Table 4 Source database settings

      +
      ParameterDescription
      DB Instance NameThe DB instance you selected when creating the migration task and cannot be changed.
      Database UsernameThe username for accessing the destination database.
      Database PasswordThe password for the database username.
      +

      Table 5 Destination database settings

      +

      Figure 7 Destination database
+information

      +
    • +
    +
  2. +
  3. +

    On the Set Task page, select migration objects and click +Next.

    +

    Figure 8 Migration
+object

    +
    ParameterDescription
    Migrate AccountThere are accounts that can be migrated completely and accounts that cannot be migrated. You can choose whether to migrate the accounts. Accounts that cannot be migrated or accounts that are not selected will not exist in the destination database. Ensure that your services will not be affected by these accounts. Yes If you choose to migrate accounts, see Migrating Accounts in Data Replication Service User Guide to migrate database users and roles. No During the migration, accounts and roles are not migrated.
    Migrate ObjectYou can choose to migrate all objects, tables, or databases based on your service requirements. All: All objects in the source database are migrated to the destination database. After the migration, the object names will remain the same as those in the source database and cannot be modified. Tables: The selected table-level objects will be migrated. Databases: The selected database-level objects will be migrated. If the source database is changed, click in the upper right corner before selecting migration objects to ensure that the objects to be selected are from the changed source database. Note If you choose not to migrate all of the databases, the migration may fail because the objects, such as stored procedures and views, in the database to be migrated may have dependencies on other objects that are not migrated. To ensure a successful migration, you are advised to migrate all of the databases. When you select an object, the spaces before and after the object name are not displayed. If there are two or more consecutive spaces in the middle of the object name, only one space is displayed. The search function can help you quickly select the required database objects.
    +

    Table 6 Migration object

    +
  4. +
  5. +

    On the Check Task page, check the migration task.

    +
      +
    • +

      If any check fails, review the cause and rectify the fault. +After the fault is rectified, click Check Again.

      +

      For details about how to handle check failures, see +Checking Whether the Source Database Is +Connected +in Data Replication Service User Guide.

      +
    • +
    • +

      If all check items are successful, click Next.

      +

      Figure 9 Task
+Check

      +
    • +
    +
    note

    You can proceed to the next step only when all check items are +successful. If any alarms are generated, view and confirm the +alarm details first before proceeding to the next step.

    +
  6. +
  7. +

    On the displayed page, specify Start Time and confirm that +the configured information is correct and click Submit to +submit the task.

    +

    Figure 10 Task startup
+settings

    +
    ParameterDescription
    Start TimeSet Start Time to Start upon task creation or Start at a specified time based on site requirements. The Start at a specified time option is recommended. Note The migration task may affect the performance of the source and destination databases. You are advised to start the task in off-peak hours and reserve two to three days for data verification.
    +

    Table 7 Task startup settings

    +
  8. +
  9. +

    After the task is submitted, go back to the Online Migration +Management page to view the task status.

    +
  10. +
  11. +

    Manage the migration task.

    +

    The migration task contains two phases: full migration and +incremental migration. You can manage them in different phases.

    +
      +
    • Full migration +
        +
      • Viewing the migration progress: Click the target full +migration task, and on the Migration Progress tab, you +can see the migration progress of the structure, data, +indexes, and migration objects. When the progress reaches +100%, the migration is complete.
      • +
      • Viewing migration details: In the migration details, you can +view the migration progress of a specific object. If the +number of objects is the same as that of migrated objects, +the migration is complete. You can view the migration +progress of each object in detail. Currently, this function +is available only to whitelisted users. You can submit a +service ticket to apply for this function.
      • +
      +
    • +
    • Incremental Migration Permission +
        +
      • +

        Viewing the synchronization delay: After the full migration +is complete, an incremental migration starts. On the +Online Migration Management page, click the target +migration task. On the displayed page, click Migration +Progress to view the synchronization delay of the +incremental migration. If the synchronization delay is 0s, +the destination database is being synchronized with the +source database in real time. You can also view the data +consistency on the Migration Comparison tab.

        +

        Figure 11 Viewing the synchronization
+delay

        +
      • +
      • +

        Viewing the migration results: On the Online Migration +Management page, click the target migration task. On the +displayed page, click Migration Comparison and perform a +migration comparison in accordance with the comparison +process, which should help you determine an appropriate time +for migration to minimize service downtime.

        +

        Figure 12 Database comparison
+process

        +

        For details, see Comparing Migration +Items +in Data Replication Service User Guide.

        +
      • +
      +
    • +
    +
  12. +
  13. +

    Cut over services.

    +

    You are advised to start the cutover process during off-peak hours. +At least one complete data comparison is performed during off-peak +hours. To obtain accurate comparison results, start data comparison +at a specified time point during off-peak hours. If it is needed, +select Start at a specified time for Comparison Time. Due to +slight time difference and continuous operations on data, +inconsistent comparison results may be generated, reducing the +reliability and validity of the results.

    +
      +
    1. +

      Interrupt services first. If the workload is not heavy, you may +not need to interrupt the services.

      +
    2. +
    3. +

      Run the following statement on the source database and check +whether any new sessions execute SQL statements within the next +1 to 5 minutes. If there are no new statements executed, the +service has been stopped.

      +
      db.currentOp()
      +
      note

      The process list queried by the preceding statement includes the +connection of the DRS replication instance. If no additional +session executes SQL statements, the service has been stopped.

      +
    4. +
    5. +

      On the Migration Progress page, view the synchronization +delay. When the delay is displayed as 0s and remains stable for +a period, then you can perform a data-level comparison between +the source and destination databases. For details about the time +required, refer to the results of the previous comparison.

      +
        +
      • If there is enough time, compare all objects.
      • +
      • If there is not enough time, use the data-level comparison +to compare the tables that are frequently used and that +contain key business data or inconsistent data.
      • +
      +
    6. +
    7. +

      Determine an appropriate time to cut the services over to the +destination database. After services are restored and available, +the migration is complete.

      +
    8. +
    +
  14. +
  15. +

    Stop or delete the migration task.

    +
      +
    1. Stopping the migration task. After databases and services are +migrated to the destination database, to prevent operations on +the source database from being synchronized to the destination +database to overwrite data, you can stop the migration task. +This operation only deletes the replication instance, and the +migration task is still displayed in the task list. You can view +or delete the task. DRS will not charge for this task after you +stop it.
    2. +
    3. Delete the migration task. After the migration task is complete, +you can delete it. After the migration task is deleted, it will +no longer be displayed in the task list.
    4. +
    +
  16. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting/index.html b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting/index.html new file mode 100644 index 000000000..0adce9064 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splitting/index.html @@ -0,0 +1,43 @@ + + + + + +How Do Replica Sets Achieve High Availability and Read/Write Splitting? | Architecture Center + + + + + +

How Do Replica Sets Achieve High Availability and Read/Write Splitting?

+

DDS replica set instances can store multiple duplicates to ensure data high availability and support the automatic switch of private IP addresses to ensure service high availability. To enhance the read and write performance of your client for connecting to the instance, you can use your client to read different data copies. You need to connect to replica set instances using HA connection addresses. You can also configure read/write splitting. Otherwise, the high availability and high read performance of replica set instances cannot be guaranteed.

+

The primary node of a replica set instance is not fixed. If the instance settings are changed, or the primary node fails, or primary and secondary nodes are switched, a new primary node will be elected and the previous one becomes a secondary node. The following figure shows the process of a switchover.

+

Figure 1 Primary/Secondary switchover

+

Connecting to a Replica Set Instance (HA)

+

A DDS replica set consists of the primary, secondary, and hidden nodes. The hidden node is invisible to users. Read/Write splitting and HA can be realized only when you connect to the IP addresses and ports of the primary and secondary nodes of the replica set at the same time (in HA mode).

+

The following describes how to use URL and Java to connect to an instance in HA mode.

+

Method 1: Using a URL

+

On the Instances page, click the instance name. The Basic Information page is displayed. Choose Connections. Click the Private Connection tab and obtain the connection address of the current instance from the Private HA Connection Address field.

+

Figure 2 Obtaining the private HA connection address

+

Example:

+
mongodb://rwuser:\*\*\*\*@**_192.168.0.148:8635,192.168.0.96:8635_**/test?authSource=admin&replicaSet=replica
+

In the preceding URL, 192.168.0.148:8635 and 192.168.0.96:8635 are the IP addresses and ports of the primary and secondary nodes, respectively. If you use this address, the connection between your client and the instance can be ensured even when a primary/standby switchover occurs. In addition, using multiple IP addresses and port numbers can enhance the read and write performance of the entire database.

+

Figure 3 Data read and write process

+

Method 2: Using a Java Driver

+

Sample code:

+
MongoClientURI connectionString = new MongoClientURI("mongodb://rwuser:****@192.168.0.148:8635,192.168.0.96:8635/test?authSource=admin&replicaSet=replica"); MongoClient client = new MongoClient(connectionString);
MongoDatabase database = client.getDatabase("test");
MongoCollection<Document> collection = database.getCollection("mycoll");
+
ParameterDescription
rwuser:****Username and password for starting authentication
192.168.0.148:8635,192.168.0.96:8635IP addresses and ports of the primary and secondary nodes in a replica set instance
testName of the database to be connected
authSource=adminDatabase username for authentication
replicaSet=replicaName of the replica set instance type
+

Table 1" Parameter description

+

Connecting to a Replica Set Instance

+
warning

This is not recommended!

+

Using the Connection Address:

+
mongodb://rwuser:\*\*\*\*@**_192.168.0.148:8635_**/test?authSource=admin&replicaSet=replica
+

In the preceding URL, 192.168.0.148:8635 is the IP address and port number of the current primary node. If a switchover occurs or the primary node is changed, the client fails to connect to the replica set instance because the IP address and port of the newly elected primary node is unknown. As a result, the database service becomes unavailable. In addition, read and write operations can only be performed on a fixed primary node, so the read and write performance cannot be improved by adding nodes.

+

Figure 4 Data read and write process

+

Read/Write Splitting

+

The following HA connection address is used as an example to describe how to connect to a DDS replica set instance:

+
mongodb://rwuser:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/test?
authSource=admin&replicaSet=replica&readPreference=secondaryPreferred
+

The database account is rwuser, and the database is admin.

+

After the DB instance is connected, read requests are preferentially sent to the secondary node to implement read/write splitting. If the relationship between the primary and secondary nodes changes, write operations are automatically switched to the new primary node to ensure high availability of DDS.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/index.html b/pr-preview/pr-186/docs/best-practices/index.html new file mode 100644 index 000000000..a7b0f7f1f --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/index.html @@ -0,0 +1,22 @@ + + + + + +Best Practices | Architecture Center + + + + + +

Best Practices

+

Welcome to the Open Telekom Cloud Architecture Center Best Practices. +Here we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that +enhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as +efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance +to ensure robust system performance. This section serves as a valuable resource for architects and developers +to implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud +infrastructure.

+
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets/index.html new file mode 100644 index 000000000..ab954d8cd --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnets/index.html @@ -0,0 +1,61 @@ + + + + + +Design with dynamic subnets | Architecture Center + + + + + +

Design with dynamic subnets

+

The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:

+

Design

+
    +
  • Design an application with two computes connecting to the same Private network. The Private network has no subnets.
  • +
  • Click on the Private network and specify the cidr: 10.0.0.0/24.
  • +
  • Connect the first compute (e.g., Compute) to the Public network.
  • +
+

../_images/auto-subnets.png

+

Figure 1. Auto-generated subnet example

+

Deploy

+

Case 1. Two computes in the same region

+
    +
  1. Go to Deploy / Google / Configure cloud provider.
  2. +
  3. Choose the zone for the two computes in the same region europe-west1 (e.g., choose europe-west1-b and europe-west1-c for Compute and Compute_2, respectively).
  4. +
+

Expected result

+
    +
  • Google Cloud requires one region has at least one subnet. The designer auto-generates one subnet Private_subnet_europe_west1 for the region europe-west1 in the Private network.
  • +
  • The subnet has the same cidr of the Private network (i.e., 10.0.0.0/24).
  • +
  • Both computes Compute and Compute-2 connect to this subnet.
  • +
+

../_images/auto-subnets2.png

+

Figure 2. Private_subnet_europe_west1 is auto-generated for two computes in one region

+
    +
  • The routing_mode of the Private network is auto set to REGIONAL (if not set) since all computes are in the same region.
  • +
+

../_images/auto-subnets-result1b.png

+

Figure 3. The routing_mode is auto set to REGIONAL

+

Case 2. Two computes in different regions

+
    +
  1. Go to Deploy / Google / Configure cloud provider.
  2. +
  3. Choose the zone for the computes in two different regions (e.g., choose the zone europe-north1-a and europe-west1-c for Compute and Compute_2, respectively).
  4. +
+

Expected result

+
    +
  • Google Cloud requires one region has at least one subnet. Because we have two regions, the designer auto-generates two subnets for the region europe-north1 and europe-west1.
  • +
  • The cidr of the Private network (i.e., 10.0.0.0/24) is auto subnetting in two equal ranges for each subnet (i.e., 10.0.0.0/25 and 10.0.0.128/25).
  • +
  • Two computes connect to two separated subnets in different regions.
  • +
+

../_images/auto-subnets-result2.png

+

Figure 4. Two subnets are auto-generated for two regions

+
    +
  • The routing_mode of the Private network is auto set to GLOBAL (if not set) so that the two computes from different regions can access each other via the internal IP address.
  • +
+

../_images/auto-subnets-result2b.png

+

Figure 5. The routing_mode is auto set to GLOBAL

+
tip

Auto-generated subnet is useful if you cannot decide the location of the computes at the design time (i.e., whether the computes are co-located in one or in different regions) but at the deployment time. In such a case, Cloud Create will transform the topology before the deployment for you.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy/index.html new file mode 100644 index 000000000..8ce4d8216 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deploy/index.html @@ -0,0 +1,94 @@ + + + + + +How to deploy your application on Google Cloud | Architecture Center + + + + + +

How to deploy your application on Google Cloud

+

Prerequisites

+

To deploy on Google Cloud, you need to:

+
    +
  • Have a Google Cloud account.
  • +
  • Your account has one of the following roles roles/compute.admin, roles/editor, or roles/owner assigned to a Google project. This role allows you to create a compute resource in the given project.
  • +
  • Your account has one of the following roles roles/browser, roles/editor, or roles/owner. This role allows Telekom Cloud Create to read the IAM access control policy of the project to check for access permissions before a deployment can start.
  • +
  • Enable the Compute Engine API and Cloud Resource Manager API in your google project.
  • +
+

How to assign a role to a principal

+
    +
  • Go to: IAM & Admin / IAM
  • +
  • Go to Principal, click Edit and assign roles. The following example assigns the role roles/browser and roles/compute.admin to a principal.
  • +
+

../_images/set-roles.png

+

Figure 1. Set IAM roles for a user

+

How to enable an API on Google Cloud

+
    +
  • Go to: APIs & Services / Library
  • +
  • Search for an API (e.g., Compute Engine or Cloud Resource)
  • +
  • Click Enable
  • +
+

../_images/enable-api.png

+

Figure 2. Enable Compute Engine API

+

How to deploy

+

Choose the Google Cloud location

+
    +
  1. Go to: Deploy
  2. +
  3. Choose Google
  4. +
+

../_images/deploy-step1.png

+

Figure 3. Choose Google Cloud location

+

Authenticate for the first time

+
    +
  • The first time you deploy an application on Google Cloud, Cloud Create redirects you to Google Cloud to loggin.
  • +
  • After logging sucessfully, click on the allow button to grant the permissions for Cloud Create to manage compute resources on Google Cloud on your behalf.
  • +
+

../_images/deploy-step2.png

+

Figure 4. Authenticate and grant permissions

+
important

By clicking the allow button, you allow Cloud Create to access the following information:

    +
  1. Read your email address for authentication purpose.
  2. +
  3. List your Google projects so you can choose a Google project to deploy.
  4. +
  5. Manage compute resources on Google Cloud (e.g., to create and delete a VM).
  6. +

In particular, Cloud Create requests the following OAuth scopes:

    +
  • https://www.googleapis.com/auth/userinfo.email
  • +
  • https://www.googleapis.com/auth/cloudplatformprojects.readonly
  • +
  • https://www.googleapis.com/auth/compute
  • +
+
tip

You can revoke access any time later. See 3. How to revoke access.

+

Choose a Google project to deploy

+
    +
  • Cloud Create displays a list of the Google projects, which you have the permissions to create a compute resource.
  • +
  • Choose one Google project you want to deploy your app into.
  • +
+

../_images/deploy-step3.png

+

Figure 5. Choose a google project to deploy

+
note

If no projects are dislayed, it means you do not have the roles mentioned in the 1. Prerequisites. In such a case, ask your Google administrators to assign a role in a Google project for you.

+

Choose an availability zone and keypair (optional)

+
    +
  1. Click Configure cloud provider
  2. +
  3. Choose a Compute.
  4. +
  5. Choose an availability zone from the dropbox. The default availability zone is europe-west1-c if not set.
  6. +
  7. Choose a keypair from the dropbox.
  8. +
+

../_images/deploy-step4.png

+

Figure 6. Choose a zone and keypair

+
tip

If the keypair dropbox is empty, you can create a keypair from the Open Telekom Cloud console and refresh the page to display it.

+

Deploy

+
    +
  • Click Deploy to start.
  • +
+

How to revoke access

+

In step 2, you grant Cloud Create the permissions to manage compute resources on your behalf. You can revoke this access anytime.

+

To revoke:

+
    +
  • Go to: 1. Manage your Google account / 2. Security / 3. Third party apps with account access.
  • +
  • Click on Revoke access button.
  • +
+

../_images/deploy-revoke.png

+

Figure 7. Revoke token

+

After the access is revoked, if you deploy your app on Google Cloud again, Cloud Create will ask you to authenticate to Google Cloud again (i.e., it will repeat step 2).

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google/index.html new file mode 100644 index 000000000..13bacab0c --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google/index.html @@ -0,0 +1,17 @@ + + + + + +Multicloud Google Cloud | Architecture Center + + + + + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-region/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-region/index.html new file mode 100644 index 000000000..043cfd678 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-region/index.html @@ -0,0 +1,85 @@ + + + + + +Design with static subnets in multiple regions | Architecture Center + + + + + +

Design with static subnets in multiple regions

+

The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute_2 connects to Subnet_2). The compute in the first region (e.g., Compute) has access to the internet.

+

../_images/multi-regions.png

+

Figure 1. Multiple subnets example

+

Design

+

Define a subnet for the network

+
    +
  • Drop the Subnet component on the Private network.
  • +
+

../_images/subnet-step1.png

+

Figure 2. Define a subnet

+

Connect a compute to the subnet

+
    +
  • Click on the network point (on the right side of the Compute) and connect it to the connection point of the Subnet.
  • +
+

../_images/subnet-step2.png

+

Figure 3. Connect a compute to the subnet

+

Define a CIDR range for the subnet

+
    +
  • Click on the Subnet.
  • +
  • Type 10.0.0.0/24 in the cidr field.
  • +
+

../_images/subnet-step3.png

+

Figure 3. Define CIDR

+
note

The cidr field is mandatory for defining a subnet.

+

Define a fixed ip address for the compute (optional)

+
    +
  • Click on the Port of the compute.
  • +
  • Type 10.0.0.3 in the ip_address field. The ip_address 10.0.0.3 is within the range of the network above (10.0.0.0/24).
  • +
+

../_images/subnet-step4.png

+

Figure 4. Define fixed ip address

+
note

If no ip_address specified, an ip address will be auto-generated within the ip range of the subnet during the deployment.

+

Define the second compute and subnet

+
    +
  • Drop another Subnet component on the Private network. Now we have two subnets: Subnet and Subnet_2.
  • +
  • Click on the Subnet_2. Type 10.0.1.0/24 in the cidr field.
  • +
  • Drop another Compute component (e.g., Compute_2) and connect it to Subnet_2.
  • +
+

../_images/subnet-step5.png

+

Figure 5. Define second subnet

+

Connect the first compute to the public

+
    +
  • Drop a Public network.
  • +
  • Connect the Port of Compute to the link point (on the left side) of the Public network.
  • +
+

../_images/subnet-step6.png

+

Figure 6. Connect compute to public

+

Deploy

+
    +
  1. Go to Deploy.
  2. +
  3. Choose the Google provider.
  4. +
  5. In the Configure cloud provider:
  6. +
  7. Choose the zone for the computes in different regions (e.g., europe-north1-a for Compute and europe-west1-c for Compute_2).
  8. +
+

../_images/subnet-step7.png

+

Figure 7. Choose zone europe-north1-a for Compute

+

In summary, we have two computes with two subnets in two different regions:

+

../_images/subnet-step7b.png

+

Figure 8. Two computes in two different regions europe-north1 and europe-west1

+

Expected result

+
    +
  • The VPC private network is created with two subnets (e.g., private-subnet and private-subnet-2) in two cidr ranges (10.0.0.0/24 and 10.0.1.0/24) and in two regions (e.g., europe-north1 and europe-west1), respectively.
  • +
+

../_images/multi-regions-result2.png

+

Figure 9. Two subnets are created

+
    +
  • Two VMs will be created in the two separated subnets.
  • +
  • Compute-0 has a fixed ip address 10.0.0.3 (as specified in step 4) and has an external IP.
  • +
+

../_images/multi-regions-result1.png

+

Figure 10. Two computes are created

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/index.html new file mode 100644 index 000000000..d250ff882 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/index.html @@ -0,0 +1,73 @@ + + + + + +Cloud Create | Architecture Center + + + + + +

Cloud Create

+

Cloud Create is a free-to-use Development and Management Platform, which enables cloud developers to create applications on Open Telekom Cloud fast.

+
    +
  1. Cloud architects create applications from premade templates.
  2. +
  3. They can visually design and adjust the application to fit their needs.
  4. +
  5. An administrator deploys and updates the application on Open Telekom Cloud.
  6. +
  7. Cloud architects can save a design as a private template for personal use or share it public with other users.
  8. +
+

_images/overview.png

+

Figure 1. Overview

+
note
    +
  • Cloud architects and administrators can be the same user.
  • +
  • Deployment on Swiss Open Telekom Cloud and the function "Save & Share templates" are upcoming features.
  • +
+

How cloud architects design the application

+

Cloud architects can design the application from scratch or from premade templates:

+

_images/overview-templates.png

+

Figure 2. Select an app template to start.

+

They can quickly deploy a template or start a new design from it:

+

_images/overview-templates2.png

+

Figure 3. Quick deploy OpenShift or Design using this template.

+

Cloud Create also comes up with a visual designer for less-coding or no-coding. Developers can drag and drop the components together like lego bricks as in the following example:

+

_images/overview-design.png

+

Figure 4. An application example with network, compute, ansible, bash scripts, and Grafana component.

+
    +
  • In the above example, the network and compute are infrastructure components. AnsibleTasks, Bash, and Grafana are service components.
  • +
  • By using the Ansible and Bash components, developers can write code to execute on a compute directly.
  • +
  • Grafana is an example of a ready-to-use service available in the designer. Developers can define new services and import them to the designer as well. More details on Section How to define and import and a new service.
  • +
+
note

App templates and service components are opensource and available on our Github.

+

How administrators deploy the application

+

Before the deployment can start, administrators select a Version, provide Inputs, which were designed by the cloud architects, and select a cloud provider (e.g., Open Telekom Cloud) to deploy. In addition, administrators can review the auto-generated workflow before it starts.

+

_images/overview-deploy.png

+

Figure 5. Administrators select Open Telekom Cloud (OTC) to deploy

+

During the deployment, administrators can interactively click on a workflow step and see Terraform is applied for the infrastructure components. For the service components, the deployment script of the service (e.g., Ansible) is applied on the target compute.

+

_images/deployment_logs.png

+

Figure 6. An example Terraform is generated and applied for a Compute

+

Why Cloud Create?

+

The following table shows the differences between the Web console / other tools and Cloud Create:

+

_images/features_compare.png

+

Figure 7. Features comparison

+

Both the Web console and Cloud Create can deploy one cloud service. However, an application nowadays consists of multiple cloud services but not just one. Furthermore, each application has individual needs to adapt to the cloud differently. The Web console can bring up one service up and running separately but cannot automate an application with multiple services.

+

With Cloud Create, after creating an application from a template, you can modify the application to fit your individual needs. For example, one of our customer used Cloud Create to create their application from the OpenShift template, then they added a worker node with the GPU capability and wrote an Ansible script to deploy packages on the bastion host, etc. The given example shows that the modification can happen in every corner, from the cloud infrastructure to the software layer of your application. Finally, you can run update between versions on operation day 2 as well. To update between versions, Cloud Create auto-calculates the differences between the two versions and auto-generates the update workflow steps from one version to other one.

+

New features

+

OpenShift template (v2.13)

+

Users can create a Self-managed OpenShift Container Platform on Open Telekom Cloud from the OpenShift template.

+

FAQ

+

What are the differences between Cloud Create and the Web console

+

With the Web console, users can only create the cloud infrastructure manually. It means, they can create a network, a storage, a VM separately but without automation.

+

On the other hand, Cloud Create enables developers to design and automate the deployment of the whole application including the cloud infrastructure and services. In addition, developers can design the application in various versions and run update between them. Finally, Cloud Create provides premade templates (e.g., OpenShift) to re-use and extend.

+

How can I login in to Cloud Create

+

You can log in to Cloud Create using an IAM user account with the Tenant Administrator role. This is the same credentials when you log in to the web console, not the ICU account.

+

If you do not have a user account in the IAM, see How to create a user account & login.

+

Which components are supported

+

An overview of all supported components is available in Section Components overview.

+

Is Cloud Create opensource

+

Cloud Create is based on two opensource projects Application Lifecycle Enablement for Cloud (Alien4cloud) and Ystia Orchestrator (Yorc). At Open Telekom Cloud, we further integrate it with OpenStack and Google Cloud, provide an easy-to-use UI, added features (e.g., secrets management, deployment update, OpenShift template, etc.), and enforce the strictest Privacy and Security Assessment (PSA) process of Deutsche Telekom.

+

All premade templates and service components are opensource and available on our Github. You can create pull requests to add more components and fix bugs.

+

Which Terraform version do you use

+

We use Terraform 1.5.4 under the Mozilla Public License v2.0 (MPL 2.0).

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/index.html new file mode 100644 index 000000000..b255a367d --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/index.html @@ -0,0 +1,17 @@ + + + + + +Service catalogs | Architecture Center + + + + + +

Service catalogs

+

In addition to infrastructure components (e.g., compute, network, storage), Cloud Create provides most frequently used services on the application layer that are ready-to-deploy (e.g., Prometheus for monitoring). This section shows how to use these services in the editor.

+

The service catalogs are modelled using TOSCA (i.e., a YAML file definition of the service). They are open-source and available at the service catalogs of Open Telekom Cloud.

+

A part from the services provided by Cloud Create, users can also model their services using TOSCA, then import them in the designer and share with one another. For tutorials how to model the service using TOSCA, refer to How to define a service catalog.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/openshift-template/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/openshift-template/index.html new file mode 100644 index 000000000..eb17ac100 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/openshift-template/index.html @@ -0,0 +1,172 @@ + + + + + +OpenShift Template | Architecture Center + + + + + +

OpenShift Template

+

The following tutorial shows you how to register a (trial) subscription key from Red Hat and uses it to create an OpenShift cluster using the OpenShift template.

+
important
    +
  • The OpenShift template deploys a Self-managed OpenShift Container Platform on Open Telekom Cloud with Bring Your Own License (BYOL).
  • +
  • Your license/subscription will cover technical support from Red Hat as well as upgrades between OpenShift versions. Read more.
  • +
  • Supported versions: 4.12.39 and 4.13.x.
  • +
+

How to use

+

How to deploy

+
    +
  1. Create a new application using the template OpenShift or OpenShift HA with a selected version (e.g., 4.13.19)
  2. +
  3. Go to Quick Deploy.
  4. +
+

Deploy Setup

+

Specify base_domain

+

Specify the base_domain (e.g., tri-test.com). This is the domain name that you will use to access the OpenShift console after the deployment completes. A DNS Public Zone will be created on Open Telekom Cloud with this name. Therefore this domain name must be unique in the Domain Name Service of Open Telekom Cloud.

+

../_images/openshift_config1.png

+

Figure 1. Specify a domain name

+

Specify pull_secret

+
    +
  1. Register a trial account at Red Hat.
  2. +
  3. Go to the Redhat Console and copy the pull secret in Section Downloads / Tokens.
  4. +
+

../_images/openshift_redhat_console.png

+

Figure 2. Copy pull secret

+
    +
  1. Paste the content in the pull_secret in the Section Secrets Inputs.
  2. +
+

../_images/openshift_pull_secrect.png

+

Figure 2. Paste the pull secret

+

Specify os_password

+
    +
  • Specfiy the os_password. This is the password when you login to Cloud Create.
  • +
+
note

We do not store your password but the OpenShift install needs it one time for the installation process. In the next release, we will replace this password with an application credential for password protection.

+

(Optional) Specify ssh_public_key

+
    +
  • Specify the ssh_public_key with your SSH public key (e.g., ssh-ed25519 AAAAC3N...). This public key will be injected in the bastion host, master and worker nodes so that you can SSH to them later on.
  • +
  • If ssh_public_key is not specified, we will auto-select one of your existing key pair from the Open Telekom Cloud console instead.
  • +
+

../_images/openshift_config2.png

+

Figure 3. Specify your SSH public key

+

(Optional) Specify other paramters

+
    +
  1. Specify the number_workers (e.g., 2). OpenShift requires a minimum of 2 worker nodes in total.
  2. +
  3. Specify the nat_gateway_specs (e.g., Small). This is the flavor of the NAT Gateway for outgoing traffic.
  4. +
  5. Specify the worker_num_cpus (e.g., 4) and worker_mem_size (e.g., 16 GB). OpenShift requires a minimum of 4vCPU and 16 GB memory for the worker node.
  6. +
+

../_images/openshift_config3.png

+

Figure 4. Specify your SSH public key

+

Expect result

+
    +
  • It takes about 2 minutes to create all compute resources on Open Telekom Cloud. Afterwards, the OpenShift bootstrap process continues to setup the master and worker nodes.
  • +
  • After about 31 minutes, the CheckOpenShiftStatus job checks the OpenShift boostrap process and reports the status.
  • +
+

../_images/openshift_check_result.png

+

Figure 5. CheckOpenShiftStatus waits 31 minutes and checks the status

+

Access the console

+

After the deployment completes, you can access the OpenShift console as follows.

+
    +
  • Copy console_hostname, oauth_hostanme, and the INGRESS_VIP from the deployment outputs.
  • +
+

../_images/openshift_result1.png

+

Figure 6. Copy the hostname and VIP address

+
    +
  • Paste console_hostname and oauth_hostanme and the INGRESS_VIP in your /etc/hosts
  • +
+
# vim /etc/hosts
80.158.36.243 console-openshift-console.apps.openshift.tri-test.com
80.158.36.243 oauth-openshift.apps.openshift.tri-test.com

+
    +
  • Access the OpenShift console URL via the web browser with the kubeadmin_username and kubeadmin_password from the deployment outputs.
  • +
+
# The output of the "console_url"
https://console-openshift-console.apps.openshift.tri-test.com

+

../_images/openshift_result2.png

+

Figure 7. Access the OpenShift console

+

Access the bastion host

+

During the OpenShift bootstrap process, you can access to the bastion host as follows:

+
    +
  • Copy public_address of the Bastionhost
  • +
+

../_images/openshift_result3.png

+

Figure 8. The public IP address of the bastion host

+
    +
  • Access the bastion host with the IP
  • +
+
# We use Ubuntu OS for the bastion host
ssh ubuntu@164.30.10.109

+
    +
  • Check nodes are ready
  • +
+
# Set KUBECONFIG
export KUBECONFIG="/home/ubuntu/openshift/auth/kubeconfig"

# Check all nodes are ready
$ oc get nodes
NAME STATUS ROLES AGE VERSION
openshift-k55b9-master-0 Ready control-plane,master 179m v1.26.9+636f2be
openshift-k55b9-master-1 Ready control-plane,master 179m v1.26.9+636f2be
openshift-k55b9-master-2 Ready control-plane,master 179m v1.26.9+636f2be
openshift-k55b9-workers-0 Ready worker 163m v1.26.9+636f2be
openshift-k55b9-workers-1 Ready worker 163m v1.26.9+636f2be

+
    +
  • Check all cluster operators are available
  • +
+
$ oc get clusteroperators
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
authentication 4.13.19 True False False 156m
baremetal 4.13.19 True False False 174m
cloud-controller-manager 4.13.19 True False False 3h1m
cloud-credential 4.13.19 True False False 3h4m
cluster-autoscaler 4.13.19 True False False 175m
config-operator 4.13.19 True False False 175m
console 4.13.19 True False False 161m
control-plane-machine-set 4.13.19 True False False 175m
csi-snapshot-controller 4.13.19 True False False 175m
dns 4.13.19 True False False 174m
etcd 4.13.19 True False False 174m
image-registry 4.13.19 True False False 163m
ingress 4.13.19 True False False 163m
insights 4.13.19 True False False 168m
kube-apiserver 4.13.19 True False False 164m
kube-controller-manager 4.13.19 True False False 172m
kube-scheduler 4.13.19 True False False 172m
kube-storage-version-migrator 4.13.19 True False False 164m
machine-api 4.13.19 True False False 171m
machine-approver 4.13.19 True False False 174m
machine-config 4.13.19 True False False 174m
marketplace 4.13.19 True False False 174m
monitoring 4.13.19 True False False 162m
network 4.13.19 True False False 177m
node-tuning 4.13.19 True False False 174m
openshift-apiserver 4.13.19 True False False 165m
openshift-controller-manager 4.13.19 True False False 174m
openshift-samples 4.13.19 True False False 168m
operator-lifecycle-manager 4.13.19 True False False 174m
operator-lifecycle-manager-catalog 4.13.19 True False False 175m
operator-lifecycle-manager-packageserver 4.13.19 True False False 169m
service-ca 4.13.19 True False False 175m
storage 4.13.19 True False False 170m

+

How to create storages

+

Elastic Volume Service (EVS)

+

In OpenShift you can provision an EVS on Open Telekom Cloud dynamically:

+
    +
  1. Create a new storage class (e.g., ssd-csi) with a volume type (e.g., SSD):
  2. +
+
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ssd-csi
provisioner: cinder.csi.openstack.org
parameters:
type: SSD # Choose 'SSD' for 'Ultra high I/O', 'SAS' for 'High I/O', 'SATA' for 'Common I/O'
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer # PVC is PENDING until the Pod is created. As a result, the volume is created in the same AZ as the POD.

+

(Alternative) Create a storage class with specific AZ (e.g., eu-de-01) so that volumes will be created only in this AZ:

+
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: eu-de-01-ssd-csi
provisioner: cinder.csi.openstack.org
parameters:
type: SSD # Choose 'SSD' for 'Ultra high I/O', 'SAS' for 'High I/O', 'SATA' for 'Common I/O'
reclaimPolicy: Delete
allowVolumeExpansion: true
allowedTopologies:
- matchLabelExpressions:
- key: topology.cinder.csi.openstack.org/zone
values:
- eu-de-01 # Choose 'eu-de-01', 'eu-de-02', 'eu-de-03'

+
    +
  1. Create a PersistentVolumeClaim (e.g., ssd-pvc) with the storage class ssd-csi:
  2. +
+
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ssd-pvc
namespace: <YOUR_NAMESPACE>
spec:
storageClassName: ssd-csi
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 10Gi

+
    +
  1. Create a Pod example with the PersistentVolumeClaim ssd-pvc:
  2. +
+
apiVersion: v1
kind: Pod
metadata:
name: example
labels:
app: httpd
namespace: <YOUR_NAMESPACE>
spec:
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containers:
- name: httpd
image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest'
ports:
- containerPort: 8080
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
volumeMounts: # Add the following lines to the 'example' Pod to test the PVC
- name: ssd-volume
mountPath: /test
volumes:
- name: ssd-volume
persistentVolumeClaim:
claimName: ssd-pvc

+
    +
  1. On OpenShift console, see Pod is running:
  2. +
+

../_images/openshift_pod.png

+

Figure 9. Pod example is running

+
    +
  1. On Open Telekom Cloud, see EVS is created:
  2. +
+

../_images/openshift_evs.png

+

Figure 10. A new EVS is created with the volume type "Ultra High I/O"

+

Scalable File Service & SFS Turbo

+

You can create a SFS on Open Telekom Cloud manually and create a PersistentVolume using NFS in OpenShift, which connects to SFS via NFS protocol:

+
    +
  1. Go to the webconsole of Open Telekom Cloud and create a SFS or SFS Turbo:
  2. +
+

../_images/openshift_sfs.png

+

Figure 11. Create SFS via webconsole

+
    +
  • Choose the VPC and subnet of your OpenShift so that the SFS is created in the same subnet. The VPC cc-environment-openshift00 in this example was created by Cloud Create, which starts with the prefix cc, followed by the environement name enviroment and the application name openshift00.
  • +
  • Choose the security group sg-worker. This is the security group of the worker nodes.
  • +
+
    +
  1. Copy the SFS endpoint
  2. +
+

../_images/openshift_sfs2.png

+

Figure 12. Copy the SFS endpoint 10.0.207.136

+
    +
  1. Create a PersistentVolume (e.g., sfs-pv) with the SFS endpoint:
  2. +
+
apiVersion: v1
kind: PersistentVolume
metadata:
name: sfs-pv
spec:
capacity:
storage: 500Gi
accessModes:
- ReadWriteMany
nfs:
server: 10.0.207.136 # SFS endpoint
path: /
persistentVolumeReclaimPolicy: Retain

+
    +
  1. Create a PersistentVolumeClaim (e.g., sfs-pvc) with the sfs-pv:
  2. +
+
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sfs-pvc
namespace: <YOUR_NAMESPACE>
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 500Gi
volumeName: sfs-pv
storageClassName: "" # Important

+
    +
  1. Create a Pod to use sfs-pvc
  2. +
+

Tear down

+
    +
  • In Cloud Create, go to Action / Undeploy to delete the OpenShift cluster.
  • +
  • The PVC storages, which were created by OpenShift, will not be deleted automatically. You have to delete them manually.
  • +
+

../_images/openshift_tear_down.png

+

Figure 12. Check PVC with Available status

+ +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-eye/resource-group-monitoring/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-eye/resource-group-monitoring/index.html new file mode 100644 index 000000000..8647e0458 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-eye/resource-group-monitoring/index.html @@ -0,0 +1,120 @@ + + + + + +Resource Group Monitoring | Architecture Center + + + + + +

Resource Group Monitoring

+

Cloud Eye provides the resource group and alarm functions. How can we effectively group and monitor resources and receive alarm notifications of the resources in different groups?

+

Assume that there are four ECSs, namely ECS-01, ECS-02, ECS-03, and ECS-04. ECS-01 and ECS-02 are used by the development team. ECS-03 and ECS-04 are used by the test team. You need to obtain the running status of the two ECSs in the development team in a timely manner, including their CPU usage, idle CPU usage, average load, I/O usage, disk usage, memory usage, and percentage of total inode used.

+
ECS NameGroupWhether to Install the AgentDepartment
ECS-01Development team resourcesYesDevelopment team
ECS-02Development team resourcesYesDevelopment team
ECS-03N/ANoTest team
ECS-04N/ANoTest team
+

Table 1 ECS list and group planning

+

Prerequisites

+

The Agent has been installed on ECS-01 and ECS-02. For details, see Agent Installation and Configuration.

+

Creating a Resource Group

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    In the upper left corner, select a region and a project.

    +
  4. +
  5. +

    Choose Service List -> Management & Deployment -> Cloud Eye.

    +
  6. +
  7. +

    In the navigation pane on the left, choose Resource Groups.

    +
  8. +
  9. +

    In the upper right corner, click Create Resource Group.

    +
  10. +
  11. +

    Enter the group name as prompted. In this example, enter Development-group-resources.

    +
  12. +
  13. +

    Select the target cloud service resources.

    +

    Figure 1 Selecting cloud service resources

    +
  14. +
  15. +

    Click Create.

    +
  16. +
+

Creating a Topic and Configuring the Notification Object

+

When resource exceptions occur, an alarm notification can be sent to the configured topic subscribers.

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    In the upper left corner, select a region and a project.

    +
  4. +
  5. +

    Under Application, select Simple Message Notification.

    +

    The SMN console is displayed.

    +
  6. +
  7. +

    In the navigation pane on the left, choose Topics.

    +

    The Topics page is displayed.

    +
  8. +
  9. +

    In the upper right corner, click Create Topic.

    +

    The Create Topic dialog box is displayed.

    +

    Figure 2 Create Topic

    +
  10. +
  11. +

    Enter a topic name and display name.

    +
  12. +
  13. +

    Click OK.

    +

    The topic you created is displayed in the topic list.

    +
    tip

    Click the topic name to view the topic details and the total number of topic subscriptions.

    +
  14. +
  15. +

    In the topic list, locate the new topic. Click the topic name and in the upper right corner, select Add Subscription.

    +

    Figure 3 Add Subscription

    +
  16. +
  17. +

    Specify the subscription protocol and endpoints.

    +
  18. +
  19. +

    Click OK.

    +

    The subscriptions you added are displayed in the subscription list.

    +
  20. +
+

Creating an Alarm Rule

+
    +
  1. Log in to the management console.
  2. +
  3. In the upper left corner, select a region and a project.
  4. +
  5. Choose Service List -> Management & Deployment -> Cloud Eye.
  6. +
  7. In the navigation pane on the left, choose Alarm Management -> Alarm Rules.
  8. +
  9. In the upper right corner, click Create Alarm Rule.
  10. +
  11. On the Create Alarm Rule page, follow the prompts to set the parameters. +
      +
    1. +

      Set the alarm rule name.

      +

      Figure 4 Setting an alarm rule name

      +
    2. +
    3. +

      Set the monitored object and alarm triggering conditions.

      +

      Figure 5 Configuring an alarm rule

      +

      Set Group to Development group resources created in Step 1 Creating a Resource Group.

      +
    4. +
    5. +

      Set Alarm Notification parameters.

      +

      Figure 6 Configuring alarm notification

      +
      note

      Note: When configuring Notification Object, select Mytopic created in Step 2 Creating a Topic and Configuring the Notification Object.

      +
    6. +
    7. +

      Click Create.

      +
    8. +
    +
  12. +
+

After the alarm rule is added, if the metric data reaches the threshold, Cloud Eye immediately informs you that the metric data of group Development group resources (ECS-01 and ECS-02) is abnormal through SMN.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/index.html b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/index.html new file mode 100644 index 000000000..d3661a393 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/index.html @@ -0,0 +1,112 @@ + + + + + +Auditing and Analyzing Logins and Logouts with Functiongraph | Architecture Center + + + + + +

Auditing and Analyzing Logins and Logouts with Functiongraph

+

Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.

+

Solution Design

+ +

Figure 1

+

Figure 1 Flowchart

+
    +
  • Operation records collected by CTS can be quickly analyzed and operations from specified IP addresses can be filtered out.
  • +
  • CTS processes and analyzes data in response to log events in a serverless architecture, which features automatic scaling, no O&M, and pay-per-use billing.
  • +
  • CTS sends alarm notifications through SMN.
  • +
+

Enabling CTS

+

Configure a tracker, and the system immediately starts recording operations based on the new rule.

+
    +
  1. Log in to the console.
  2. +
  3. Click in the upper left corner of the console and select a region and a project.
  4. +
  5. Click in the upper left corner and choose Management & Governance -> Cloud Trace Service.
  6. +
  7. On the displayed page, choose Tracker List in the navigation pane on the left.
  8. +
  9. Locate a data tracker and click Configure in the Operation column. +
      +
    • Operation: Select the data operations that need to be recorded.
    • +
    • Transfer to OBS +
        +
      • If you select Yes, select an existing OBS bucket or create one directly on the Configure Tracker page and set File Prefix.
      • +
      • If you select No, no configuration is required.
      • +
      +
    • +
    • Create OBS Bucket: If this function is enabled, an OBS bucket will be created automatically with the name you enter. If this function is disabled, select an existing OBS bucket.
    • +
    • OBS Bucket: You can create an OBS bucket or select an existing OBS bucket.
    • +
    • Retention Period: Select the duration for storing traces in the OBS bucket.
    • +
    • File Prefix: The prefix is used to mark a transferred trace file. Your specified prefix will be automatically added to the beginning of the name of a transferred file, helping you quickly filter files.
    • +
    • Verify Trace File: When this function is enabled, integrity verification will be performed to check whether trace files in OBS buckets have been tampered with.
    • +
    +
  10. +
  11. Click OK to complete the tracker configuration.
  12. +
+

Creating an Agency

+
    +
  1. +

    Log in to the Identity and Access Management (IAM) console. In the navigation pane on the left, choose Agencies.

    +
  2. +
  3. +

    On the Agencies page, click Create Agency.

    +
  4. +
  5. +

    Set the agency information.

    +
      +
    • For Agency Name, enter serverless\_trust.
    • +
    • For Agency Type, select Cloud service.
    • +
    • For Cloud service, select FunctionGraph.
    • +
    • For Validity Period, select Unlimited.
    • +
    • Click Assign Permissions. On the Assign Permissions page, select Tenant Administrator.
    • +
    +
    note

    Users with the Tenant Administrator permission can perform any operations on all cloud resources of the enterprise.

    +
  6. +
  7. +

    Click OK.

    +
  8. +
+

Pushing Alarm Messages

+
    +
  • Create a topic named cts\_test on the SMN console. For details, see Creating a Topic.
  • +
  • Add subscriptions to the cts\_test topic to push alarm messages. For details, see Adding a Subscription.
  • +
+
note
    +
  • Alarm messages can be sent by emails, SMS messages, and HTTP/HTTPS.
  • +
  • In this example, when log events trigger the specified function, the function filters operations that are performed by users not in the IP address whitelist, and pushes alarm messages to the subscribers.
  • +
+

Building a Program

+

This section describes how use the following snippet for log alarms.

+
import json
import base64
import sys
import os
import requests

def handler(event, context):
text = json.dumps(event["cts"])
ctsmsg = json.loads(text)

#Resource operator IP
source_ip = ctsmsg["source_ip"]
#trace_name
action = ctsmsg["trace_name"]

SMN_Topic = context.getUserData('SMN_Topic')
regionName = context.getUserData('RegionName')
ip = context.getUserData('IP')
projectId = context.getProjectID()

if (action not in ("login" or "logout")):
return "action is fail"

if ip.find(source_ip) < 0 :
return "reasonable " + action

logInfo = " IP:"+source_ip + ", Action:"+action

body = {"message" :"Illegal operation["+logInfo+"]", "subject":"CTSTrigger"}
headers = {'X-Auth-Token': context.getToken(), "accept": "application/json"}
url= "https://smn."+regionName+".myhuaweicloud.com/v2/"+projectId+"/notifications/topics/urn:smn:"+regionName+":"+projectId+":"+SMN_Topic+"/publish"

response = requests.post(url,headers=headers,data=json.dumps(body))
if response.status_code != 200:
print (response.status_code)
return "send alarm message failed."


return 'send email success'
+

Creating a Function

+

Create a function for extracting the logs (as shown in the Python snippet below) and upload the code package. For details, see Function Management.

+
import json
import base64
import sys
import os
import requests

from obs import *

current_file_path = os.path.dirname(os.path.realpath(__file__))
# append current path to search paths, so that we can import some third party libraries.
sys.path.append(current_file_path)

TEMP_ROOT_PATH = "/tmp/"
region = 'eu-de'
secure = True
signature = 'v4'
port = 443
path_style = True


def GetObject(obsAddr, bucketName, objName, ak, sk):
TestObs = ObsClient(access_key_id=ak, secret_access_key=sk,
is_secure=secure, server=obsAddr, signature=signature, path_style=path_style, region=region,
ssl_verify=False, port=port,
max_retry_count=5, timeout=20)

LobjectRequest = GetObjectRequest(content_type='application/zip', content_language=None, expires=None,
cache_control=None, content_disposition=None, content_encoding=None,
versionId=None)

Lheaders = GetObjectHeader(range='', if_modified_since=None, if_unmodified_since=None, if_match=None,
if_none_match=None)

loadStreamInMemory = False
fileNamePath = TEMP_ROOT_PATH + objName
resp = TestObs.getObject(bucketName=bucketName, objectKey=objName, downloadPath=fileNamePath,
getObjectRequest=LobjectRequest, headers=Lheaders, loadStreamInMemory=loadStreamInMemory)

print('*** GetObject resp: ', resp)

return (int(resp.status))


def PostObject(obsAddr, bucket, objName, ak, sk):
obsClient = ObsClient(access_key_id=ak, secret_access_key=sk,
is_secure=secure, server=obsAddr, signature=signature, path_style=path_style, region=region,
ssl_verify=False, port=port,
max_retry_count=5, timeout=20)

Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='text/plain')

Lheaders.sseHeader = SseKmsHeader.getInstance()
h = PutObjectHeader()
Lmetadata = {'key': 'value'}

objPath = TEMP_ROOT_PATH + objName
resp = obsClient.putFile(bucketName=bucket, objectKey=objName, file_path=objPath,
metadata=Lmetadata, headers=h)
if isinstance(resp, list):
for k, v in resp:
print(
'PostObject, objectKey', k, 'common msg:status:', v.status, ',errorCode:', v.errorCode, ',errorMessage:',
v.errorMessage)
else:
print('*** PostObject, common msg: status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:',
resp.errorMessage)

def checkAlarmLogs(logs):
alarmlogs = []
for log in logs:
logStr = json.dumps(log)
if "WARN" in logStr or "WRN" in logStr or "ERROR" in logStr or "ERR" in logStr:
alarmlogs.append(logStr)
return alarmlogs

def log_store(fileName, logs):
fileNamePath = TEMP_ROOT_PATH + fileName
with open(fileNamePath, 'a') as f:
print ("*** Open log file"+fileNamePath+" successfully")
for log in logs:
logStr = json.dumps(log).replace('\\','')
if "WARN" in logStr or "WRN" in logStr or "ERROR" in logStr or "ERR" in logStr:
f.write(logStr + '\n')
return fileName

def handler(event, context):
# Obtains the data of lts logs.
print ("*********the data of lts logs********")
encodingData = event["lts"]["data"]
data = base64.b64decode(encodingData) # Base64 decoding is required because the information of lts logs has been encoded.
text = json.loads(data)
# Output log group id
print ("*** log group id:"+text["log_group_id"])
# Output log topic id
print ("*** log topic id:"+text["log_topic_id"])
# Obtains lts log list
logs = text["logs"]
# Check whether the alarm log existed
alarmLogs = checkAlarmLogs(logs)
if len(alarmLogs) == 0:
print ("*** no need to send alarm message")
return "no need to send alarm message"

# send smn message
print ("***********send smn message **********")
SMN_Topic = context.getUserData('SMN_Topic')
if not SMN_Topic.strip():
print ('*** No SMN topic. Please configure "SMN_Topic" environment variable')
return "Environment variable configuration error"
projectId = context.getProjectID()
body = {"message" :"Get warning message.The content of message is:"+json.dumps(alarmLogs).replace('\\',''), "subject":"TimeTrigger"}
headers = {'X-Auth-Token': context.getToken(), "accept": "application/json"}
url= "https://smn." + region + ".myhuaweicloud.com/v2/"+projectId+"/notifications/topics/urn:smn:" + region + ":"+projectId+":"+SMN_Topic+"/publish"
response = requests.post(url,headers=headers,data=json.dumps(body))
if response.status_code != 200:
print ("*** send SMN message failed. resp statusCode:"+str(response.status_code))
return "send alarm message failed."
print ("*** send SMN message to terminal successfully")

print ("***********strore log file to obs bucket **********")
obs_address = context.getUserData('obs_address')
storeBucket = context.getUserData('obs_store_bucket')
storeObjName = context.getUserData('obs_store_objName')
if not obs_address.strip() or not storeBucket.strip() or not storeObjName.strip():
print ('*** No obs environment variable. Please configure obs environment variable')
return "Environment variable configuration error"

ak = context.getAccessKey()
sk = context.getSecretKey()
if not ak.strip() or not sk.strip():
print ("*** Can not get accessKey or secretKey. Please check authority of IAM service")
return "accessKey or secretKey error"

print ("*** obs_address: " + obs_address)
print ("*** store bucket: " + storeBucket)
print ("*** store objName: " + storeObjName)

# download file uploaded by user from obs
# if store object uploaded not exist, automatically create OBS object.
status = GetObject(obs_address, storeBucket, storeObjName, ak, sk)
if status != 200:
print ("*** get store object failed. Create a new OBS object:"+storeObjName)

outFile = log_store(storeObjName, alarmLogs)

# upload file to obs bucket
PostObject(obs_address, storeBucket, outFile, ak, sk)
return 'log store success'
+

This function analyzes received operation records, filters logins or logouts from unauthorized IP addresses using a whitelist, and sends alarms under a specified SMN topic.

+

Setting Environment Variables

+

On the Configuration tab page of the function, set the environment variables and SMN topic name, as shown in table below:

+
Environment VariableDescription
SMN_TopicSMN topic name.
RegionNameRegion.
IPIP address whitelist.
+

Table 1 Environment variable description

+

For details about how to set environment variables, see Using Environment Variables, as shown in Figure 2.

+ +

+

Figure 2 Setting environment variables

+

Adding an Event Source

+

Create a CTS trigger, as shown in Enabling CTS. For details, see Using a CTS Trigger.

+ +

+

Figure 3 Creating a CTS trigger

+

CTS records the logins and logouts of users on IAM.

+

Processing Operation Records

+

When a user performs login or logout using an account, the subscription service log will be triggered and a function will be directly invoked. The system then checks whether the IP address of the current login or logout account is in the whitelist based on function code. If the IP address is not in the whitelist, SMN will send notifications, as shown in Figure 4.

+ +

+

Figure 4 Alarm notification sent by email

+

The email contains the unauthorized IP address and user operation (login or logout).

+

On the Monitoring tab page of the function, check the number of invocations, as shown in Figure 5.

+ +

Figure 5 Function metrics
+

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/domain-name-service/configuring-private-domain-names-for-ecss/index.html b/pr-preview/pr-186/docs/best-practices/networking/domain-name-service/configuring-private-domain-names-for-ecss/index.html new file mode 100644 index 000000000..1c6c07a32 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/domain-name-service/configuring-private-domain-names-for-ecss/index.html @@ -0,0 +1,136 @@ + + + + + +Configuring Private Domain Names for ECSs | Architecture Center + + + + + +

Configuring Private Domain Names for ECSs

+

If one of your ECSs is not working normally and you need to use the backup ECS to handle requests, but you have not configured private zones for the two ECSs, you need to change the private IP address in the code for the faulty ECS. This will interrupt your services and cause you to publish your website again, which is time- and labor-consuming.

+

Assume that you have configured private zones for the ECSs and have +included their private domain names in the code. If one ECS is +malfunctioning, you only need to change the DNS records to direct +traffic to a normal ECS. Your services will not be interrupted, and you +do not need to publish the website again.

+

Solution Design

+

The figure below shows the networking of +a website where ECSs and RDS instances are deployed in a VPC.

+
    +
  • ECS0: primary service node
  • +
  • ECS1: public service node -> ECS2: backup service node
  • +
  • RDS1: service database -> RDS2: backup database
  • +
+

Figure 1 Networking example

+
note
    +
  • Higher efficiency and security: You can use private domain names +to access ECSs in the VPCs, without going through the Internet.
  • +
  • Easier management: Compared with IP addresses, domain names are +easier to modify in the code. When an ECS is changed, you only need +to change the DNS records without modifying the code.
  • +
+

Prerequisites

+

This table lists private zones and record sets planned for the cloud +servers.

+
ResourcePrivate ZoneAssociatedPrivate IPRecord Set TypeDescription
ECS1api.ecs.comVPC_001192.168.2.8APublic service node
ECS2api.ecs.comVPC_001192.168.3.8ABackup for the public service node
RDS1db.comVPC_001192.168.2.5AService database
RDS2db.comVPC_001192.168.3.5ABackup database
+

Table 1 Private zones and record sets for each server

+
RegionServiceResourceDescriptionQuantityMonthly Price
eu-deVPCVPC_001The DNS server addresses must be the same as the private DNS server addresses of Open Telekom Cloud. For details, see Availability of secondary DNS1Free
ECSECS0 ECS1 ECS2Private domain name: api.ecs.com
Associated VPC: VPC_001
ECS1: public service node
Private IP address: 192.168.2.8
ECS2: backup service node Private IP address: 192.168.3.8
3For details, see ECS Product Pricing Details.
RDSRDS1 RDS2Private domain name: db.com
Associated VPC: VPC_001
RDS1: service database
Private IP address: 192.168.2.5
RDS2: backup database
Private IP address: 192.168.3.5
2For details, see RDS Product Pricing Details.
DNSapi.ecs.com db.comapi.ecs.com: Associated VPC: VPC_001
Record set type: A Value: 192.168.2.8
db.com: Associated VPC: VPC_001 Record set type: A Value: 192.168.2.5
2Free
+

Table 2 Resource planning

+

Configuring Private Zones

+

Summary

+

The figure below shows the process for configuring private zones:

+

Figure 2 Process for configuring private
+zones

+
    +
  1. (Optional) Create a VPC and a subnet on the VPC console. This +operation is required when you are configuring private domain names +for servers during website deployment.
  2. +
  3. Create private zones and associate them with the VPC and add a +record set to each private zone on the DNS console.
  4. +
  5. (Optional) Change the DNS server addresses of the VPC subnet on the +VPC console. This operation is required when you are configuring +private domain names for servers where your website is running.
  6. +
+

Procedure

+
    +
  1. +

    (Optional) Create a VPC and a subnet.

    +

    Before configuring private domain names for the ECSs and databases +required by your website, you need to create a VPC and a subnet.

    +

    a. Log in to the management console.

    +

    b. Click image1 in +the upper left corner and select the desired region and project.

    +

    c. Choose Network -> Virtual Private Cloud.

    +

    d. In the navigation pane on the left, choose Virtual Private +Cloud.

    +

    e. Click Create VPC and configure the parameters based on +Table 3 <dns_bestprac_0002__table65603559163645>

    +

    f. Click Create Now.

    +
  2. +
  3. +

    Create private zones.

    +

    Create private zones for the domain names used by ECS1 and RDS1.

    +

    a. Choose Network -> Domain Name Service.

    +

    The DNS console is displayed.

    +

    b. In the navigation pane on the left, choose Private Zones.

    +

    c. Click Create Private Zone.

    +

    d. Configure the parameters based on

    +

    e. Click OK. Then check the private zone created for api.ecs.com.

    +

    You can view details about this private zone on the Private +Zones page.

    +
    note

    Click the domain name to view SOA and NS record sets +automatically generated for the zone.

      +
    • The SOA record set identifies the base DNS information about +the domain name.
    • +
    • The NS record set defines authoritative DNS servers for the +domain name.
    • +
    +

    f. Repeat steps to create a private zone for db.com.

    +
  4. +
  5. +

    Add a record set to each private zone.

    +

    Add record sets to translate private domain names to private IP +addresses of ECS1 and RDS1.

    +

    a. Click the domain name.

    +

    The record set page is displayed.

    +

    b. Click Add Record Set.

    +

    c. Configure the parameters

    +

    d. Click OK. An A record set is added for api.ecs.com.

    +

    e. Repeat steps to add an A record set for db.com.

    +

    Set the record set value of db.com to 192.168.2.5.

    +
  6. +
  7. +

    (Optional) Change the DNS server addresses of the VPC subnet.

    +

    After you configure private domain names for nodes in the website +application, you need to change the DNS servers of the VPC subnet to +those provided by the DNS service so that the domain names can be +resolved.

    +

    For details, see How Do I Change Default DNS Servers of an ECS to +Huawei Cloud Private DNS +Servers?

    +
  8. +
  9. +

    Switch to the backup ECS.

    +

    When ECS1 becomes faulty, you can switch services to ECS2 by +changing the value of the record set added to private zone +api.ecs.com.

    +

    a. Log in to the management console.

    +

    b. Click image1 in +the upper left and select eu-de.

    +

    c. Choose Network -> Domain Name Service.

    +

    The DNS console is displayed.

    +

    d. In the navigation pane on the left, choose Private Zones.

    +

    e. In the private zone list, click the name of the zone +api.ecs.com.

    +

    f. Locate the A record set and click Modify under +Operation.

    +

    g. Change the value to 192.168.3.8.

    +

    h. Click OK.

    +

    Traffic to ECS1 will be directed to ECS2 by the private DNS server.

    +
  10. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancer/index.html b/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancer/index.html new file mode 100644 index 000000000..a1555f1e7 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancer/index.html @@ -0,0 +1,233 @@ + + + + + +Routing Traffic to Backend Servers in Different VPCs from the Load Balancer | Architecture Center + + + + + +

Routing Traffic to Backend Servers in Different VPCs from the Load Balancer

+

You can use ELB to route traffic to backend servers in two VPCs connected over a VPC peering connection.

+

Solution Design

+
    +
  • A dedicated load balancer named ELB-Test is running in +VPC-Test-01 (172.18.0.0/24).
  • +
  • An ECS named ECS-Test is running in VPC-Test-02 +(172.17.0.0/24).
  • +
  • IP as a Backend is enabled for the dedicated load balancer +ELB-Test, and ECS-Test in VPC-Test-02 (172.17.0.0/24) is +added to the backend server group associated with ELB-Test.
  • +
+

Figure 1
+Topology

+
Advantages

You can enable IP as a Backend for the dedicated load balancer to +route incoming traffic to servers in different VPCs from the load +balancer.

+

Prerequisites

+
Resource TypeResource NameDescriptionQuantity
VPCVPC-Test-01The VPC where ELB-Test is running: 172.18.0.0/241
VPC-Test-02The VPC where ECS-Test is running: 172.17.0.0/241
VPC peering connectionPeering-TestThe connection that connects the VPC where ELB-Test is running and the VPC where ECS-Test is running Local VPC: 172.18.0.0/24 Peer VPC: 172.17.0.0/241
Route tableRoute-VPC-Test-01The route table of VPC-Test-01 Destination: 172.17.0.0/241
Route-VPC-Test-02The route table of VPC-Test-02 Destination: 172.18.0.0/241
ELBELB-TestThe dedicated load balancer1
EIPEIP-TestThe EIP bound to ELB-Test1
ECSECS-TestThe ECS works in VPC-Test-021
+

Table 1 Resource planning

+
note

To calculate the fees you can visit Open Telekom Cloud Price +calculator.

+

Procedure

+

Figure 2 Process of associating servers in a VPC that is different
+from the dedicated load
+balancer

+

Creating VPCs

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Under Networking, select Virtual Private Cloud. On the +Virtual Private Cloud page displayed, click Create VPC.

    +
  4. +
  5. +

    Configure the parameters as follows and click Create Now. For +details on how to create a VPC, see the Virtual Private Cloud User +Guide.

    +
      +
    • Name: VPC-Test-01
    • +
    • IPv4 CIDR Block: 172.18.0.0/24
    • +
    • Configure other parameters as required.
    • +
    +

    Figure 3 Creating
+VPC-Test-01

    +
  6. +
  7. +

    Repeat steps 2 & 3 to create the other VPC.

    +
      +
    • Name: VPC-Test-02
    • +
    • IPv4 CIDR Block: 172.17.0.0/24
    • +
    • Configure other parameters as required.
    • +
    +

    Figure 4 Creating
+VPC-Test-02

    +
  8. +
+

Creating a VPC Peering Connection

+
    +
  1. +

    In the navigation pane on the left, click VPC Peering.

    +
  2. +
  3. +

    In the upper right corner, click Create VPC Peering Connection.

    +
  4. +
  5. +

    Configure the parameters as follows and click OK. For details on +how to create a VPC peering connection, see the Virtual Private +Cloud User +Guide.

    +
      +
    • Name: Peering-Test
    • +
    • Local VPC: VPC-Test-01
    • +
    • Peer VPC: VPC-Test-02
    • +
    • Configure other parameters as required.
    • +
    +

    Figure 5 Creating
+Peering-Test

    +
  6. +
+

Adding Routes for the VPC Peering Connection

+
    +
  1. +

    In the navigation pane on the left, click Route Tables.

    +
  2. +
  3. +

    In the upper right corner, click Create Route Table.

    +
  4. +
  5. +

    Configure the parameters as follows and click OK. For details on +how to create a route table, see the Virtual Private Cloud User +Guide.

    +
      +
    • Name: Route-VPC-Test-01
    • +
    • VPC: VPC-Test-01
    • +
    • Destination: 172.17.0.0/24
    • +
    • Next Hop Type: VPC peering connection
    • +
    • Next Hop: Peering-Test
    • +
    +

    Figure 6 Creating
+Route-VPC-Test-01

    +
  6. +
  7. +

    Repeat steps 2 & 3 to create the other route table.

    +
      +
    • Name: Route-VPC-Test-02
    • +
    • VPC: VPC-Test-02
    • +
    • Destination: 172.18.0.0/24
    • +
    • Next Hop Type: VPC peering connection
    • +
    • Next Hop: Peering-Test
    • +
    +
  8. +
+

Creating an ECS

+
    +
  1. +

    Under Computing, click Elastic Cloud Server.

    +
  2. +
  3. +

    In the upper right corner, click Create ECS.

    +
  4. +
  5. +

    Select VPC-Test-02 as the VPC and set ECS Name to +ECS-Test. Configure other parameters as required. For details, +see Elastic Cloud Server User +Guide.

    +

    Figure 7 Creating
+ECS-Test

    +
  6. +
  7. +

    Deploy Nginx on the ECS.

    +

    Figure 8 Deploying Nginx on
+ECS-Test

    +
  8. +
+

Creating a Dedicated Load Balancer and Adding an HTTP Listener and a Backend Server Group to the Load Balancer

+
    +
  1. +

    Under Networking, click Elastic Load Balance.

    +
  2. +
  3. +

    In the upper right corner, click Create Elastic Load Balancer.

    +
  4. +
  5. +

    Configure the parameters as follows. For details, see Elastic Load +Balance User +Guide.

    +
      +
    • Type: Dedicated
    • +
    • IP as a Backend: Enable
    • +
    • VPC: VPC-Test-01
    • +
    • Name: ELB-Test
    • +
    • Configure other parameters as required.
    • +
    +

    Figure 9 Creating
+ELB-Test

    +
  6. +
  7. +

    Add an HTTP listener and a backend server group to the dedicated +load balancer. For details, see Elastic Load Balance User +Guide.

    +

    Figure 10 HTTP listener and backend server
+group

    +
  8. +
+

Adding the ECS to the Backend Server Group

+
    +
  1. +

    Locate the created dedicated load balancer and click its name +ELB-Test.

    +
  2. +
  3. +

    On the Listeners tab page, locate the HTTP listener added to the +dedicated load balancer and click its name.

    +
  4. +
  5. +

    In the Backend Server Groups tab on the right, click IP as +Backend Servers.

    +

    Figure 11 IP as backend
+servers

    +
  6. +
  7. +

    Click Add IP as Backend Server, configure the parameters, and +click OK. For details, see Elastic Load Balance User Guide.

    +
      +
    • Backend Server IP Address: Private IP address of +ECS-Test (172.17.0.205)
    • +
    • Backend Port: the port enabled for Nginx on ECS-Test
    • +
    • Weight: Set this parameter as required.
    • +
    +

    Figure 12 Adding ECS-Test using its IP
+address

    +
  8. +
+

Verifying Traffic Routing

+
note

EIP is not necessary as long as you don't want to access the ELB +externally, you can always access the ELB from its private IP.

+
    +
  1. +

    Locate the dedicated load balancer ELB-Test and click More +in the Operation column.

    +
  2. +
  3. +

    Select Bind IPv4 EIP to bind an EIP to ELB-Test.

    +

    Figure 13 EIP bound to the load
+balancer

    +
  4. +
  5. +

    Enter http://<EIP> in the address box of your browser to +access the dedicated load balancer. If the following page is +displayed, the load balancer routes the request to ECS-Test, +which processes the request and returns the requested page.

    +
    note

    In case of unhealthy connection of the backend server group, check +if the ECS subnet and ELB subnet are associated with the above +created route tables.

    +

    Figure 14 Verifying that the request is routed to
+ECS-Test

    +
  6. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer/index.html b/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer/index.html new file mode 100644 index 000000000..a4db77a94 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancer/index.html @@ -0,0 +1,156 @@ + + + + + +Routing Traffic to Backend Servers in the Same VPC as the Load Balancer | Architecture Center + + + + + +

Routing Traffic to Backend Servers in the Same VPC as the Load Balancer

+

You can route traffic to backend servers in the VPC where the load balancer is running.

+

Solution Design

+
    +
  • A dedicated load balancer ELB-Test is running in a VPC named +vpc-Test (10.1.0.0/16).
  • +
  • The backend server ECS-Test is also running in vpc-Test +(10.1.0.0/16).
  • +
  • ECS-Test needs to be added to the backend server group +associated with ELB-Test.
  • +
+

Figure 1 Adding a backend server in the same VPC as the load
+balancer

+
Advantages

You can add servers in the same VPC as the load balancer to the backend +server group of the load balancer and then route incoming traffic to the +servers.

+

Prerequisites

+
note

To calculate the fees you can visit Open Telekom Cloud Price +calculator.

+
Resource TypeResource NameDescriptionQuantity
VPCvpc-TestThe VPC where ELB-Test and ECS-Test are running: 10.1.0.0/161
ELBELB-TestThe dedicated load balancer named ELB-Test1
EIPEIP-TestThe EIP bound to ELB-Test1
ECSECS-TestThe ECS works in vpc-Test1
+

Table 1 Resource planning

+

Procedure

+

Figure 2 Process for adding backend servers in the same VPC as the
+load balancer

+

Creating a VPC

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Under Networking, select Virtual Private Cloud. On the +Virtual Private Cloud page displayed, click Create VPC.

    +
  4. +
  5. +

    Configure the parameters as follows and click Create Now. For +details on how to create a VPC, see the Virtual Private Cloud User +Guide.

    +
      +
    • Name: vpc-Test
    • +
    • IPv4 CIDR Block: 10.1.0.0/16
    • +
    • Configure other parameters as required.
    • +
    +

    Figure 3 Creating
+vpc-Test

    +
  6. +
+

Creating an ECS

+
    +
  1. +

    Under Computing, click Elastic Cloud Server.

    +
  2. +
  3. +

    In the upper right corner, click Create ECS.

    +
  4. +
  5. +

    Configure the parameters as required. For details, see Elastic +Cloud Server User +Guide.

    +

    Select vpc-Test for VPC and set Name to ECS-Test.

    +

    Figure 6 Creating
+ECS-Test

    +
  6. +
  7. +

    Deploy Nginx on the ECS.

    +

    Figure 7 Deploying Nginx on
+ECS-Test

    +
  8. +
+

Creating a Dedicated Load Balancer and Adding an HTTP Listener and a Backend Server Group to the Load Balancer

+
    +
  1. +

    Under Networking, click Elastic Load Balance.

    +
  2. +
  3. +

    In the upper right corner, click Create Elastic Load Balancer.

    +
  4. +
  5. +

    Configure the parameters as follows. For details, see Elastic Load +Balance User +Guide.

    +
      +
    • Type: Dedicated
    • +
    • IP as a Backend: Enable
    • +
    • VPC: vpc-Test
    • +
    • Name: ELB-Test
    • +
    • Configure other parameters as required.
    • +
    +

    Figure 8 Creating a dedicated load balancer named
+ELB-Test

    +
  6. +
  7. +

    Add an HTTP listener and a backend server group to the created +dedicated load balancer. For details, see Elastic Load Balance User +Guide.

    +
  8. +
+

Adding the ECS to the Backend Server Group

+
    +
  1. +

    Locate the dedicated load balancer and click its name ELB-Test.

    +
  2. +
  3. +

    On the Listeners tab page, locate the HTTP listener added to the +dedicated load balancer and click its name.

    +
  4. +
  5. +

    In the Backend Server Groups tab on the right, click Add +Backend Server, configure the parameters, and click OK. For +details, see Elastic Load Balance User Guide.

    +
      +
    • Backend Server: ECS-Test
    • +
    • Backend Port: the port enabled for Nginx on ECS-Test
    • +
    • Weight: Configure this parameter as required.
    • +
    +

    Figure 9 Adding IP as backend
+servers

    +
  6. +
+

Verifying Traffic Routing

+
note

EIP is not necessary as long as you don't want to access the ELB +externally, you can always access the ELB from its private IP.

+
    +
  1. +

    Locate the dedicated load balancer ELB-Test and click More +in the Operation column.

    +
  2. +
  3. +

    Select Bind IPv4 EIP to bind an EIP to ELB-Test.

    +

    Figure 10 EIP bound to the load
+balancer

    +
  4. +
  5. +

    Enter http://<EIP> in the address box of your browser to +access the dedicated load balancer. If the following page is +displayed, the load balancer routes the request to ECS-Test, +which processes the request and returns the requested page.

    +
    note

    In case of unhealthy connection of the backend server group, check +if the ECS subnet and ELB subnet are associated with the above +created route tables.

    +

    Figure 11 Verifying traffic
+routing

    +
  6. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iteration/index.html b/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iteration/index.html new file mode 100644 index 000000000..a2dfbc639 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iteration/index.html @@ -0,0 +1,233 @@ + + + + + +Using Advanced Forwarding for Application Iteration | Architecture Center + + + + + +

Using Advanced Forwarding for Application Iteration

+

As the business grows, you may need to upgrade your application. Both the old and new versions are used. Now, the new version is optimized based on users' feedback, and you want all the users to use the new version. In this process, you can use advanced forwarding to route requests to different versions.

+

Solution Design

+

Prerequisites

+
    +
  • An Open Telekom Cloud account is available and real-name +authentication has been completed.
  • +
  • The account balance is sufficient to pay for the resources involved +in this best practice.
  • +
  • Six (6) ECSs are available, with three having the application of the old +version deployed and the other three having the new version +deployed.
  • +
+

Procedure

+

Figure 1
+Flowchart

+
Resource NameResource TypeDescription
ELB-TestDedicatedOnly dedicated load balancers support advanced load balancer forwarding.
Server_Group-Test01BackendUsed to manage the ECSs where the application server group of the old version is deployed.
Server_Group-Test02BackendUsed to manage the ECSs where the application server group of the new version is deployed.
ECS01ECSUsed to deploy the application of the old version and added to Server_Group-Test01.
ECS02ECSUsed to deploy the application of the old version and added to Server_Group-Test01.
ECS03ECSUsed to deploy the application of the old version and added to Server_Group-Test01.
ECS04ECSUsed to deploy the application of the new version and added to Server_Group-Test02.
ECS05ECSUsed to deploy the application of the new version and added to Server_Group-Test02.
ECS06ECSUsed to deploy the application of the new version and added to Server_Group-Test02.
+

Table 1 Resource planning

+
note

In this practice, the dedicated load balancer is in the same VPC as the +ECSs. You can also add servers in a different VPC or in an on-premises +data center as needed. For details, see +Routing Traffic to Backend Servers in Different VPCs

+

Configuring a Dedicated Load Balancer

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Under Networking, click Elastic Load Balance.

    +
  4. +
  5. +

    In the upper right corner, click Create Elastic Load Balancer.

    +
  6. +
  7. +

    Create a dedicated load balancer ELB-Test. Configure the +parameters as follows. For details, see Elastic Load Balance User +Guide.

    +
      +
    • Type: Dedicated
    • +
    • Name: ELB-Test
    • +
    • Configure other parameters as required.
    • +
    +
  8. +
  9. +

    Add an HTTP listener to ELB-Test. For details, see Elastic Load +Balance User +Guide.

    +

    Figure 2 HTTP
+listener

    +
  10. +
  11. +

    Enable advanced forwarding. For details, see Elastic Load Balance +User +Guide

    +

    Figure 3 Enabling advanced
+forwarding

    +
  12. +
+

Creating Backend Server Groups and Adding Backend Servers

+
    +
  1. +

    Locate ELB-Test and click its name.

    +
  2. +
  3. +

    On the Listeners tab, click Create Backend Server Group in +the upper right corner.

    +
      +
    • Name: Server_Group-Test01
    • +
    • Backend Protocol: HTTP
    • +
    • Configure other parameters as required.
    • +
    +
  4. +
  5. +

    Repeat Step 2 to create backend server group Server_Group-Test02.

    +

    Figure 4 Backend server
+groups

    +
  6. +
  7. +

    Add ECS01, ECS02, and ECS03 to backend server group +Server_Group-Test01.

    +
  8. +
  9. +

    Add ECS04, ECS05, and ECS06 to backend server group +Server_Group-Test02

    +
  10. +
+

Forwarding Requests to Different Versions of the Application based on HTTP Request Methods

+

Configure two advanced forwarding policies with the HTTP request method +as the condition to route GET and DELETE requests to the application of +the old version and POST and PUT requests to the application of the new +version. When the application of the new version runs stably, direct all +the requests to the application.

+

Figure 5 Forwarding requests based on HTTP request
+methods

+
    +
  1. +

    Locate the dedicated load balancer and click its name ELB-Test.

    +
  2. +
  3. +

    On the Listeners tab page, locate the HTTP listener added to the +dedicated load balancer and click its name.

    +
  4. +
  5. +

    On the Forwarding Policies tab page on the right, click Add +Forwarding Policy to forward GET and DELETE requests to the old +version.

    +

    Select GET and DELETE from the HTTP request method +drop-down list, select Forward to backend server group for +Action, and select Server_Group-Test01 from the Backend +Server Group drop-down list.

    +

    Figure 6 Forwarding GET and DELETE requests to the application
+of the old
+version

    +
  6. +
  7. +

    Click Save

    +
  8. +
  9. +

    Repeat Step 3 and Step 4 to add a forwarding policy to forward PUT and POST +requests to the application of the new version.

    +

    Select PUT and POST from the HTTP request method +drop-down list, select Forward to backend server group for +Action, and select Server_Group-Test02 from the Backend +Server Group drop-down list.

    +

    Figure 7 Forwarding PUT and POST requests to the application
+of the new
+version

    +
  10. +
+

Forwarding Requests to Different Versions of the Application based on HTTP Headers

+

If the old version supports for example both Chinese and English, but the new +version only supports English because the Chinese version is still under +development, you can configure two advanced forwarding policies with the +HTTP header as the condition to route requests to the Chinese +application to the old version and requests to the English application +to the new version. When the application of the new version supports the +Chinese language, direct all the requests to the application.

+

Figure 8 Smooth application transition between the old and new
+versions based on the HTTP request
+header

+
    +
  1. +

    Locate the dedicated load balancer and click its name ELB-Test.

    +
  2. +
  3. +

    On the Listeners tab page, locate the HTTP listener added to the +dedicated load balancer and click its name.

    +
  4. +
  5. +

    On the Forwarding Policies tab page on the right, and click +Add Forwarding Policy to forward requests to the old version.

    +

    Select HTTP header from the drop-down list, set the key to +Accept-Language and value to zh-cn, set the action to +Forward to backend server group, and select +Server_Group-Test01 as the backend server group.

    +

    Figure 9 Forwarding requests to the application of the old
+version

    +
  6. +
  7. +

    Click Save.

    +
  8. +
  9. +

    Repeat Step 3 and Step 4 to add a forwarding policy to add a forwarding policy to forward requests to the application of the new version.

    +

    Select HTTP header from the drop-down list, set the key to +Accept-Language and value to en-us, set the action to +Forward to backend server group, and select +Server_Group-Test02 as the backend server group.

    +

    Figure 10 Forwarding requests to the application of the new
+version

    +
  10. +
+

Forwarding Requests to Different Versions of the Application based on Query Strings

+

If the application is deployed across regions, you can configure two +advanced forwarding policies with query string as the condition to +forward requests to the application in region 1 to the old version and +requests to the application in region 2 to the new version. When the +application of the new version runs stably, direct all the requests to +the new version.

+

Figure 11 Forwarding requests based on query
+strings

+
note
    +
  • Dedicated load balancers can distribute traffic across VPCs or +regions.
  • +
  • In this example, you need to use Cloud Connect to connect the VPCs +in the two regions and then use the dedicated load balancer to route +traffic to backend servers in the two regions.
  • +
+
    +
  1. +

    Locate the dedicated load balancer and click its name ELB-Test.

    +
  2. +
  3. +

    On the Listeners tab page, locate the HTTP listener added to the +dedicated load balancer and click its name.

    +
  4. +
  5. +

    On the Forwarding Policies tab page on the right, and click +Add Forwarding Policy to forward requests to application of the +old version.

    +

    Select Query string from the drop-down list, set the key to +region and value to region01, set Action to Forward to +backend server group, and select Server_Group-Test01 as the +backend server group.

    +

    Figure 12 Forwarding requests to the old
+version

    +
  6. +
  7. +

    Click Save.

    +
  8. +
  9. +

    Repeat Step 3 and Step 4 to add a forwarding policy to add a forwarding policy to forward requests to the +application of the new version.

    +

    Select Query string from the drop-down list, set the key to +region and value to region02, set Action to Forward to +backend server group, and select Server_Group-Test02 as the +backend server group.

    +

    Figure 13 Forwarding requests to the new
+version

    +
  10. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internet/index.html b/pr-preview/pr-186/docs/best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internet/index.html new file mode 100644 index 000000000..220d8fa49 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internet/index.html @@ -0,0 +1,71 @@ + + + + + +Using a Public NAT Gateway and VPC Peering to Enable Communications Between VPCs and the Internet | Architecture Center + + + + + +

Using a Public NAT Gateway and VPC Peering to Enable Communications Between VPCs and the Internet

+

Two VPCs, VPC A and VPC B are in the same region. A public NAT gateway is configured for subnet A in VPC A and you can add SNAT and DNAT rules for Internet connectivity. Subnet B connects to subnet A through a VPC peering connection and uses the public NAT gateway of subnet A to communicate with the Internet.

+

Solution Design

+

The CIDR block of VPC A is 192.168.0.0/16 and that of subnet A is 192.168.1.0/24.

+

The CIDR block of VPC B is 192.168.0.0/16 and that of subnet B is 192.168.2.0/24.

+

Topology

+
    +
  1. +

    A VPC peering connection is used to connect subnet A in VPC A to subnet B in VPC B.

    +
  2. +
  3. +

    A public NAT gateway is created in VPC A, and subnet B can use the public NAT gateway to communicate the Internet.

    +

    Figure 1 Network topology

    +
  4. +
+
Advantages

Only one public NAT gateway needs to be configured. Servers in the two VPCs can share the same public NAT gateway to communicate with the Internet, saving gateway resources.

+

Prerequisites

+
    +
  • If VPCs connected by a VPC peering connection have overlapping CIDR blocks, the connection can only enable communications between specific (non-overlapping) subnets in the VPCs.
  • +
  • All subnets of the two VPCs do not overlap with each other. For details, see VPC Peering Connection Usage Examples.
  • +
+

Deploying the Solution

+
    +
  1. +

    Create VPC A, VPC B, subnet A, and subnet B.

    +

    For detailed operations, see Creating a VPC.

    +
  2. +
  3. +

    Create a VPC peering connection.

    +

    Create a VPC peering connection between subnet A and subnet B. For detailed operations, see Creating a VPC Peering Connection with Another VPC in Your Account.

    +

    The local VPC is VPC A, and the peer VPC is VPC B.

    +

    Add a route in the route table of VPC B. Set Destination to 0.0.0.0/0 and Next Hop to the created VPC peering connection between VPC A and VPC B.

    +
  4. +
  5. +

    Create a public NAT gateway.

    +

    Create a public NAT gateway with VPC set to VPC A. For details about how to configure other parameters, see Creating a Public NAT Gateway.

    +
  6. +
  7. +

    Add an SNAT rule.

    +
      +
    1. Select VPC for Scenario and subnet A for Subnet. For more details, see Adding an SNAT Rule.
    2. +
    3. Add an SNAT rule for subnet B. Set Scenario to Direct Connect/Cloud Connect and enter the CIDR block of subnet B.
    4. +
    +
  8. +
  9. +

    Add a DNAT rule.

    +
      +
    1. Add a DNAT rule for subnet A. Select VPC for Scenario and enter an IP address of a server in subnet A for Private IP Address. For more details, see Adding a DNAT Rule.
    2. +
    3. Add a DNAT rule for subnet B. Set Scenario to Direct Connect/Cloud Connect and enter an IP address of a server in subnet B for Private IP Address.
    4. +
    +
  10. +
+

Verifying Connectivity

+

After the configuration is complete, test the network connectivity.

+

Log in to a server in subnet B and ping a public IP address.

+

Figure 2

+

Log in to a server that can access the Internet and is not deployed in VPC A or VPC B. Use curl to check whether the server can communicate with subnet B via the EIP associated with the DNAT rule configured for subnet B.

+

Figure 3

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurations/index.html b/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurations/index.html new file mode 100644 index 000000000..f7b09a46a --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurations/index.html @@ -0,0 +1,122 @@ + + + + + +Unsupported VPC Peering Configurations | Architecture Center + + + + + +

Unsupported VPC Peering Configurations

+

Scenarios

+

The VPC peering connection configurations are not supported in table below:

+
ScenarioExample
If VPCs with the same CIDR block also include subnets that overlap, VPC peering connections are not usable. If two VPCs have overlapping CIDR blocks but some of their subnets do not overlap, you cannot create a VPC peering connection to connect specific subnets that do not overlap.Invalid VPC Peering for Overlapping: VPC CIDR Blocks VPCs with the same CIDR block also include subnets that overlap. Two VPCs have overlapping CIDR blocks but some of their subnets do not overlap.
VPC peering connections cannot enable ECSs in their VPCs to share an EIP to access the Internet. If VPC-A and VPC-B are peered and ECS-A01 in VPC-A has an EIP, ECS-B01 in VPC-B cannot access the Internet using the EIP bound to ECS-A01.Invalid VPC Peering for Sharing an EIP
+

Table 1 Scenarios that VPC peering connections are invalid

+

Notes and Constraints

+
    +
  • +

    If the ECSs in VPCs connected by a VPC peering connections are in +different security groups, you need to add rules to the security +groups to allow access to each other. For details, Enabling ECSs in +Different Security Groups to Communicate with Each Other Through an +Internal +Network.

    +
    note

    In all examples in this section, the ECSs in local and peer VPCs are +in the same security group. No additional security group rule is +required.

    +
  • +
  • +

    Each route table of a VPC can have a maximum of 200 routes. If you +want to establish VPC peering connections between multiple VPCs, +consider this restriction when planning networking.

    +
  • +
  • +

    In a VPC route table, the route priority is as follows:

    +
      +
    • +

      Local route: A route that is automatically added by the system +for communication within a VPC. It has a higher priority than a +custom route.

      +
    • +
    • +

      Custom route: A route added by a user. It uses the longest +prefix match rule to find a destination for packet forwarding.

      +

      image1

      +
    • +
    +
  • +
+

Invalid VPC Peering for Overlapping VPC CIDR Blocks

+

If two VPCs have overlapping CIDR blocks, the VPC peering connection may +not take effect due to route conflicts. The following describes the +reasons and configuration suggestions.

+
    +
  • +

    VPCs with the same CIDR block also include subnets that overlap.

    +

    VPC peering connections are not usable. As shown in +Table 2, VPC-A and +VPC-B, and their subnets have the same CIDR block. If you create a +VPC peering connection between VPC-A and VPC-B, their route tables +are shown in Table 2.

    +

    In the rtb-VPC-A route table, the custom route for routing traffic +from VPC-A to VPC-B and the local route have overlapping +destinations. The local route has a higher priority and traffic will +be forwarded within VPC-A and cannot reach VPC-B.

    +

    Figure 1 Networking diagram
+(IPv4)

    +
    Route TableDestinationNext HopRoute TypeDescription
    rtb-VPC-A10.0.0.0/24LocalSystemLocal routes are automatically added for communications within a VPC.
    10.0.1.0/24LocalSystem
    10.0.0.0/16 (VPC-B)Peering-ABCustomAdd a route with the CIDR block of VPC-B as the destination and Peering-AB as the next hop.
    rtb-VPC-B10.0.0.0/24LocalSystemLocal routes are automatically added for communications within a VPC.
    10.0.1.0/24LocalSystem
    10.0.0.0/16 (VPC-A)Peering-ABCustomAdd a route with the CIDR block of VPC-A as the destination and Peering-AB as the next hop.
    +

    Table 2 VPC route table details

    +

    If two VPCs want to use their IPv6 CIDR blocks for communication by +a VPC peering connection but the IPv4 CIDR blocks of the VPCs or +subnets overlap, the connection is not usable.

    +

    Figure 2 Networking diagram
+(IPv6)

    +

    Two VPCs have overlapping CIDR blocks but some of their subnets do +not overlap. VPC peering connections will not take effect in the following +scenarios:

    +
      +
    • +

      Connecting overlapping CIDR blocks of VPCs

      +

      As shown in Figure 3, +if you create a VPC peering connection between VPC-A and VPC-B, +the VPC peering connection will not take effect because the two +VPCs have the same CIDR block.

      +
    • +
    • +

      Connecting overlapping subnets from different VPCs

      +

      If you create a VPC peering connection between Subnet-A01 and +Subnet-B02, the route tables are shown in table below. In the +rtb-VPC-B route table, the custom route for routing traffic from +Subnet-B02 to Subnet-A01 and the local route have overlapping +destinations. The local route has a higher priority and traffic +will be forwarded within Subnet-B02 and cannot reach Subnet-A01.

      +

      Figure 3 Networking diagram
+(IPv4)

      +
      Route TableDestinationNext HopRoute TypeDescription
      rtb-VPC-A10.0.0.0/24LocalSystemLocal routes are automatically added for communications within a VPC.
      10.0.1.0/24LocalSystem
      10.0.2.0/24 (Subnet-B02)Peering-ABCustomAdd a route with the CIDR block of Subnet-B02 as the destination and Peering-AB as the next hop.
      rtb-VPC-B10.0.0.0/24LocalSystemLocal routes are automatically added for communications within a VPC.
      10.0.2.0/24LocalSystem
      10.0.0.0/24 (Subnet-A01)Peering-ABCustomAdd a route with the CIDR block of Subnet-A01 as the destination and Peering-AB as the next hop.
      +

      Table 3 VPC route table details

      +

      If the subnets connected by a VPC peering connection do not overlap, +the connection will take effect. As shown in Figure 4, you can create a +VPC peering connection between Subnet-A02 and Subnet-B02. In this +case, the routes do not conflict and the VPC peering connection +takes effect.

      +

      Figure 4 Networking diagram
+(IPv4)

      +

      If two VPCs want to use their IPv6 CIDR blocks for communication by +a VPC peering connection but the IPv4 CIDR blocks of the VPCs or +subnets overlap, the connection is not usable.

      +

      Figure 5 Networking diagram
+(IPv6)

      +
    • +
    +
  • +
+

Invalid VPC Peering for Sharing an EIP

+

As shown in Figure 6, although +VPC-A and VPC-B are peered and ECS-A01 in VPC-A has an EIP, ECS-B01 in +VPC-B cannot access the Internet using the EIP bound to ECS-A01.

+

Figure 6 Networking
+diagram

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions/index.html b/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions/index.html new file mode 100644 index 000000000..47a5c1c12 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestions/index.html @@ -0,0 +1,179 @@ + + + + + +VPC and Subnet Planning Suggestions | Architecture Center + + + + + +

VPC and Subnet Planning Suggestions

+

Before creating your VPCs, determine how many VPCs, the number of +subnets, and what IP address ranges or connectivity options you will +need.

+

How Do I Determine How Many VPCs I Need?

+

VPCs are region-specific. By default, networks in VPCs in different +regions or even in the same region are not connected.

+

One VPC

+

If your services do not require network isolation, a single VPC +should be enough.

+

Multiple VPCs

+

If you have multiple service systems in a region and each service system +requires an isolated network, you can create a separate VPC for each +service system.

+

If you require network connectivity between separate VPCs in the same +account or in different accounts, you can use VPC peering connections or +Cloud Connect.

+
tip

If two VPCs are in the same region, use a VPC peering +connection.

+
important

By default, you can create a maximum of five VPCs in each region. If +this cannot meet your service requirements, request a quota increase. +For details, see How Do I Apply for a Higher +Quota?

+

The following table lists the private CIDR blocks that you can specify +when creating a VPC. Consider the following when selecting a VPC CIDR +block:

+
    +
  • Number of IP addresses: Reserve sufficient IP addresses in case of +business growth.
  • +
  • IP address range: Avoid IP address conflicts if you need to connect +a VPC to an on-premises data center or connect two VPCs.
  • +
+
VPC CIDR Block AddressesIP Address RangeMaximum Number IP
10.0.0.0/8-2410.0.0.0-10.255.255.2552^24-2=16777214
172.16.0.0/12-24172.16.0.0-172.31.255.2552^20-2=1048574
192.168.0.0/16-24192.168.0.0-192.168.255.2552^16-2=65534
+

: Table 1 VPC CIDR blocks

+

How Do I Plan Subnets?

+

A subnet is a unique CIDR block with a range of IP addresses in a VPC. +All resources in a VPC must be deployed on subnets.

+
    +
  • +

    By default, all instances in different subnets of the same VPC can +communicate with each other and the subnets can be located in +different AZs. For example, VPC-A has subnet A01 in AZ A and subnet +A02 in AZ B. Subnet A01 and subnet B01 can communicate with each +other by default.

    +
  • +
  • +

    After a subnet is created, its CIDR block cannot be modified. +Subnets in the same VPC cannot overlap.

    +

    When you create a VPC, a default subnet will be created together. If +you need more subnets, see Creating a Subnet for the +VPC.

    +

    A subnet mask can be between the netmask of its VPC CIDR block and +/28 netmask. If a VPC CIDR block is 10.0.0.0/16, its subnet mask can +between 16 to 28.

    +

    For example, if the CIDR block of VPC-A is 10.0.0.0/16, you can +specify 10.0.0.0/24 for subnet A01, 10.0.1.0/24 for subnet A02, and +10.0.3.0/24 for subnet A03.

    +
    important

    By default, you can create a maximum of 100 subnets in each region. +If this cannot meet your service requirements, request a quota +increase by referring to How Do I Apply for a Higher +Quota?

    +
  • +
+

When planning subnets, consider the following:

+
    +
  • You create different subnets for different modules in a VPC. For +example, in VPC-A, you can create subnet A01 for web services, +subnet A02 for management services, and subnet A03 for data +services. You can leverage network ACLs to control access to each +subnet.
  • +
  • If your VPC needs to communicate with an on-premises data center +through VPN or Direct Connect, ensure that the VPC subnet and the +CIDR block used for communication in the data center do not overlap.
  • +
+

How Do I Plan Routing Policies?

+

When you create a VPC, the system automatically generates a default +route table for the VPC. If you create a subnet in the VPC, the subnet +automatically associates with the default route table. A route table +contains a set of routes that are used to determine where network +traffic from your subnets in a VPC is directed. The default route table +ensures that subnets in a VPC can communicate with each other.

+

If you do not want to use the default route table, you can now create a +custom route table and associate it with the subnets. The custom route +table associated with a subnet affects only the outbound traffic. The +default route table controls the inbound traffic.

+

You can add routes to default and custom route tables and configure the +destination, next hop type, and next hop in the routes to determine +where network traffic is directed. Routes are classified into system +routes and custom routes.

+
    +
  • +

    System routes: Routes that are automatically added by the system and +cannot be modified or deleted. System routes allow instances in a +VPC to communicate with each other.

    +
  • +
  • +

    Custom routes: Routes that can be modified and deleted. The +destination of a custom route cannot overlap with that of a system +route.

    +
    caution

    You cannot add two routes with the same destination to a VPC route +table even if their next hop types are different, because the +destination determines the route priority. According to the longest +match routing rule, the destination with a higher matching degree is +preferentially selected for packet forwarding.

    +
  • +
+

How Do I Connect to an On-Premises Data Center?

+

If you require interconnection between a VPC and an on-premises data +center, ensure that the VPC does not have an overlapping IP address +range with the on-premises data center to be connected.

+

As shown in below, you have VPC 1 in region A and VPC 2 and VPC 3 in region B. +To connect to an on-premises data center, they can use a VPN, as VPC 1 +does in Region A; or a Direct Connect connection, as VPC 2 does in +Region B. VPC 2 connects to the data center through a Direct Connect +connection, but to connect to another VPC in that region, like VPC 3, a +VPC peering connection must be established.

+

Figure 1 Connections to on-premises data
+centers

+

When planning CIDR blocks for VPC 1, VPC 2, and VPC 3:

+
    +
  • The CIDR block of VPC 1 cannot overlap with the CIDR block of the +on-premises data center in Region A.
  • +
  • The CIDR block of VPC 2 cannot overlap with the CIDR block of the +on-premises data center in Region B.
  • +
  • The CIDR blocks of VPC 2 and VPC 3 cannot overlap.
  • +
+

How Do I Access the Internet?

+

Use EIPs to enable a small number of ECSs to access the Internet

+

When only a few ECSs need to access the Internet, you can bind the EIPs +to the ECSs. This will provide them with Internet access. You can also +dynamically unbind the EIPs from the ECSs and bind them to NAT gateways +and load balancers instead, which will also provide Internet access. The +process is not complicated.

+

For more information about EIP, see EIP +Overview.

+

Use a NAT gateway to enable a large number of ECSs to access the Internet

+

When a large number of ECSs need to access the Internet, the public +cloud provides NAT gateways for your ECSs. With NAT gateways, you do not +need to assign an EIP to each ECS. NAT gateways reduce costs as you do +not need so many EIPs. NAT gateways offer both source network address +translation (SNAT) and destination network address translation (DNAT). +SNAT allows multiple ECSs in the same VPC to share one or more EIPs to +access the Internet. SNAT prevents the EIPs of ECSs from being exposed +to the Internet. DNAT can implement port-level data forwarding. It maps +EIP ports to ECS ports so that the ECSs in a VPC can share the same EIP +and bandwidth to provide Internet-accessible services.

+

For more information, see NAT Gateway User +Guide.

+

Use ELB to access the Internet If there are a large number of concurrent requests

+

In high-concurrency scenarios, such as e-commerce, you can use load +balancers provided by the ELB service to evenly distribute incoming +traffic across multiple ECSs, allowing a large number of users to +concurrently access your business system or application. ELB is deployed +in the cluster mode. It provides fault tolerance for your applications +by automatically balancing traffic across multiple AZs. You can also +take advantage of deep integration with Auto Scaling (AS), which enables +automatic scaling based on service traffic and ensures service stability +and reliability.

+

For more information, see Elastic Load Balance User +Guide.

+

Additional Resources

+
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub/index.html b/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub/index.html new file mode 100644 index 000000000..770a84fdd --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub/index.html @@ -0,0 +1,164 @@ + + + + + +Connecting Multiple On-Premises Branch Networks Through a VPN Hub | Architecture Center + + + + + +

Connecting Multiple On-Premises Branch Networks Through a VPN Hub

+

In this solution we are going to demonstrate how an Enterprise A can implement communication between its two on-premises data centers in order to meet service requirements.

+

Solution Design

+

Figure 1 shows the networking where the VPN service is used to connect the two on-premises data centers.

+

+

Figure 1: Networking diagram

+

Advantages

+
    +
  • A VPN gateway on the cloud can function as a VPN hub to enable communication between on-premises branch sites. This eliminates the need to configure VPN connections between every two sites.
  • +
  • A VPN gateway provides two IP addresses to establish dual independent VPN connections with each customer gateway. If one VPN connection fails, traffic can be quickly switched to the other VPN connection, ensuring reliability.
  • +
+

Limitations and Constraints

+
    +
  • The local and customer subnets of the VPN gateway cannot be the same. That is, the VPC subnet and the data center subnet to be interconnected cannot be the same.
  • +
  • The IKE policy, IPsec policy, and PSK of the VPN gateway must be the same as those of the customer gateway.
  • +
  • The local and remote interface address configurations on the VPN gateway and customer gateway are reversed.
  • +
  • The security groups associated with ECSs in the VPC permit access from and to the on-premises data center.
  • +
+

Planning Networks and Resources

+

Data Plan

+
CategoryItemData
VPCSubnet that needs to access the on-premises data centers

192.168.0.0/24
+• 192.168.1.0/24

VPN gatewayInterconnection subnet

This subnet is used for communication between the VPN gateway and VPC. Ensure that the selected interconnection subnet has four or more assignable IP addresses.

+192.168.2.0/24

HA ModeActive-active
EIP

EIPs are automatically generated when you create them. By default, a VPN gateway uses two EIPs. In this example, the EIPs are as follows:

+• Active EIP: 1.1.1.2
+• Active EIP 2: 2.2.2.2

VPN connectionTunnel interface address

This address is used by a VPN gateway to establish an IPsec tunnel with a customer gateway. At the two ends of the IPsec tunnel, the configured local and remote tunnel interface addresses must be reversed.

+VPN connections set up with on-premises data center 1:
+• VPN connection 1: 169.254.70.1/30
+• VPN connection 2: 169.254.71.1/30

+VPN connections set up with on-premises data center 2:
+• VPN connection 3: 169.254.72.1/30
+• VPN connection 4: 169.254.73.1/30

On-premises data center 1Subnet that needs to access the VPC172.16.0.0/16
Customer gateway in on-premises data center 1Public IP address

This public IP address is assigned by a carrier. In this example, the public IP address is:

+1.1.1.1

Tunnel interface address

• VPN connection 1: 169.254.70.2/30
+• VPN connection 2: 169.254.71.2/30

On-premises data center 2Subnet that needs to access the VPC10.10.0.0/16
Customer gateway in on-premises data center 2Public IP address

This public IP address is assigned by a carrier. In this example, the public IP address is:

+2.2.2.1

Tunnel interface address

• VPN connection 3: 169.254.72.2/30
+• VPN connection 4: 169.254.73.2/30

IKE and IPsec policiesPSKTest@123
IKE policy

• Authentication algorithm: SHA2-256
+• Encryption algorithm: AES-128
+• DH algorithm: Group 15
+• Version: v2
+• Lifetime (s): 86400
+• Local ID: IP address
+• Peer ID: IP address

IPsec policy

• Authentication algorithm: SHA2-256
+• Encryption algorithm: AES-128
+• PFS: DH Group15
+• Transfer protocol: ESP
+• Lifetime (s): 3600

+

Table 1: Data Plan

+

Prerequisites

+
    +
  • Cloud side +
      +
    • A VPC has been created. For details about how to create a VPC, see Creating a VPC.
    • +
    • Security group rules have been configured for the VPC, and ECSs can communicate with other devices on the cloud. For details about how to configure security group rules, see Security Group Rules.
    • +
    +
  • +
  • Data center side +
      +
    • IPsec has been configured on the VPN devices in the two on-premises data centers. For details, see Administrator Guide.
    • +
    • The remote subnets of the VPN device in on-premises data center 1 must contain the local subnet of the Open Telekom Cloud VPC and the subnet to be interconnected in on-premises data center 2. The remote subnets of the VPN device in on-premises data center 2 must contain the local subnet of the Open Telekom Cloud VPC and the subnet to be interconnected in on-premises data center 1.
    • +
    +
  • +
+

Configuration

+

Open Telekom Cloud VPNs support static routing mode, BGP routing mode, and policy-based mode. The following uses the static routing mode as an example.

+
    +
  1. +

    Configure a VPN gateway.

    +
      +
    1. +

      Choose Virtual Private Network -> Enterprise – VPN Gateways, and click Create VPN Gateway.

      +
    2. +
    3. +

      Set parameters as prompted.

      +

      Table 1 only describes the key parameters for creating a VPN gateway.

      +

      Table 1 Description of VPN gateway parameters

      +
      ParameterDescriptionValue
      NameName of a VPN gateway.vpngw-001
      Network TypeSelect Public network.Public network
      Associate WithSelect VPC. If the VPN gateway is associated with an enterprise router, select Enterprise Router.VPC
      VPCOpen Telekom Cloud VPC that the on-premises data centers need to access.vpc-001(192.168.0.0/16)
      Local SubnetVPC subnets that the on-premises data centers need to access.192.168.0.0/24,192.168.1.0/24
      Interconnection SubnetThis subnet is used for communication between the VPN gateway and VPC. Ensure that the selected interconnection subnet has four or more assignable IP addresses.192.168.2.0/24
      BGP ASNBGP AS number.64512
      HA ModeSelect Active-active.Active-active
      Active EIPEIP 1 used by the VPN gateway to access the on-premises data center.1.1.1.2
      Active EIP 2EIP 2 used by the VPN gateway to access the on-premises data center.2.2.2.2
      +
    4. +
    +
  2. +
  3. +

    Configure customer gateways.

    +
      +
    1. +

      Choose Virtual Private Network -> Enterprise – Customer Gateways, and click Create Customer Gateway.

      +
    2. +
    3. +

      Set parameters as prompted.

      +

      Table 2 only describes the key parameters for creating a customer gateway.

      +

      Table 2 Description of customer gateway parameters

      +
      ParameterDescriptionValue
      NameName of a customer gateway.cgw-fw1
      Routing ModeSelect Static.Static
      Gateway IP AddressIP address used by the customer gateway in on-premises data center 1 to communicate with the Open Telekom Cloud VPN gateway.
      Ensure that UDP port 4500 is permitted on the customer gateway device in the on-premises data center.
      1.1.1.1
      +
    4. +
    5. +

      Repeat the preceding operations to configure the customer gateway (2.2.2.1) in on-premises data center 2.

      +
    6. +
    +
  4. +
  5. +

    Configure VPN connections between the cloud side and on-premises data center 1.

    +
      +
    1. +

      Choose Virtual Private Network -> Enterprise – VPN Connections, and click Create VPN Connection.

      +
    2. +
    3. +

      Set parameters for VPN connection 1 and click Submit.

      +

      Table 3 only describes the key parameters for creating a VPN connection.

      +

      Table 3 Description of VPN connection parameters

      +
      ParameterDescriptionValue
      NameName of a VPN connection.vpn-001
      VPN GatewayVPN gateway for which the VPN connection is created.vpngw-001
      Gateway IP AddressActive EIP bound to the VPN gateway.1.1.1.2
      VPN TypeSelect Static routing.Static routing
      Customer GatewayName of a customer gateway.cgw-fw1
      Customer SubnetSubnet in on-premises data center 1 that needs to access the VPC on Open Telekom Cloud. A customer subnet cannot be included in any local subnet or any subnet of the VPC to which the VPN gateway is attached. Reserved VPC CIDR blocks such as 100.64.0.0/10 and 214.0.0.0/8 cannot be used as customer subnets.172.16.0.0/16
      Interface IP Address AssignmentManually specify In this example, select Manually specify. Automatically assignManually specify
      Local Tunnel Interface AddressTunnel interface IP address configured on the VPN gateway.169.254.70.1
      Customer Tunnel Interface AddressTunnel interface IP address configured on the customer gateway device.169.254.70.2
      Link DetectionWhether to enable route reachability detection in multi-link scenarios. When NQA is enabled, ICMP packets are sent for detection and your device needs to respond to these ICMP packets.NQA enabled
      PSK, Confirm PSKThe value must be the same as the PSK configured on the customer gateway device.Test@123
      Policy SettingsThe policy settings must be the same as those on the customer gateway device.Default
      +
    4. +
    5. +

      Create VPN connection 2.

      +
      note

      For VPN connection 2, you are advised to use the same parameter settings as VPN connection 1, except the parameters listed in the following table.

      +

      Table 4 Parameter settings for VPN connection 2

      +
      ParameterDescriptionValue
      NameName of a VPN connection.vpn-002
      Gateway IP AddressActive EIP 2 bound to the VPN gateway.2.2.2.2
      Local Tunnel Interface AddressTunnel IP address of the VPN gateway.169.254.71.1
      Customer Tunnel Interface AddressTunnel IP address of the customer gateway.169.254.71.2
      +
    6. +
    +
  6. +
  7. +

    Configure VPN connections between the cloud side and on-premises data center 2.

    +
      +
    1. +

      Choose Virtual Private Network -> Enterprise – VPN Connections, and click Create VPN Connection.

      +
    2. +
    3. +

      Set parameters for VPN connection 1 as prompted and click Submit.

      +

      Table 5 only describes the key parameters for creating a VPN connection.

      +

      Table 5 Description of VPN connection parameters

      +
      ParameterDescriptionValue
      NameName of a VPN connection.vpn-003
      VPN GatewayVPN gateway for which the VPN connection is created.vpngw-001
      Gateway IP AddressActive EIP bound to the VPN gateway.1.1.1.2
      Customer GatewayName of a customer gateway.cgw-fw2
      VPN TypeSelect Static routing.Static routing
      Customer SubnetSubnet in on-premises data center 2 that needs to access the VPC on Open Telekom Cloud. A customer subnet cannot be included in any local subnet or any subnet of the VPC to which the VPN gateway is attached. Reserved VPC CIDR blocks such as 100.64.0.0/10 and 214.0.0.0/8 cannot be used as customer subnets.10.10.0.0/16
      Interface IP Address AssignmentManually specify In this example, select Manually specify. Automatically assignManually specify
      Local Tunnel Interface AddressTunnel interface IP address configured on the VPN gateway.169.254.72.1
      Customer Tunnel Interface AddressTunnel interface IP address configured on the customer gateway device.169.254.72.2
      Link DetectionWhether to enable route reachability detection in multi-link scenarios. When NQA is enabled, ICMP packets are sent for detection and your device needs to respond to these ICMP packets.NQA enabled
      PSK, Confirm PSKThe value must be the same as the PSK configured on the customer gateway device in on-premises data center 2.Test@123
      Policy SettingsThe policy settings must be the same as those configured on the customer gateway device in on-premises data center 2.Default
      +
    4. +
    5. +

      Create VPN connection 2.

      +
      note

      For VPN connection 2, you are advised to use the same parameter settings as VPN connection 1, except the parameters listed in the following table.

      + +

      Table 6 Parameter settings for VPN connection 2

      +
      ParameterDescriptionValue
      NameName of a VPN connection.vpn-004
      Gateway IP AddressActive EIP 2 bound to the VPN gateway.2.2.2.2
      Local Tunnel Interface AddressTunnel IP address of the VPN gateway.169.254.73.1
      Customer Tunnel Interface AddressTunnel IP address of the customer gateway in on-premises data center 2.169.254.73.2
      +
    6. +
    +
  8. +
  9. +

    Configure customer gateway devices in on-premises data centers 1 and 2.

    +

    The configuration procedures may vary according to the type of the customer gateway device. For details, see Administrator Guide.

    +
  10. +
+

Verification

+
    +
  • +

    About 5 minutes later, check states of the VPN connections.

    +

    Choose Virtual Private Network -> Enterprise – VPN Connections. The states of the four VPN connections are all Normal.

    +
  • +
  • +

    Verify that servers in on-premises data center 1 and servers in on-premises data center 2 can ping each other.

    +
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports/index.html b/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports/index.html new file mode 100644 index 000000000..640f3ba45 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-ports/index.html @@ -0,0 +1,179 @@ + + + + + +Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports | Architecture Center + + + + + +

Combining WAF and Layer-7 Load Balancers to Protect Services over Any Ports

+

This topic walks you through how to combine dedicated WAF instances and layer-7 load balancers to protect your services over non-standard ports that cannot be protected with WAF alone. For ports supported by WAF, see Ports Supported by WAF.

+

Protection Scenarios

+

The following procedure describes how WAF and ELB together protect +www.example.com:9876. Port 9876 is a non-standard port WAF alone +cannot protect.

+

Prerequisites

+
    +
  • +

    You have purchased a dedicated layer-7 load balancer. For details +about load balancer types, see Differences Between Dedicated and +Shared Load +Balancers.

    +
    caution

    Dedicated WAF instances issued before April 2023 cannot be used with +dedicated network load balancers. If you use a dedicated network +load balancer (TCP/UDP), ensure that your dedicated WAF instance has +been upgraded to the latest version (issued after April 2023).

    +
  • +
  • +

    Related ports have been enabled in the security group to which the +dedicated WAF instance belongs.

    +

    You can configure your security group as follows:

    +
      +
    • +

      Inbound rules

      +

      Add an inbound rule to allow incoming network traffic to pass +through over a specified port based on your service +requirements. For example, if you want to allow access from port +80, add a rule that allows TCP and port 80.

      +
    • +
    • +

      Outbound rules

      +

      Retain the default settings. All outgoing network traffic is +allowed by default.

      +

      For more details, see Adding a Security Group +Rule.

      +
    • +
    +
  • +
+

Procedure

+
    +
  1. +

    Apply for a dedicated WAF instance.

    +
  2. +
  3. +

    Connect www.example.com to WAF by referring to Adding a Website to +WAF (Dedicated +Mode). +Select any non-standard port as the protected port, for example, +port 86, set Server Port to 9876, and set Proxy +Configured to Layer-7 proxy.

    +

    Figure 1 Adding a domain name to
+WAF

    +
  4. +
  5. +

    Add listeners and backend server groups to the load balancer.

    +
      +
    1. +

      Log in to the management console.

      +
    2. +
    3. +

      Click +image1 in +the upper left corner of the management console and select a +region or project.

      +
    4. +
    5. +

      Click +image2 in +the upper left corner of the page and choose Elastic Load +Balance under Networking to go to the Load Balancers +page.

      +
    6. +
    7. +

      Click the name of the load balancer in the Name column to go +to the Basic Information page.

      +
    8. +
    9. +

      Click the Listeners tab and then click Add Listener. On +the displayed page, configure the listener. In the Frontend +Port text box, enter the port you want to protect. In this +case, enter 9876.

      +

      Figure 2 Configuring a
+listener

      +
    10. +
    11. +

      Click Next: Configure Request Routing Policy.

      +

      Figure 3 Configuring a backend server
+group

      +
      important
        +
      • If you select Weighted round robin for Load Balancing +Algorithm, disable Sticky Session. If you enable +Sticky Session, the same requests will be forwarded to +the same dedicated WAF instance. If this instance becomes +faulty, an error will occur when the requests come to it +next time.
      • +
      • For details about ELB traffic distribution policies, see +Load Balancing +Algorithms.
      • +
      +
    12. +
    13. +

      Click Next: Add Backend Server and click Next: Confirm.

      +
    14. +
    +
  6. +
  7. +

    Add the WAF instance to the load balancer.

    +
      +
    1. +

      Log in to the management console.

      +
    2. +
    3. +

      Click +image3 in +the upper left corner of the management console and select a +region or project.

      +
    4. +
    5. +

      Click +image4 in +the upper left corner, select a region, and choose Security -> Web Application Firewall (Dedicated) to go to the +Dashboard page.

      +
    6. +
    7. +

      In the navigation pane on the left, choose Instance +Management -> Dedicated Engine to go to the dedicated WAF +instance page.

      +

      Figure 4 Dedicated engine
+list

      +
    8. +
    9. +

      Locate the row containing the WAF instance. In the Operation +column, click More -> Add to ELB.

      +
    10. +
    11. +

      In the Add to ELB dialog box, specify ELB (Load +Balancer), ELB Listener, and Backend Server Group +based on previous step.

      +

      Figure 5 Add to
+ELB

      +
    12. +
    13. +

      Click Confirm. Then, configure service port for the WAF +instance. In this example, configure Backend Port to 86, +which is the one we configured in step 2.

      +

      Figure 6 Configuring Backend
+Port

      +
    14. +
    15. +

      Click Confirm.

      +
    16. +
    +
  8. +
  9. +

    Bind an EIP to a Load +Balancer.

    +
  10. +
  11. +

    Whitelist IP addresses of your dedicated WAF +instances.

    +
  12. +
+

How the Combination Protects Traffic

+

image5

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/configuring-anti-crawler-rules-to-prevent-crawler-attacks/index.html b/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/configuring-anti-crawler-rules-to-prevent-crawler-attacks/index.html new file mode 100644 index 000000000..ce5a4f042 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/configuring-anti-crawler-rules-to-prevent-crawler-attacks/index.html @@ -0,0 +1,193 @@ + + + + + +Configuring Anti-Crawler Rules to Prevent Crawler Attacks | Architecture Center + + + + + +

Configuring Anti-Crawler Rules to Prevent Crawler Attacks

+

WAF provides three anti-crawler policies, bot detection by identifying User-Agent, website anti-crawler by checking browser validity, and CC attack protection by limiting the access frequency, to comprehensively mitigate crawler attacks against your websites.

+

Web crawlers make network information collection and query easy, but +they also introduce the following negative impacts:

+
    +
  • Web crawlers always consume too much server bandwidth and increase +server load as they use specific policies to browser as much +information of high value on a website as possible.
  • +
  • Bad actors may use web crawlers to launch DoS attacks against +websites. As a result, websites may fail to provide normal services +due to resource exhaustion.
  • +
  • Bad actors may use web crawlers to steal mission-critical data on +your websites, which will damage your economic interests.
  • +
+

Prerequisites

+

The domain name has been connected to WAF.

+

Enabling Robot Detection to Identify User-Agent

+

If you enable robot detection, WAF can detect and block threats such as +malicious crawlers, scanners, and web shells.

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Click image1 in +the upper left corner of the management console and select a region +or project.

    +
  4. +
  5. +

    Click image2 in +the upper left corner and choose Web Application Firewall under +Security.

    +
  6. +
  7. +

    In the navigation pane on the left, choose Policies.

    +
  8. +
  9. +

    Click on Create Policy, type in a Policy Name and then click on +the created Policy after its been created.

    +
  10. +
  11. +

    Ensure that Basic Web Protection is enabled (status: +image3).

    +

    Figure 1 Basic Web Protection configuration
+area

    +
  12. +
  13. +

    In Basic Web Protection click Advanced Settings and enable +General Check and Webshell Detection.

    +
  14. +
  15. +

    Enable Anti-Crawler protection functions based on your business +needs.

    +

    Figure 2 Feature
+Library

    +
  16. +
+

If WAF detects that a malicious crawler or scanner is crawling your +website, WAF immediately blocks it and logs the event. You can view the +crawler protection logs on the Events page.

+

image6

+

Enabling Anti-Crawler Protection to Verify Browser Validity

+

If you enable anti-crawler protection, WAF dynamically analyzes website +service models and accurately identifies crawler behavior based on data +risk control and bot identification approaches.

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Click image7 in +the upper left corner of the management console and select a region +or project.

    +
  4. +
  5. +

    Click image8 in +the upper left corner and choose Web Application Firewall under +Security & Compliance.

    +
  6. +
  7. +

    In the navigation pane on the left, choose Policies.

    +
  8. +
  9. +

    Click on Create Policy, type in a Policy Name and then click on +the created Policy after its been created.

    +
  10. +
  11. +

    Select the JavaScript tab and change Status if needed.

    +

    JavaScript anti-crawler is disabled by default. To enable it, +click image11 and +then click Confirm in the displayed dialog box to toggle on +image12.

    +

    Protective Action: Block, Verification code, and Log +only.

    +
    note

    Verification code: If the JavaScript challenge fails, a +verification code is required. Requests will be blocked unless the +visitor enters a correct verification code.

    +
    important
      +
    • +

      Cookies must be enabled and JavaScript supported by any browser +used to access a website protected by anti-crawler protection +rules.

      +
    • +
    • +

      If your service is connected to CDN, exercise caution when using +the JS anti-crawler function. CDN caching may impact JS anti-crawler performance and page +accessibility.

      +
    • +
    +
  12. +
  13. +

    Configure a JavaScript-based anti-crawler rule by referring to the table below.

    +

    Two protective actions are provided: Protect all requests and +Protect specified requests.

    +
      +
    • +

      To protect all requests except requests that hit a specified +rule

      +

      Set Protection Mode to Protect all requests. Then, click +Exclude Rule, configure the request exclusion rule, and +click Confirm.

      +

      Figure 3 Exclude
+Rule

      +
    • +
    • +

      To protect a specified request only

      +

      Set Protection Mode to Protect specified requests, click +Add Rule, configure the request rule, and click Confirm.

      +
    • +
    +
    ParameterDescriptionExample Value
    Rule NameName of the rulewaf
    Rule DescriptionA brief description of the rule. This parameter is optional.-
    Effective DateTime the rule takes effect.Immediate
    Condition ListParameters for configuring a condition are as follows: Field: Select the field you want to protect from the drop-down list. Currently, only Path and User Agent are included. Subfield Logic: Select a logical relationship from the drop-down list. Note If you set Logic to Include any value, Exclude any value, Equal to any value, Not equal to any value, Prefix is any value, Prefix is not any of them, Suffix is any value, or Suffix is not any of them, you need to select a reference table. Content: Enter or select the content that matches the condition.Path Include /admin
    PriorityRule priority. If you have added multiple rules, rules are matched by priority. The smaller the value you set, the higher the priority.5
    +

    Table 1 Parameters of a JavaScript-based anti-crawler protection +rule

    +
  14. +
+

If you enable anti-crawler, web visitors can only access web pages +through a browser.

+

image13

+

Configuring CC Attack Protection to Limit Access Frequency

+

A CC attack protection rule uses a specific IP address, cookie, or +referer to limit the access to a specific path (URL), mitigating the +impact of CC attacks on web services.

+
    +
  1. +

    Log in to the management

    +
  2. +
  3. +

    Click image14 +in the upper left corner of the management console and select a +region or project.

    +
  4. +
  5. +

    Click image15 +in the upper left corner and choose Web Application Firewall +under Security & Compliance.

    +
  6. +
  7. +

    In the navigation pane on the left, choose Policies.

    +
  8. +
  9. +

    Click on the Policy and ofn the displayed page,, keep the
    +Status toggle on +(image16) for +CC Attack Protection.

    +

    Figure 4 CC Attack Protection configuration
+area

    +
  10. +
  11. +

    In CC Attack Protection below Status , click Customize +Rule and then Add rule. The following uses IP address-based +rate limiting and human-machine verification as examples to describe +how to add an IP address-based rate limiting rule, as shown in the figue below:

    +

    Figure 5 Per IP
+address

    +

    If the number of access requests exceeds the configured rate limit, +the visitors are required to enter a verification code to continue +the access.

    +

    image17

    +
  12. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/using-lts-to-quickly-query-and-analyze-waf-access-logs/index.html b/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/using-lts-to-quickly-query-and-analyze-waf-access-logs/index.html new file mode 100644 index 000000000..f8b41d473 --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/using-lts-to-quickly-query-and-analyze-waf-access-logs/index.html @@ -0,0 +1,94 @@ + + + + + +Using LTS to Quickly Query and Analyze WAF Access Logs | Architecture Center + + + + + +

Using LTS to Quickly Query and Analyze WAF Access Logs

+

After you authorize WAF to access Log Tank Service (LTS), you can use the WAF logs recorded by LTS for quick and efficient real-time analysis, device O&M management, and analysis of service trends.

+

This practice uses the access log stream lts-waf-access of log group +lts-waf as an example to describe how to use LTS to quickly query +and analyze logs.

+

Prerequisites

+ +

Procedure

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Click image1 in +the upper left corner of the management console and select a region +or project.

    +
  4. +
  5. +

    Click image2 in +the upper left corner of the page and choose Management & +Governance -> Log Tank Service.

    +
  6. +
  7. +

    In the Log Group Name column, click the name of the target log +group (for example, lts-group-waf) to go the log stream page.

    +
  8. +
  9. +

    In the Log Stream Name column, click the name of the log stream +used for WAF access logs (for example, lts-topic-waf-access). +Then, select the Log Stream tab.

    +

    Figure 1 Accessing the log stream
+page

    +
  10. +
  11. +

    On the log stream details page, click +image3 in the +upper right corner. On the page displayed, click the Cloud +Structured Parsing tab.

    +
  12. +
  13. +

    Select JSON as the log structure, as shown in figure below:

    +

    Figure 2
+JSON

    +
  14. +
  15. +

    In the Step 1 Select a sample log event. area, click Select +from existing log events. In the displayed Select Log Event +dialog box, select a log and click OK.

    +

    Figure 3 Select Log
+Event

    +
  16. +
  17. +

    In the Step 2 Extract fields area, click Intelligent +Extraction and enable quick analysis for the log field you want to +analyze (for example, remote_ip).

    +

    remote_ip: IP address of a client from which the request +originates.

    +

    Figure 4 Selecting log fields for quick
+analysis

    +
  18. +
  19. +

    Click Save. Then, LTS will start a quick analysis and do +statistics for logs collected in a certain period.

    +

    Figure 5 Quickly analysis of access
+logs

    +
  20. +
  21. +

    In the navigation pane, choose Visualization. On the right pane, +select a log query time range, enter an SQL statement in the search +box, and click Query to query the specified log.

    +

    You can enter either of the following SQL statements in the search +box to query logs of a specified IP address:

    +
    select * where remote_ip = 'xx.xx.xx.xx' 
    +

    or

    +
    select * where remote_ip like 'xx.xx.xx%'
    +
  22. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/storage/elastic-volume-service/raid-array-creation-with-evs-disks/index.html b/pr-preview/pr-186/docs/best-practices/storage/elastic-volume-service/raid-array-creation-with-evs-disks/index.html new file mode 100644 index 000000000..7a2148c9c --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/storage/elastic-volume-service/raid-array-creation-with-evs-disks/index.html @@ -0,0 +1,275 @@ + + + + + +RAID Array Creation with EVS Disks | Architecture Center + + + + + +

RAID Array Creation with EVS Disks

+

Redundant Array of Independent Disks (RAID) is a technology that combines multiple physical disks into one or more logical units for the purposes of data redundancy and performance improvement.

+
note

In this document, Elastic Volume Service (EVS) disks instead of physical +disks are used to create RAID arrays. The working principles are the +same.

+

Solution Design

+

This document uses CentOS Stream 9 as the sample OS to describe how to +create a RAID 10 array with four EVS disks. A RAID 10 array consists of +RAID 0 and RAID 1 arrays. In this example, EVS disks are used to create +a mirroring array (RAID 1) and then create a RAID 0 array to store data +in stripes. At least four EVS disks are required.

+

Prerequisites

+

This practice describes the servers and disks planned for creating a RAID +10 array:

+
    +
  • ECS Name: ecs-raid10
  • +
  • ECS Image: CentOS Strean 9
  • +
  • ECS Specifications: General computing, s3.medium.2 (1 vCPU, 2 GiB memory)
  • +
  • Elastic IP Address: 80.158.xxx.xxx if you want to access it from public internet. Alternatively you could use a bastion.
  • +
+
important

Setting up RAID 10 requires at least 4 disks. Therefore, 4 EVS disks are +created and attached to the ECS in this example.

+

Creating an ECS

+

This section shows how to create an ECS. In this example, one ECS needs +to be created. For details about the ECS parameter configurations, see Prerequisites:

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Under Computing, click Elastic Cloud Server.

    +
  4. +
  5. +

    Click Create ECS.

    +

    Configure the following parameters as planned:

    +
      +
    • +

      Image: Select CentOS and choose +Standard_CentOS_Stream-9_latest(6GB).

      +
    • +
    • +

      EIP: An EIP is mandatory if the ECS needs to access the +public network. In this example, the multiple devices admin +(mdadm) tool needs to be installed. Therefore, an EIP must be +configured. Assign an EIP or configure an existing one based on +the environment condition.

      +
    • +
    +
  6. +
+

Creating and Attaching EVS Disks

+

This section shows how to create four EVS disks in a batch and attach +the disks to the ECS.

+
    +
  1. +

    Log in to the management console.

    +
  2. +
  3. +

    Under Storage, click Elastic Volume Service.

    +
  4. +
  5. +

    Click Create Disk.

    +

    Figure 1 EVS disk specifications

    +
  6. +
  7. +

    Attach the disks to the ECS.

    +
  8. +
+

Creating a RAID Array Using mdadm

+

This section shows how to create a RAID 10 array using mdadm.

+

In this example, the ECS runs CentOS Stream 9. Configurations vary +depending on the OS running on the ECS. This section is used for +reference only. For the detailed operations and differences, see the +corresponding OS documents.

+
    +
  1. +

    Log in to the ECS as user root.

    +
  2. +
  3. +

    Run the following command to view and take note of the device names:

    +
    fdisk -l \| grep /dev/vd \| grep -v vda
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# fdisk -l | grep /dev/vd | grep -v vda
    Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Disk /dev/vdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Disk /dev/vdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
    Disk /dev/vde: 10.7 GB, 10737418240 bytes, 20971520 sectors
    +

    In the command output, four disks are attached to the ECS, and the +device names are /dev/vdb, /dev/vdc, /dev/vdd, and +/dev/vde, respectively.

    +
  4. +
  5. +

    Run the following command to install mdadm:

    +
    yum install mdadm -y
    +
    note

    mdadm is a utility to create and manage software RAID arrays on +Linux. Ensure that an EIP has been bound to the ECS where mdadm is +to be installed.

    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# yum install mdadm -y
    ......
    Installed:
    mdadm.x86_64 0:4.0-13.el7

    Dependency Installed:
    libreport-filesystem.x86_64 0:2.1.11-40.el7.centos

    Complete!
    +
  6. +
  7. +

    Run the following command to create a RAID array using the four +disks:

    +
    mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/vdb /dev/vdc /dev/vdd /dev/vde
    +

    Parameter description:

    +
      +
    • +

      RAID array device name: The value can be user-definable. In +this example, /dev/md0 is used.

      +
    • +
    • +

      Disk quantity: Set this parameter based on the actual +condition. In this example, RAID 10 is created, and at least +four disks are required. The minimum number of disks required varies depending on the +RAID level. See Introduction to Common RAID Arrays for details.

      +
    • +
    • +

      RAID level: Set this parameter based on the actual condition. +In this example, set it to RAID 10.

      +
    • +
    • +

      Device name of the disk: Enter the device names of all the +disks that will be used to create the RAID array. Multiple names +are separated with spaces.

      +
    • +
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/vdb /dev/vdc /dev/vdd /dev/vde
    mdadm: layout defaults to n2
    mdadm: layout defaults to n2
    mdadm: chunk size defaults to 512K
    mdadm: size set to 10476544K
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    +
  8. +
  9. +

    Run the following command to format the created RAID array:

    +
    mkfs.ext4 /dev/md0
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# mkfs.ext4 /dev/md0
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=128 blocks, Stripe width=256 blocks
    1310720 inodes, 5238272 blocks
    261913 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2153775104
    160 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000

    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    +
  10. +
  11. +

    Run the following command to create a mounting directory:

    +
    mkdir /RAID10
    +
  12. +
  13. +

    Run the following command to mount the RAID array:

    +
    mount /dev/md0 /RAID10
    +
  14. +
  15. +

    Run the following command to view the mount result:

    +
    df -h
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda2 39G 1.5G 35G 5% /
    devtmpfs 911M 0 911M 0% /dev
    tmpfs 920M 0 920M 0% /dev/shm
    tmpfs 920M 8.6M 911M 1% /run
    tmpfs 920M 0 920M 0% /sys/fs/cgroup
    /dev/vda1 976M 146M 764M 17% /boot
    tmpfs 184M 0 184M 0% /run/user/0
    /dev/md0 20G 45M 19G 1% /RAID10
    +
  16. +
  17. +

    Perform the following operations to enable automatic mounting of the +RAID array at the system start:

    +

    a. Run the following command to open the /etc/fstab file:

    +
    vi /etc/fstab
    +

    b. Press i to enter editing mode.

    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# vi /etc/fstab

    #
    # /etc/fstab
    # Created by anaconda on Tue Nov 7 14:28:26 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=27f9be47-838b-4155-b20b-e4c5e013cdf3 / ext4 defaults 1 1
    UUID=2b2000b1-f926-4b6b-ade8-695ee244a901 /boot ext4 defaults 1 2
    +

    c. Add the following information to the end of the file:

    +
    /dev/md0                                  /RAID10                 ext4    defaults        0 0
    +

    d. Press ESC, enter :wq!, and press ENTER.

    +

    The system saves the modifications and exits the vi editor.

    +
  18. +
  19. +

    Run the following command to view the RAID array information:

    +
    mdadm -D /dev/md0
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# mdadm -D /dev/md0
    /dev/md0:
    Version : 1.2
    Creation Time : Thu Nov 8 15:49:02 2018
    Raid Level : raid10
    Array Size : 20953088 (19.98 GiB 21.46 GB)
    Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
    Raid Devices : 4
    Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Thu Nov 8 16:15:11 2018
    State : clean
    Active Devices : 4
    Working Devices : 4
    Failed Devices : 0
    Spare Devices : 0

    Layout : near=2
    Chunk Size : 512K

    Consistency Policy : resync

    Name : ecs-raid10.novalocal:0 (local to host ecs-raid10.novalocal)
    UUID : f400dbf9:60d211d9:e006e07b:98f8758c
    Events : 19

    Number Major Minor RaidDevice State
    0 253 16 0 active sync set-A /dev/vdb
    1 253 32 1 active sync set-B /dev/vdc
    2 253 48 2 active sync set-A /dev/vdd
    3 253 64 3 active sync set-B /dev/vde
    +
  20. +
+

Configuring Automatic Start of the RAID Array at Server Startup

+

This section shows how to add RAID array information, such as the device +name and UUID to the mdadm configuration file. In this case, the RAID +array can be started by querying information in the configuration file +when the system starts.

+

In this example, the ECS runs CentOS Stream 9. Configurations vary +depending on the OS running on the ECS. This section is used for +reference only. For the detailed operations and differences, see the +corresponding OS documents.

+
    +
  1. +

    Log in to the ECS as user root.

    +
  2. +
  3. +

    Run the following command to view the RAID array information:

    +
    mdadm \--detail \--scan
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# mdadm --detail --scan
    ARRAY /dev/md0 metadata=1.2 name=ecs-raid10.novalocal:0 UUID=f400dbf9:60d211d9:e006e07b:98f8758c
    +
  4. +
  5. +

    Perform the following operations to add information of the new RAID array to the mdadm file:

    +

    a. Run the following command to open the mdadm.conf file:

    +
    vi /etc/mdadm.conf
    +

    b. Press i to enter editing mode.

    +

    c. Add the following information to the end of the file:

    +
    DEVICE /dev/vdb /dev/vdc /dev/vdd /dev/vde
    ARRAY /dev/md0 metadata=1.2 name=ecs-raid10.novalocal:0 UUID=f400dbf9:60d211d9:e006e07b:98f8758c
    +

    Description:

    +
      +
    • DEVICE line: Indicates the device names of the disks that +set up the RAID array. Multiple device names are separated +with spaces.
    • +
    • ARRAY line: Indicates RAID array information. Input the RAID +array information.
    • +
    +
    note

    The preceding information is used for reference only. Add RAID +array information based on your configuration and outputs.

    +

    d. Press ESC, enter :wq!, and press ENTER.

    +

    The system saves the modifications and exits the vi editor.

    +
  6. +
  7. +

    Run the following command to check whether the mdadm.conf file +is modified:

    +
    more /etc/mdadm.conf
    +

    Information similar to the following is displayed:

    +
    [root@ecs-raid10 ~]# more /etc/mdadm.conf
    DEVICE /dev/vdb /dev/vdc /dev/vdd /dev/vde
    ARRAY /dev/md0 metadata=1.2 name=ecs-raid10.novalocal:0 UUID=f400dbf9:60d211d9:e006e07b:98f8758c
    +

    If the information added is displayed, the file is successfully modified.

    +
  8. +
+

Appendix

+

Introduction to Common RAID Arrays

+
    +
  • RAID Level: RAID 0 +
      +
    • Description: RAID 0 stores data on multiple disks, implementing parallel read/write and providing the fastest read/write speed.
    • +
    • Read/Write Performance: Parallel read/write from multiple disks achieves high performance.
    • +
    • Security: Worst No redundancy capability. If one disk is damaged, the data of the entire RAID array is unavailable.
    • +
    • Disk Usage: 100%
    • +
    • Min. Number of Disks Required: 2
    • +
    +
  • +
  • RAID Level: RAID 1 +
      +
    • Description: RAID 1 implements data redundancy based on data mirroring. Half of the disk capacity in the RAID array is used, and the other half is used for mirroring to provide data backup.
    • +
    • Read/Write Performance: Read performance: Same as a single disk Write performance: Data needs to be written into two disks. The write performance is lower than that of a single disk.
    • +
    • Security: Highest Provides full backup of disk data. If a disk in the RAID array fails, the system automatically uses the data on the mirror disk.
    • +
    • Disk Usage: 50%
    • +
    • Min. Number of Disks Required: 2
    • +
    +
  • +
  • RAID Level: RAID 01 +
      +
    • Description: RAID 01 combines RAID 0 and RAID 1, in which half disks are first grouped into RAID 0 stripes and then used together with the other half to set up a RAID 1 array.
    • +
    • Read/Write Performance: Read performance: Same as RAID 0 Write performance: Same as RAID 1
    • +
    • Security: The security of RAID 01 is lower than that of RAID 10.
    • +
    • Disk Usage: 50%
    • +
    • Min. Number of Disks Required: 4
    • +
    +
  • +
  • RAID Level: RAID 10 +
      +
    • Description: RAID 10 combines RAID 1 and RAID 0, in which half disks are first set up as a RAID 1 array and then used together with the other half to create RAID 0 stripes.
    • +
    • Read/Write Performance: Read performance: Same as RAID 0 Write performance: Same as RAID 1
    • +
    • Security: The security performance of RAID 10 is the same as that of RAID 1.
    • +
    • Disk Usage: 50%
    • +
    • Min. Number of Disks Required: 4
    • +
    +
  • +
  • RAID Level: RAID 5 +
      +
    • Description: RAID 5 does not specify a dedicated parity disk and consists of block-level striping with parity information distributed among the disks.
    • +
    • Read/Write Performance: Read performance: Same as RAID 0 Write performance: Because parity data needs to be written into disks, the write performance is lower than that of a single disk.
    • +
    • Security: The security of RAID 5 is lower than that of RAID 10.
    • +
    • Disk Usage: 66.7%
    • +
    • Min. Number of Disks Required: 3
    • +
    +
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy/index.html b/pr-preview/pr-186/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy/index.html new file mode 100644 index 000000000..56cd6a00c --- /dev/null +++ b/pr-preview/pr-186/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy/index.html @@ -0,0 +1,107 @@ + + + + + +Accessing OBS Through an NGINX Reverse Proxy | Architecture Center + + + + + +

Accessing OBS Through an NGINX Reverse Proxy

+

Generally, you can access OBS using a bucket's access domain name (for example, https://bucketname.obs.eu-de.otc.t-systems.com) provided by OBS or using a user-defined domain name bound to an OBS bucket.

+

In some cases, you may need to use a fixed IP address to access OBS. For +security purposes, some enterprises need to set a blacklist and a +whitelist of external IP addresses. In this case, a fixed IP address is +required. Also for security purposes, an OBS bucket does not have a +fixed IP address, because the DNS service of Open Telekom Cloud resolves +the bucket access domain name to different IP addresses.

+

In this case, you can set up an NGINX reverse proxy server on an ECS so +that you can access OBS through a fixed IP address.

+

Solution Design

+

This part explains how to deploy NGINX on an ECS and set up an NGINX +reverse proxy server. The proxy is imperceptible. Requests are sent to +the reverse proxy server, which then obtains the required data from OBS +and returns the data to users. The reverse proxy server and OBS work as +a whole. Only the IP address of the proxy server is exposed, while the +actual domain name or IP address of OBS is hidden.

+

Figure 1 Principles of accessing OBS through an NGINX reverse
+proxy

+

Prerequisites

+
    +
  • You know the region and access domain name of the bucket. For example, the access domain name of a bucket named nginx-obs in the eu-de region is nginx-obs.obs.eu-de.otc.t-systems.com. To obtain the information, see Querying Basic Information of a +Bucket.
  • +
  • You have a Linux ECS in the same region. CentOS is used here as an +example. For details, see Creating an +ECS.
  • +
  • The ECS is bound with an EIP, so that you can download the NGINX +installation package over the public network.
  • +
+

Installing NGINX on an ECS

+

In this example, CentOS Stream 9 is used as an example.

+

a. Log in to the ECS where you will set up the NGINX reverse proxy +server.

+

b. Run the following command to install NGINX:

+
sudo dnf install nginx
+

c. Run the following commands to start NGINX and configure NGINX to +start upon system startup:

+
sudo systemctl start nginx
sudo systemctl enable nginx
+

d. Run the following commands to allow HTTP and HTTPS traffic and +then restart the firewall:

+
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
+

e. Use a browser on any device to access http://**ECS EIP/. If +the following information is displayed, NGINX is successfully +installed.

+

Figure 2 NGINX installed
+successfully

+

Configuring NGINX as reverse proxy for your OBS bucket

+

a. Run the following command to open the default.conf file:

+
vim /etc/nginx/conf.d/default.conf
+

b. Press the i key to go to the edit mode and modify the +default.conf file.

+
server {
listen 80;
server_name *.*.*.*; # Enter the EIP of the ECS.
proxy_buffering off; # Disable the proxy buffer (memory).

location / {
proxy_pass https://nginx-obs.obs.eu-de.otc.t-systems.com; #Enter the OBS bucket domain name that starts with http:// or https://.
index index.html index.htm ; #Specify the homepage of the website. If there are multiple files, Nginx checks the files based on their enumeration sequence.
}
}
+
ParameterDescription
server_nameIP address that provides the reverse proxy service. It is the fixed IP address that is exposed to end users for access. Enter the EIP of the ECS where the NGINX reverse proxy service is deployed.
proxy_passIP address of the proxied server. Enter the OBS bucket access domain name required in Prerequisites. The domain name must start with http:// or https://.

Example: https://nginx-obs.obs.eu-de.otc.t-systems.com
proxy_bufferingWhether to enable the proxy buffer. The value can be on or off. If this parameter is set to on, Nginx stores the response returned by the backend in a buffer and then sends the data to the client. If this parameter is set to off, Nginx sends the response to the client as soon as it receives the data from the backend. Default value: on

Example: proxy_buffering off
+
note

When you use an API, SDK, or obsutil for calling, set proxy_pass to the region domain name. The following is an example: obs.eu-de.otc.t-systems.com.

+

c. Press the ESC key and enter :wq to save the +configuration and exit.

+

d. Run the following command to check the status of the NGINX +configuration file:

+
sudo nginx -t
+

e. Run the following command to restart the NGINX service for the +configuration to take effect:

+
sudo systemctl restart nginx
+

Configuring an OBS bucket policy to allow the IP address of the NGINX proxy server to access OBS

+
note

This step is optional.

+

If your bucket is publicly read or the URL needs to have a signature +contained when accessing objects in a private bucket, skip this +step. For details, see Authentication of Signature in a +URL.

+

If you do not want URLs containing a signature to access resources +in your private bucket, configure the following bucket policy that +allows only the IP address of the NGINX proxy server to access your +bucket.

+

a. In the navigation pane of OBS Console, choose Object +Storage.

+

b. In the bucket list, click the bucket you want to go to the +Objects page.

+

c. In the navigation pane, choose Permissions -> Bucket +Policies.

+

d. Click Create.

+

e. Choose a policy configuration method you like. Visual Editor is used here.

+

Figure 3

+

f. Configure the following parameters.

+

Table 2 +Bucket policy parameters

ParameterDescription
Policy NameEnter a policy name.
Policy contentEffectSelect Allow.
Principal
  • To select All accounts enter *.
Resources
  • Method 1:

    • Select Entire bucket (including the objects in it).
  • Method 2:

    • Select Current bucket and Specified objects.
    • Set the resource path to * to indicate all objects in the bucket.
Actions
  • Choose Customize.
  • Select Get* and List*.
Conditions (Optional)
  • Key: Select SourceIp.
  • Condition Operator: Select IpAddress
  • Value:

    • If the ECS uses a public DNS, the value is as follows:

      Elastic IP address of the ECS

    • If the ECS uses a Open Telekom Cloud private DNS, the value is as follows:

      100.64.0.0/10,214.0.0.0/7,Private IP address of the ECS

+
note

In conditions you can click Add to configure IP addresses (CIDR blocks). +IP addresses in the range starting with 100 or 214 are for ECSs to access OBS through an internal network.

+

g. Click Create.

+

Verifying the reverse proxy configuration

+

On any device, use the ECS EIP and object name to access specified +OBS resources. If the resources are properly accessed, the +configuration is successful.

+

For example, visit http://**ECS EIP**/otc.jpg.

+

Figure 4 Using a fixed IP address to access OBS
+resources

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services/index.html new file mode 100644 index 000000000..86b246f16 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services/index.html @@ -0,0 +1,54 @@ + + + + + +Mundi Web Services: New Business from Space | Architecture Center + + + + + +

Mundi Web Services: New Business from Space

+

The European Space Agency's (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.

+

The EU makes its Earth observation data available free of charge with the intention of creating new business models and applications for mainly European users: from students and software providers, to large corporations and the public sector.

+

Mundi Web Services makes European satellite data accessible for new business models

+

New Geo-Based Business Models

+

This brings with it a wealth of new applications in target markets such as agriculture and forestry, energy, environment, climate, insurance, and disaster control. For example, satellite observations can be used to register the use of agricultural land and, as a result, better allocate EU funds, quickly identify environmentally relevant changes, and take action as well as optimize the use of mineral and energy resources.

+

Mundi Web Services is a platform on which users can directly use preconfigured geoservices. However, it also offers new geoservice providers the option of offering their services on the market. Mundi Web Services' great strength? All necessary components to implement new geo-based business ideas are already integrated. This includes constantly updated data from the Sentinel satellites as well as historical data from the American Landsat program, geoservice applications, and flexible IT resources from the Open Telekom Cloud. As the computing capacities for the evaluations and the data are on the same technical platform, tedious copying processes are no longer necessary. In addition, Mundi allows specific selection of the data that is relevant for the respective analysis.

+

Benefits for the Customer

+
    +
  • Complete toolbox for easy launch of new geo-based services
  • +
  • Simplification of existing processes, e.g. for claims settlement or subsidy allocation
  • +
  • IT capacities as a complete service
  • +
  • Usage-dependent costs for IT resources in temporary projects
  • +
+

Dynamic IT is Essential for Geoservices

+

Access to the data has so far been complex, expensive, and tedious. Users always had to download complete data sets comprising several gigabytes or even terabytes from a central repository before they could start their evaluations. New potential geoservice providers with limited IT resources could not benefit from the data. The Copernicus program is also not yet very well known to the business community or the general public.

+

Computing resources are the be-all and end-all for geoservices. To perform further analysis, the original data, usually images at different frequency intervals and on different technical bases (e.g. with optical, thermal or radar sensors), must first be processed - a stage referred to pre-processing. One action in this regard is to normalize images so that they can be compared with one other. In the second stage, the actual processing (which also requires a large amount of computing resources), the data prepared in this way is processed using mathematical models. This creates business-relevant results that can help decision-makers. So far, such statements have been made under the auspices of projects that were set up specifically for the respective application.

+

Mundi Web Services makes using earth observation data for business purposes more professional. Geoservices "made in Europe" receive a basis on which they can develop new business models and offer them as web services on the international market. End users are given the opportunity to deploy geoservices as needed. Mundi has the right infrastructure foundation in the form of the Open Telekom Cloud. The resources from the cloud are optimal for temporary high-load calculations and adapt to the desired requirements of users. If a user wants faster results, they can speed up the evaluation with additional capacities. Depending on the speed, customers only pay for the resources that are actually used.

+

The Challenge

+
    +
  • Provision of a platform for the use of geo-based services
  • +
  • Integration of services, data, and usage-dependent computing/storage capacities for efficient use of satellite data
  • +
  • Support of new geo-based business models "made in Europe"
  • +
  • Optimization of existing processes (e.g. in administrative units)
  • +
+

The Aim: Easier Use of Satellite Data

+

Mundi Web Services is the answer to these challenges. It simplifies the access and use of satellite data. Mundi Web Services is a consortium led by Atos. T-Systems is another established ICT player on-board; it adds its Open Telekom Cloud and its experience with modern ICT service models into the mix. Experienced providers from the geoservice segment, such as the Italian e-geos, the Austrian EOX, the French Thales Aliena Space, the German GAF, and the German Aerospace Center (DLR), contribute technical expertise and applications.

+

The Solution

+
    +
  • Mundi Web Services as an integrated platform
  • +
  • Data and computing capacity over the same infrastructure
  • +
  • Open Telekom Cloud as a source for scalable IT resources
  • +
  • Marketplace for geoservices
  • +
+

About Mundi Web Services

+

Mundi Web Services is a consortium led by Atos. The consortium works on behalf of the European Union and the European Space Agency ESA. The consortium partners are T-Systems, Thales Alenia Space, DLR, e-geos, EOX, GAF AG, Sinergise, and Spacemetric.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/index.html new file mode 100644 index 000000000..ae7c766c5 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/index.html @@ -0,0 +1,20 @@ + + + + + +Aerospace | Architecture Center + + + + + +

Aerospace

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-euvic/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-euvic/index.html new file mode 100644 index 000000000..0ce42ed91 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-euvic/index.html @@ -0,0 +1,38 @@ + + + + + +EUVIC: Cloud-Based Credit Portal for SaarLB | Architecture Center + + + + + +

EUVIC: Cloud-Based Credit Portal for SaarLB

+

The software company EUVIC has developed a portal which enables business customers' credit requests to be processed interactively and at a considerably faster rate. Since customer data is particularly sensitive, the renowned software company used the Open Telekom Cloud to develop and operate the credit portal. "T-Systems' servers are located in highly secure, multi-certified data centers in Germany," says Daniel Piecha of EUVIC. With the cloud solution, the Landesbank meets the strict regulations of the financial supervisory authority and the European General Data Protection Regulation (GDPR). Only authorized employees of the bank have unencrypted access to the data in the system. In addition, a neutral third party company reviewed the security concept and certified the cloud solution – after a penetration test – as having a very high level of security.

+

EUVIC develops customer portal for SaarLB and meets strict security requirements using the Open Telekom Cloud.

+

Benefits for the Customer

+
    +
  • Server locations for the Open Telekom Cloud in Germany offer IT security and optimum data protection. As a result, the Open Telekom Cloud is widely accepted in the sensitive financial sector
  • +
  • Demand-based use and payment (pay-per-use principle)
  • +
  • The solution can be extended by private cloud instances (hybrid solution)
  • +
  • The company can automatically launch development environments with the Cloud Container Engine (CCE) – including programming tools and scripting languages
  • +
  • Open cloud base: OpenStack protects against vendor lock-in
  • +
+

Bank Relies on Solution from the Ccloud

+

Banking and the cloud – for a long time they did not seem to go together. But an increasing number of financial institutions have come to see the cloud as a pioneer for flexibility, agility, and innovation. With a new B2B credit portal from the cloud, Landesbank SaarLB now wants to offer its business customers better service – and at the same time provide optimum protection for customer data. And that's why service provider EUVIC uses the Open Telekom Cloud for the portal.

+

More Agility with the Cloud

+

The credit portal was ready for use in just four months. Now EUVIC is gradually expanding the credit portal with additional components. Based on Kubernetes, the Cloud Container Engine (CCE) within the Open Telekom Cloud supports them in this. "A great tool that helps us with the development, testing, operation, and maintenance of the applications," says Daniel Piecha. This enables developers to set up, deploy, cluster, and scale cloud containers automatically, quickly, and easily.

+

Innovative Thanks to OpenStack

+

The OpenStack concept of T-Systems' cloud solution has also been well received by EUVIC. Daniel Piecha: "This concept gives us access to the innovations of the global open source community." In addition, the open architecture protects against becoming dependent on a single provider.

+

In fact, banks and savings banks prefer to process sensitive data on servers within their own company. But here too, the Open Telekom Cloud performs well – as a hybrid variant. So, EUVIC can also offer its customers hybrid scenarios in the future. The advantage: the private and public instances can be operated on identical hardware and software components. This means that all parts of the solution are fully compatible with one another – and Telekom offers the same support for all configurations.

+

About EUVIC GmbH

+

EUVIC GmbH is an internationally active software development company and is always in demand when sophisticated full-stack software solutions are required. Around 1,800 specialists look after more than a thousand customers in 24 countries at present. The company based in Leverkusen offers special expertise in full-stack software development, cloud-based software solutions, mobile apps, e-commerce, and big data.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-particulate/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-particulate/index.html new file mode 100644 index 000000000..14190825b --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-particulate/index.html @@ -0,0 +1,55 @@ + + + + + +Particulate: Donation Platform on Open Telekom Cloud | Architecture Center + + + + + +

Particulate: Donation Platform on Open Telekom Cloud

+

Around 5,000 people in the Rhine-Main region are already so-called “Radgeber” or cyclist donors: Together with the start-up Particulate Solutions, Deutsche Bahn (DB) has developed the platform, which allows every cyclist participating in the campaign to become a donor. The technology for the platform is based on the Open Telekom Cloud, Telekom's public cloud offering.

+

Digital Donation Currency: Cyclists Collect SocialCoins

+

When booking a rental bike via Deutsche Bahn’s Call-a-Bike app, cyclists receive 100 so-called SocialCoins – a fictitious donation currency created by the Koblenz-based start-up. Cyclists can distribute the SocialCoins to selected projects via the app with just a few clicks. As soon as the donation target is reached, Deutsche Bahn will transfer the amount to the project. So far, about 12,000 euros have been collected in less than three months.

+

Donation Platforms as a Marketing Tool

+

The rental bike donation platform is by no means the start-up’s only project. The three founders, Stefan Pandorf, Stephanie Henn and Stefan Fink, want to combine marketing with social commitment and they plan to do so across many industries. “We offer companies an effective marketing tool and harness the entrepreneurial potential of donations,” says Pandorf. “After all, social engagement and sustainability are becoming more and more important in marketing. Many customers are increasingly choosing a company that is socially engaged when purchasing a product.” For example, a bank can attract new customers by giving them SocialCoins instead of a certain amount of funds when they open an account. On the bank's platform, the customer can redeem the coins for specific projects, such as a fundraising campaign for new jerseys for a football club or the expansion of a playground. That amount is then paid out by the bank.

+

Data Protection and Data Security as Top Priority

+

All data is stored in the secure and inexpensive Object Based Storage (OBS). “The partnership with Deutsche Telekom is always a winning argument for our customers,” says Pandorf. “Deutsche Telekom simply has a good reputation when it comes to data protection and data security. This helps us a lot when it comes to marketing our idea.” And if questions ever arise about the architecture of the Open Telekom Cloud, the start-up can get in touch with a competent Deutsche Telekom contact person at any time.

+

Customer Benefits

+
    +
  • The platform is always deliverable, regardless of the number of customers.
  • +
  • Thanks to auto-scaling, there are always enough IT resources available.
  • +
  • More than 600 requests per second are possible.
  • +
  • High data protection and data security are guaranteed.
  • +
  • Own servers become obsolete.
  • +
  • Contact persons of the Telekom are always available.
  • +
+

Secure Data Storage in the Cloud

+

Many of Particulate's customers come from the energy or financial sector. “That's why our customers always ask first about data protection and data security,” says Pandorf. Initially, the Koblenz-based company worked with the German cloud provider ProfitBricks and tested the infrastructure of Amazon Web Services (AWS). But due to the high expectations of customers regarding the secure storage of their data, Particulate looked for another solution that could meet these requirements. “In addition, we needed a solution that we could scale flexibly, for example, if the number of those accessing the platform suddenly increased sharply,” says Pandorf. The founders got to know about the Open Telekom Cloud through Deutsche Telekom's TechBoost program.

+

There are already plans to expand the platform. Particulate not only wants to extend the project with Deutsche Bahn to the whole of Germany. The start-up also wants to approach other large international companies in the future with a view to developing other donation platforms in the Open Telekom Cloud.

+

The Challenge

+
    +
  • It was too expensive and inflexible to use its own servers.
  • +
  • The start-up was therefore looking for a secure, flexibly scalable cloud solution for the white-label platforms.
  • +
  • An important factor was the secure storage of the data.
  • +
  • Particular Solutions needed flexible scalability for fluctuating traffic.
  • +
  • The system should be reliable and stable.
  • +
+

The Solution

+
    +
  • Particulate uses IT capacity from the Open Telekom Cloud as part of the TechBoost program.
  • +
  • Open Stack provides many ready-made solutions.
  • +
  • The data storage takes place in the safe and favorable Object Based Storage (OBS).
  • +
  • As user access increases, the auto-scaling service automatically posts resources.
  • +
+

About Particulate Solutions GmbH

+

The Koblenz-based start-up Particulate and its approximately 30 employees offers companies donation platforms with their own corporate design in order to distribute donations more fairly and transparently. The solution went online in 2012. Corporate Social Responsibility has become an important factor when making a purchase decision.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/finance/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/finance/index.html new file mode 100644 index 000000000..1bba18228 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/finance/index.html @@ -0,0 +1,20 @@ + + + + + +Finance | Architecture Center + + + + + +

Finance

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/government/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/government/index.html new file mode 100644 index 000000000..5f66524cc --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/government/index.html @@ -0,0 +1,20 @@ + + + + + +Government | Architecture Center + + + + + +

Government

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger/index.html new file mode 100644 index 000000000..46798c627 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger/index.html @@ -0,0 +1,44 @@ + + + + + +Sovereign Digitalization for the City of Kirchheim unter Teck | Architecture Center + + + + + +

Sovereign Digitalization for the City of Kirchheim unter Teck

+

The City of Kirchheim unter Teck uses the BundesMessenger from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck.

+

BundesMessenger from Open Telekom Cloud

+

The Challenge

+
    +
  • Utilize the potential of digitalization for modern, real-time communication in government
  • +
  • Strict requirements for security
  • +
  • The solution must be modern and satisfy sovereignty aspects
  • +
+

The Solution

+
    +
  • BundesMessenger open-source software from BWI offers secure, encrypted communication (as a device-independent app)
  • +
  • The software is offered exclusively to public institutions (community approach)
  • +
  • T-Systems provides the BundesMessenger as SaaS from the Open Telekom Cloud
  • +
  • The SaaS is enriched with managed services (including updates and new releases)
  • +
  • T-Systems offers additional integration options for using internal IAM systems for user administration
  • +
+

Customer Benefits

+
    +
  • Modern, real-time communication with an enhanced user experience
  • +
  • Easy availability
  • +
  • Maximum sovereignty and data security
  • +
  • Transparent, usage-based costs
  • +
+

About the City of Kirchheim unter Teck

+

Kirchheim unter Teck, a county seat in the foothills of the Swabian Mountains, is part of the greater Stuttgart region. The city is home to more than 40,000 residents. It serves as a middle center to the surrounding communities.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app/index.html new file mode 100644 index 000000000..4c70b165e --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app/index.html @@ -0,0 +1,41 @@ + + + + + +Open Telekom Cloud for Dementia Therapy App | Architecture Center + + + + + +

Open Telekom Cloud for Dementia Therapy App

+

To meet the strict guidelines for the German digital health market, the team from Brain+ wanted to provide the backend for its app from a German cloud, and Brain+ chose the Open Telekom Cloud. In addition to that, with a growing focus on the UK market, Open Telekom Cloud can provide a framework allowing the team to scale to the UK and later to the rest of Europe.

+

The Challenge

+
    +
  • Dementia therapy app, released in a first product version in Denmark and Germany
  • +
  • Laying the foundations for acceptance as a digital health application (DiGA)
  • +
  • Meeting data security and data protection requirements in the cloud
  • +
+

The Solution

+
    +
  • Transferring the backend to the Open Telekom Cloud
  • +
  • Content Management System operated from the Open Telekom Cloud, using relational database service, elastic cloud server, elastic volume storage, caching, and backup
  • +
  • Full scalability and compliance with regulatory framework conditions
  • +
+

Customer Benefits

+
    +
  • Open Telekom Cloud enables Brain+ to expand into Germany with its offerings and tap into the market potential for dementia
  • +
  • The platform allows Brain+ to deliver the services they offer in compliance with German regulatory requirements for health apps
  • +
  • Open Telekom Cloud offers full scalability for further business growth, fully supporting cloud-native technologies and expansion into other markets such as the UK
  • +
  • Support as an Open Telekom Cloud Circle Partner
  • +
+

About Brain+

+

Copenhagen-based scale-up Brain+ assists CST therapists with an in-house developed app called CST-Therapist Companion. The app is based on the latest scientific findings and supports conducting CST sessions by providing materials for exercises (from a content management system) to shorten preparation time and facilitate consistent delivery of the therapy. Furthermore, it organizes the flow of individual sessions. This app gives the therapist a comprehensive tool that manages, facilitates, and optimizes CST-based dementia therapy.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud/index.html new file mode 100644 index 000000000..e9068b37c --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud/index.html @@ -0,0 +1,55 @@ + + + + + +Fuse-AI: e-Health from the Cloud | Architecture Center + + + + + +

Fuse-AI: e-Health from the Cloud

+

Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. “The biggest advantage is the improved quality of a diagnosis,” says Maximilian Waschka, one of the four Fuse-AI founders. “Our algorithm helps radiologists notice abnormalities on thousands of images more reliably.” The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.

+

In the future, we will help to detect many common illnesses much more quickly, comprehensively, and reliably with the help of the Open Telekom Cloud," says Sabrina Reimers-Kipping, PhD biochemist and co-founder of Fuse-AI. “Not only does this reduce the workload of the doctor and the costs for the healthcare system, it also increases the chances of recovery for the patients. Because the earlier diseases are detected, the better the chance of a recovery.

+

Benefits for the Customer

+
    +
  • Flexibly scalable resources enable the artificial intelligence to do detailed data analysis at any time of the day. 
  • +
  • Doctors and patients trust the solution thanks to the Open Telekom Cloud, which is known as a secure platform offering the highest levels of data privacy and data protection.
  • +
  • With Deutsche Telekom as their partner, the founders of the start-up are able to establish a sustainable market foothold more quickly.
  • +
+

A Second Opinion Thanks to AI

+

Radiologists don’t have an easy job: Each day, they have to analyze several thousand x-rays and other tomographic images. A single MRI (magnetic resonance imagery) scan creates around 2,000 pictures. A diagnosis requires the utmost concentration, from the first to final image. After all, any mistake could have life-threatening consequences.

+

The founders of the start-up Fuse-AI want to ease this challenge with their innovative electronic health (e-health for short) solution. They have developed artificial intelligence that helps doctors detect cancer. “The goal is to give radiologists a computer-assisted second opinion that makes their job easier,” says Waschka.

+

The Challenge

+
    +
  • To analyze large amounts of data from MRI scans the founders need flexibly scalable processing resources.
  • +
  • The young northern German entrepreneurs searched for a provider offering secure, reliable and flexible IT capacity.
  • +
+

Cloud-Assisted Diagnosis Help

+

The northern German start-up relies on IT resources from the Open Telekom Cloud for its extensive medical analysis. The MRI scans are sent encrypted via the Internet to Deutsche Telekom’s highly secure data centers in the eastern German state of Saxony-Anhalt, where they are then analyzed. The intelligent algorithm notes any abnormalities, adds metadata to the images and then sends it back to the radiologist’s computer system. The doctor can then use the notes and metadata to make a faster and more accurate diagnosis.
+The four entrepreneurs submitted their idea to TechBoost, Deutsche Telekom’s program for promising start-ups with software-based business models, and were accepted. Since then, the company has benefited from €100,000 worth of IT resources from the Open Telekom Cloud. “The Open Telekom Cloud is a wonderful instrument giving us both the flexibility and scalability necessary to realize this kind of solution,” says Dirk Schäfer, a machine learning expert and co-founder of Fuse-AI.

+

Cloud-Assisted Skin Cancer Diagnosis

+

But detecting carcinomas on MRI scans is just the beginning. Fuse-AI is already planning to expand into other solutions. The company’s founders have developed together with dermatologists a so-called digital dermatoscope to make skin cancer detection faster and more accurate. The principle is the same with MRI scans: The dermatoscope photographs the skin’s surface of a patient. An intelligent algorithm in the cloud then analyzes the images and the system alerts the physician to any abnormalities it discovers.

+

The Solution

+
    +
  • +

    The start-up now has scalable IT resources available all the time from the Open Telekom Cloud.

    +
  • +
  • +

    The company uses certified, highly secure data centers located in Germany.

    +
  • +
  • +

    TCDP 1.0 certification attests that the Open Telekom Cloud already conforms to the EU’s General Data Protection Regulation (GDPR).

    +

    Infographic

    +
  • +
+

About Fuse-AI

+

Fuse-AI applies big data analytics to medical diagnosis. The Hamburg-based startup was founded in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. The start-up’s artificial intelligence analyzes MRI scans, notes possible carcinomas and assesses whether a tumor is benign or malignant – it’s a second medical opinion from the Open Telekom Cloud. That makes a radiologist’s job easier, saves time, improves the quality of a diagnosis and reduces healthcare costs.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/index.html new file mode 100644 index 000000000..226cdecf4 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/index.html @@ -0,0 +1,20 @@ + + + + + +Healthcare | Architecture Center + + + + + +

Healthcare

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/index.html new file mode 100644 index 000000000..e33b6f12a --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/index.html @@ -0,0 +1,16 @@ + + + + + +By Industry | Architecture Center + + + + + +

By Industry

+

Here you can find guidance for implementing solutions on Open Telekom Cloud tailored to the specific needs of various sectors. Solutions focus on ensuring data security, real-time analytics, and compliance with industry regulations, while also prioritizing high availability, data protection, and meeting strict regulatory requirements. Architectures are designed to support secure data management, facilitate efficient service delivery, and enable secure information exchange.

+

Additionally, the category covers cloud solutions that foster innovation, support research and development, and leverage advanced technologies such as AI. It also provides architectures for scalable content delivery, low-latency streaming, and high-performance workloads, as well as solutions to optimize customer experiences, e-commerce platforms, and inventory management. Architectures for high-capacity networks and scalability are also included to ensure continuity and efficiency. This category provides reference architectures, case studies, and step-by-step guides to help organizations deploy tailored cloud solutions that meet the unique operational and regulatory requirements of their sectors.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/innovation/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/innovation/index.html new file mode 100644 index 000000000..76b628f0a --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/innovation/index.html @@ -0,0 +1,20 @@ + + + + + +Innovation | Architecture Center + + + + + +

Innovation

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud/index.html new file mode 100644 index 000000000..c9a115d35 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud/index.html @@ -0,0 +1,47 @@ + + + + + +Xelera: Middleware Ignites the Application Turbo | Architecture Center + + + + + +

Xelera: Middleware Ignites the Application Turbo

+

The founders of Hessian start-up Xelera have developed middleware that greatly accelerates data processing. The best thing: Computing-intensive algorithms are processed in freely programmable circuits, so-called Field Programmable Gate Arrays (FPGAs). These are hardware cards that can be individually programmed depending on the intended use. In this way, they process tasks within a server considerably faster than standard hardware and thus considerably accelerate applications.

+

However, most companies don’t have the necessary know-how to use FPGAs profitably. Individual configuration also costs a lot of time and money,” says Xelera founder Dr. Felix Winterstein. The hardware-independent solution from Xelera, on the other hand, is simply booked by companies as a service. There’s no need for specialist knowledge about programming hardware cards. With the Xelera solution, companies can accelerate their processes by up to a factor of 100, depending on the application.

+

The Benefits

+
    +
  • Spontaneous implementation of individual customer requirements possible at any time
  • +
  • No in-depth FPGA know-how required on the user side thanks to ready-to-use FPGA middleware from the Open Telekom Cloud
  • +
  • Up to 100-fold acceleration of applications
  • +
  • Demand-led FPGA usage, pay-as-you-go
  • +
+

FPGA: Freely Programmable Circuits as Accelerators

+

What do blockchain, artificial intelligence and self-driving cars have in common? According to Gartner, they are all among the top IT trends of 2019 – and they all require enormous computing capacities. That isn’t just something that has existed since 2019 – even conventional processes in companies require ever more powerful IT resources that can perform computing operations more and more quickly.

+

Big Data Analytics During your Coffee Break

+

More and more processes are running in real time, whether it's manufacturing, transport, logistics, automotive or services. In addition, there are all the sectors that deal directly with end customers, such as retail,” says Xelera co-founder Andreas Duffner. That translates into a lot of potential work for the Xelera suite, which shows its strengths in areas such as Edge Computing and IoT applications. For example, the control of industrial robots often results in excessively high latencies. With the help of the Xelera accelerator, these delays can be significantly reduced.

+

The Challenge

+
    +
  • Growing market demand for extremely powerful IT for a wide variety of applications
  • +
  • Purchasing own FPGA cards for hardware acceleration extremely expensive and mostly not cost-effective
  • +
  • Necessity of specialist knowledge for the use of FPGA
  • +
  • Limited offer of ready-to-use FPGA solutions from the cloud
  • +
+

FPGA Flavors on Open Telekom Cloud

+

Companies book Xelera's middleware as a service and operate it in their own data center – or in the Open Telekom Cloud. To make the most of the potential of its middleware as an application accelerator, Xelera relies on the fp1c.2xlarge FPGA flavor and the e2.3xlarge large memory flavor from Deutsche Telekom's Elastic Cloud Server offering. "The capacities from the Open Telekom Cloud allow us to set up our accelerator quickly in the cloud and configure it according to the customer's application scenario, for example accelerating standard databases such as SAP," says Dr. Felix Winterstein.

+

The Open Telekom Cloud was the start-up’s first choice due to its multi-certified and GDPR-compliant data centers in Germany. Xelera relies on Telekom's fast network for the connection and thus obtains the best possible connectivity with very low latencies for business-critical real-time applications.

+

With its middleware, the start-up now accelerates processes in a wide range of areas – from market forecasts or risk calculations in the financial sector to real-time analysis of customer behavior in the retail sector and genome analyses in medicine. It’s a solution with great potential that doesn’t interest the start-up’s customers: Xelera recently qualified for Deutsche Telekom's TechBoost start-up program.

+

The Solution

+
    +
  • Xelera middleware with interface to the Open Telekom Cloud
  • +
  • Use of FPGA flavors from the Elastic Cloud Server offering (fp1c.2xlarge as well as large memory flavor e2.3xlarge)
  • +
  • Planned use of additional flavors and Object Based Storage (OBS)
  • +
  • High level of data protection due to multiple certified data centers in Germany
  • +
+

About Xelera

+

Field Programmable Gate Arrays (FPGAs) are Xelera's main focus: The start-up has developed middleware that shortens application computing times by up to a factor 100 – ideal for real-time analysis or the control of industrial robots. To do so, the Hesse-based company uses resources from the Open Telekom Cloud.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/media/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/media/index.html new file mode 100644 index 000000000..472ca0313 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/media/index.html @@ -0,0 +1,20 @@ + + + + + +Media | Architecture Center + + + + + +

Media

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp/index.html new file mode 100644 index 000000000..60968ac2a --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionpp/index.html @@ -0,0 +1,50 @@ + + + + + +UFA Adopts Full-Cloud Workflow in Film Production | Architecture Center + + + + + +

UFA Adopts Full-Cloud Workflow in Film Production

+

UFA opts for the Open Telekom Cloud. Delivery vans commuting by road to transport hard disks will soon be a thing of the past.

+

What might at first seem trivial actually has a big impact: because the digitized distribution process not only saves UFA a lot of money, it also protects the environment. Previously, at the end of each day of shooting, courier services and production drivers transported the raw material on hard disks between locations all over Germany and the post-production facilities by road. "These are tens of thousands of kilometers that we want to eliminate in the future with our new full-cloud workflow. It also increases overall efficiency and production speed," says Ernst Feiler, Technology Director at UFA, "And that’s all without our employees having to change the way they work.

+

That’s because, after every shoot, the crew plugs the storage media from the film cameras into a network-attached storage (NAS). Previously, the NAS was then picked up by a courier and taken to Potsdam. In the future, however, the NAS systems can simply stay put at locations with suitable connectivity – and transfer the data into the Open Telekom Cloud via the internet.

+

Long-Term Goal: Digitizing the Entire Value Chain

+

The film industry is undergoing one of its biggest upheavals since the invention of color television. With more and more people consuming video content on the screens they carry around with them, the value chain is increasingly moving to where the audience is already: the cloud. It’s a development that UFA GmbH is well aware of: The German market leader in film and television production has already been digitizing its value chain for the past 10 years.

+

The Potsdam-based company’s next step is to distribute raw material via the cloud. Film material that is shot at different locations during production – such as at outside locations or film studios located far away – is currently still transported to the relevant post-production sites by courier. In the future, some of that data will be automatically transferred directly to the Open Telekom Cloud via the internet. All those involved in the process, such as the editors who turn the material into finished clips, will then have access to it.

+

Lower Costs with Open Telekom Cloud

+

Why doesn't UFA send the film material directly to the production headquarters via the internet? Quite simply because the company would then need their own storage capacities, which would not be freely scalable. That would involve having to purchase, store and maintain bulky IT hardware. In the Open Telekom Cloud, on the other hand, UFA will be using low-cost object-based storage (OBS) from now on. The data stored there can be classified at different levels: "cold" for occasional access over a year, "warm" for monthly data access and "standard" for more frequent access. The less frequent the access, the cheaper the storage.

+

The full-cloud workflow is currently being tested as part of a proof of concept (PoC). In the long term, Technology Director Feiler plans to move the film production’s entire value chain to the cloud. "Deutsche Telekom will certainly also be our partner for future cloud projects," says Feiler. "Because we can expect reliable, fast and highly available technology from them. And, what's more, they are competent partners at eye level who reliably meet any legal requirements of the GDPR."

+

The Challenge

+
    +
  • Previously, vans transported film material across Germany between the filming location, headquarters and archive.
  • +
  • Although this was customary practice in the industry, it was slow and also caused high transport costs.
  • +
  • For this reason, the entire workflow had to be digitized and automated without changing the employees’ workflow.
  • +
+

The Solution

+
    +
  • A fully automated cloud workflow with S3-compatible object storage in the Open Telekom Cloud.
  • +
  • Film crews transfer their footage to a network-attached storage (NAS) system. From there it is transferred to the cloud via the internet.
  • +
  • For that, Deutsche Telekom relies on widely-used standards. This ensures low costs and less complexity compared to individual software and hardware.
  • +
+

Customer Benefits

+

UFA: “Tens of thousands of kilometers saved thanks to the cloud”

+
    +
  • Transports between filming locations, headquarters and archive are reduced. This saves time and money.
  • +
  • Post-production teams have access to raw material from anywhere and can work with it directly.
  • +
  • Finished video material is automatically archived in the cloud.
  • +
  • UFA is currently testing the process in a proof of concept (PoC).
  • +
+

About UFA GmbH

+

UFA is one of the best-known entertainment brands in the world and market leader in film and television production in Germany. Founded more than 100 years ago, UFA has developed into a comprehensive content specialist providing digital and multimedia content – to all major German broadcasters and other partners.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud/index.html new file mode 100644 index 000000000..ca980a3cb --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud/index.html @@ -0,0 +1,51 @@ + + + + + +Omnichannel Platform by brodos.net | Architecture Center + + + + + +

Omnichannel Platform by brodos.net

+

With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.

+

The most important criterion for us, however, is the trust that both we and our customers have in the platform,” says Managing Director Udo Latino. “We process sensitive customer data. It is therefore essential for us to use an IT platform that leaves no questions unanswered. With Telekom's public cloud solution, we are on the safe side in every respect.

+

As a result, brodos.net is now prepared for any growth. The omnichannel platform is increasingly establishing itself on the market. More than 1,000 customers from various industries such as telecommunications, fashion, furniture, bikes and electronics are currently using brodos.net to access the omnichannel platform from the Open Telekom Cloud. “Next, we will expand our platform to other industries and then, in a second step, to other European markets,“ says Dingermann. “With the scalable cloud resources we use, nothing stands in the way of further expansion.

+

Customer Benefits

+
    +
  • 40 percent increase in computing performance
  • +
  • 99.95 percent availability of cloud resources
  • +
  • Simple, fast and efficient provision of containers
  • +
  • Considerable trust of brodos.net customers thanks to the highest level of security
  • +
  • Scalability creates the necessary basis for conquering new industries and markets
  • +
+

The Goal: Attract Customers from All Channels

+

What are the three most important technology trends in retail? Artificial intelligence (69 percent), the cloud (34 percent) – and omnichannel (30 percent). This is at least the opinion of IT decision-makers from 90 retail companies in German-speaking countries, who were surveyed on the subject by the EHI Retail Institute at the beginning of 2019. “In the future it will become increasingly important for companies to address customers on all channels in the right tone, with the right products and the right service,” says Udo Latino, Managing Director of brodos.net. The company has developed a platform to help local retailers achieve exactly this.

+

brodos.net is acutely aware of the growing need for these kinds of solutions: The demand for the platform has recently increased so much that the provider wanted to expand its IT with flexibly scalable resources.

+

The Challenge

+
    +
  • Delivery of the solution from on-premises IT resources
  • +
  • Potential for higher growth of the omnichannel platform should be increased
  • +
  • Looking for a flexible, scalable cloud solution that allows developers to work with docker containers
  • +
  • Highest standards of data security and data protection due to sensitive customer data
  • +
+

More Scope for Growth

+

brodos.net initially operated the omnichannel platform exclusively in its own private data center to ensure maximum IT security and data protection. In order to meet the growing demand, brodos.net was looking for a way to be more flexible. “We wanted to expand our IT so that it could adapt flexibly and spontaneously to business development at any time without compromising security,” said Felix Dingermann, Managing Director of Business Development at brodos.net.

+

That's why the Bavarian company was looking for a cloud provider that could provide IT resources at the highest level of security and data protection. They found this at Telekom: brodos.net now hosts its omnichannel platform in the Open Telekom Cloud, Telekom's public cloud offering. For this purpose, the company uses virtual machines in the Elastic Cloud Server (ECS) category, the Relational Database Service (RDS), Object Storage Service (OBS) and the Elastic Load Balancer (ELB). For the further development of the platform, the software experts at brodos.net also rely on the container framework of the Open Telekom Cloud – the Cloud Container Engine. “This is simply a question of convenience and efficiency,” says Felix Dingermann. “We could certainly have implemented our own container framework. But that would have taken a lot of effort.

+

The Solution

+
    +
  • Hosting of the omnichannel platform in the Open Telekom Cloud from highly secure German data centers in Biere and Magdeburg
  • +
  • Use of Elastic Cloud Server (ECS), Relational Database Service (RDS), Object Storage Service (OBS) and Elastic Load Balancer (ELB)
  • +
  • Developers rely on Cloud Container Engine (CCE)
  • +
+

About brodos.net

+

brodos.net helps local retailers with digitalization: The company offers an omnichannel platform with a solution for every touchpoint – from editable online shops to e-mail marketing tools to digital store shelves. In the future, the company plans to offer its platform not only in German-speaking countries, but throughout Europe.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/retail/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/retail/index.html new file mode 100644 index 000000000..8d0e99b3f --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/retail/index.html @@ -0,0 +1,20 @@ + + + + + +Retail | Architecture Center + + + + + +

Retail

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/fiber-factory/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/fiber-factory/index.html new file mode 100644 index 000000000..8ee56fa7b --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/fiber-factory/index.html @@ -0,0 +1,50 @@ + + + + + +Fiber-Factory: Accelerated Grid Expansion | Architecture Center + + + + + +

Fiber-Factory: Accelerated Grid Expansion

+

More than 33 million households in Germany can access speeds of over 50 MBit/s, thanks to Telekom's fiber optic expansion. This enables people to work from home, streaming, and business line connectivity. Now Telekom is planning to expand the network for up to two million more households each year starting in 2021. This involved extensive construction measures. In order to plan these more efficiently, secure resources from the Open Telekom Cloud are providing support.

+

Benefits for the Customer

+
    +
  • Faster calculation of potential routes for fiber optic expansion with time savings of up to 75 percent
  • +
  • Automation of the entire planning process
  • +
  • Greater transparency around the duration and costs of the expansion
  • +
  • Nationwide standardized procedure
  • +
  • Accelerated authorization procedures
  • +
+

High Degree of Automation

+

Several thousand planners from Fiber Factory, a division of Deutsche Telekom Technik GmbH, are responsible for the planning of up to two million new fiber optic connections nationwide per year. Until now, planning required a lot of time and manual effort, and was therefore prone to errors. Deutsche Telekom Technik GmbH was looking for a highly automated and standardized solution for efficient, cost-effective planning. "Our ambitious schedule calls for us to bring 15 times more fiber to the home connections online each year than we have in the past. This cannot be achieved without automated processes," says Niko Gitzen, Senior Expert at Fiber Factory.

+

AI-Based Process Optimizes Calculation

+

In order to position new routes in an optimal fashion, DT Technik GmbH works with a geodata infrastructure (GDI) that incorporates data from cadastres, aerial photographs and images of the expansion area from the T-Surface Car. The customer can flexibly use IT resources from the Open Telekom Cloud for the operation of the GDI, the processing of the large volumes of data and the rapid creation of new expansion plans. "We operate our geodata infrastructure in Deutsche Telekom's public cloud solution. We prepare and process all the data collected from the T-Surface Cars and link it to other information there. The results form the basis for the planning process of the fiber optic expansion," says Tobias Frechen, System Architect at Deutsche Telekom IT GmbH.

+

The Challenge

+
    +
  • A manual approach and inconsistent planning standards for laying fiber optic networks meant a great deal of effort and high costs
  • +
  • Geodata infrastructure (GDI) is set to automate planning in conjunction with artificial intelligence (AI)
  • +
  • Secure storage and ultra-rapid analysis of geodata such as aerial photographs, point clouds from laser scanners and images from digital cameras
  • +
  • Capacity constraints: storing and processing the large volumes of data in the company's data center would be too cost-intensive
  • +
+

The Solution

+
    +
  • Automation of the planning process using the Open Telekom Cloud
  • +
  • GDPR-compliant data processing and storage
  • +
  • Dynamic usage thanks to the pay-as-you-go model
  • +
+

Automated Planning Made Easy

+

The T-Surface Car collects photos and 3D point clouds of up to 500 gigabytes for each expansion area, which are uploaded to a bucket of the Object Storage Service (OBS) in the Open Telekom Cloud. An artificial neural network (ANN) from Fraunhofer IPM is used to evaluate the survey vehicle's data, and classifies it according to 30 surface and object types. In order to classify them, DT Technik GmbH scales horizontally with twenty GPU VMs in the Open Telekom Cloud. In the process, Fraunhofer IPM has already trained the ANN with over 90,000 photos and it can thus be used as a docker container in the planning process. This enables more efficient use of system resources.

+

In addition to the information from the T-Surface Car, the Open Telekom Cloud also contains cadastral data, information about Telekom networks already installed in the expansion area, and images from the European Space Agency's (ESA) Sentinel earth observation satellites. They are used to calculate the exact surface structure of the expansion area. A process that is automated in the Open Telekom Cloud using multiple graphics processing units (GPUs). The resulting two-dimensional images show how and where fiber optic routes can best be laid.

+

Three Times as Fast, Thanks to Open Telekom Cloud

+

Planners have been actively working with the cloud solution since 2020. Expansion costs can be calculated much more accurately and quickly with the AI-based process in the Open Telekom Cloud. Automation enables planning times to be reduced by up to 75 percent. New routes are calculated automatically, and the planners can work more quickly, move virtually through the roads themselves using 2D or 3D models and take measurements. For example, whether a sidewalk is wide enough for a power distribution box. "This site protection has to be approved by the local authorities. For this, a form is automatically created in the GDI," says Tobias Frechen. This way, all documents for fiber optic expansion can be made available to the municipalities digitally in the future.

+

See Also

+
Additional Information
    +
  • Read the whole success story here.
  • +
  • Download our reference flyer.
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/index.html b/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/index.html new file mode 100644 index 000000000..62f6baaa2 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/index.html @@ -0,0 +1,20 @@ + + + + + +Telecommunications | Architecture Center + + + + + +

Telecommunications

+

The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cce/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cce/index.html new file mode 100644 index 000000000..03a0f8053 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cce/index.html @@ -0,0 +1,104 @@ + + + + + +Deploy ClickHouse on CCE | Architecture Center + + + + + +

Deploy ClickHouse on CCE

+

ClickHouse is a high-performance columnar database management system optimized for online analytical processing (OLAP). It is designed to handle large volumes of data and execute complex queries swiftly. The system uses a columnar storage format, which significantly accelerates read and write operations and enhances data compression. ClickHouse supports SQL queries and provides extensive tools for data analysis. It is built to scale horizontally, allowing for distributed processing across multiple servers. Its architecture ensures high availability and fault tolerance. Ideal for real-time data analytics, ClickHouse is widely adopted for tasks requiring fast query performance over extensive datasets.

+

In this blueprint we are going to use ClickHouse Operator to install it on a CCE Cluster. ClickHouse Operator creates, configures, and manages ClickHouse clusters running on Kubernetes.

+

The sections below describe how to install and deploy ClickHouse Operator on +CCE clusters and provide examples of creating ClickHouse cluster +resources. For more details, see https://github.com/Altinity/clickhouse-operator.

+

Prerequisites

+

ClickHouse Operator can be installed in CCE clusters of v1.15.11 and +later. In this example, ClickHouse Operator is installed in a cluster of +v1.19.

+
ResourceValue
Cluster typeCCE cluster
Cluster version1.25.3
Regioneu-de
Container Runtimecontainerd 1.6.14
Network modelVPC network
Service forwarding modeiptables
+

Deploying ClickHouse Operator

+

Run the following command to deploy ClickHouse operator on your cluster:

+
kubectl apply -f \
https://raw.githubusercontent.com/Altinity/clickhouse-operator/master/deploy/operator/clickhouse-operator-install-bundle.yaml
+

you see similar output after applying the manifest:

+
kubectl apply -f https://raw.githubusercontent.com/Altinity/clickhouse-operator/master/deploy/operator/clickhouse-operator-install-bundle.yaml

customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.altinity.com created
customresourcedefinition.apiextensions.k8s.io/clickhouseinstallationtemplates.clickhouse.altinity.com created
customresourcedefinition.apiextensions.k8s.io/clickhouseoperatorconfigurations.clickhouse.altinity.com created
customresourcedefinition.apiextensions.k8s.io/clickhousekeeperinstallations.clickhouse-keeper.altinity.com created
serviceaccount/clickhouse-operator created
clusterrole.rbac.authorization.k8s.io/clickhouse-operator-kube-system created
clusterrolebinding.rbac.authorization.k8s.io/clickhouse-operator-kube-system created
configmap/etc-clickhouse-operator-files created
configmap/etc-clickhouse-operator-confd-files created
configmap/etc-clickhouse-operator-configd-files created
configmap/etc-clickhouse-operator-templatesd-files created
configmap/etc-clickhouse-operator-usersd-files created
secret/clickhouse-operator created
deployment.apps/clickhouse-operator created
service/clickhouse-operator-metrics created
+

After a period of time, check the running status of ClickHouse Operator.

+
kubectl get pod -n kube-system | grep clickhouse
+

command output:

+
kubectl get pod -n kube-system | grep clickhouse

clickhouse-operator-5b8b958bd8-8w2cg 2/2 Running 0 12s
+

Examples

+

Creating a Namespace

+

Create a namespace named test-clickhouse-operator to facilitate +verification of basic functions.

+
kubectl create namespace test-clickhouse-operator
+

Simple Example

+ +

The YAML file is as follows:

+
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
name: "simple-01"
spec:
configuration:
users:
# printf 'test_password' | sha256sum
test_user/password_sha256_hex: 10a6e6cc8311a3e2bcc09bf6c199adecd5dd59408c343e926b129c4914f3cb01
test_user/password: test_password
# to allow access outside from kubernetes
test_user/networks/ip:
- 0.0.0.0/0
clusters:
- name: "simple"
+

Run the following command:

+
kubectl apply -n test-clickhouse-operator -f \
https://raw.githubusercontent.com/Altinity/clickhouse-operator/master/docs/chi-examples/01-simple-layout-01-1shard-1repl.yaml
+

After a period of time, check the resource running status.

+
kubectl get pod -n test-clickhouse-operator

NAME READY STATUS RESTARTS AGE
chi-simple-01-simple-0-0-0 1/1 Running 0 30s

kubectl get service -n test-clickhouse-operator

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
chi-simple-01-simple-0-0 ClusterIP None <none> 9000/TCP,8123/TCP,9009/TCP 14s
clickhouse-simple-01 ClusterIP None <none> 8123/TCP,9000/TCP 12s
+

Connect to the ClickHouse database.

+
kubectl -n test-clickhouse-operator exec -ti chi-simple-01-simple-0-0-0 -- clickhouse-client

ClickHouse client version 24.4.1.2088 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 24.4.1.

Warnings:
* Linux transparent hugepages are set to "always". Check /sys/kernel/mm/transparent_hugepage/enabled


chi-simple-01-simple-0-0-0.chi-simple-01-simple-0-0.test-clickhouse-operator.svc.cluster.local :)
+

Simple Persistent Volume Example

+ +

Before using this YAML file to create a PVC on CCE, modify the file +based on the storage volume you want to use.

+
    +
  • If an EVS disk is used as a storage volume, do as follows: +
      +
    1. +

      Create a StorageClass.

      +

      By default, the CSI disk type supported by CCE is SAS. If you +want to use ultra-high I/O EVS disks, create the corresponding +StorageClass.

      +
      csi-disk-ssd.yaml
      allowVolumeExpansion: true
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
      name: csi-disk-ssd
      parameters:
      csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
      csi.storage.k8s.io/fstype: ext4
      everest.io/disk-volume-type: SSD
      everest.io/passthrough: "true"
      provisioner: everest-csi-provisioner
      reclaimPolicy: Delete
      volumeBindingMode: Immediate
      +

      Save the file and create the StorageClass in your cluster.

      +
      kubectl create -f csi-disk-ssd.yaml
      +
    2. +
    3. +

      Change accessModes to ReadWriteOnce.

      +
    4. +
    5. +

      Append storageClassName: csi-disk-ssd under the path +spec.templates.volumeClaimTemplates.spec of example +yaml.

      +
    6. +
    +
  • +
  • If an SFS file system is used as a storage volume, do as follows: +
      +
    1. Change accessModes to ReadWriteMany.
    2. +
    3. Append storageClassName: csi-nas under the path +spec.templates.volumeClaimTemplates.spec of example +yaml.
    4. +
    +
  • +
+

For example, if an SFS file system is used, the YAML file content is as +follows:

+
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
name: "pv-simple"
spec:
defaults:
templates:
dataVolumeClaimTemplate: data-volume-template
logVolumeClaimTemplate: log-volume-template
configuration:
clusters:
- name: "simple"
layout:
shardsCount: 1
replicasCount: 1
templates:
volumeClaimTemplates:
- name: data-volume-template
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: csi-nas
- name: log-volume-template
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: csi-nas
+

Run the following command to create a PV:

+
kubectl -n test-clickhouse-operator create -f \
03-persistent-volume-01-default-volume.yaml
+

After a period of time, check the resource running status:

+
kubectl get pvc -n test-clickhouse-operator

NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-volume-template-chi-pv-simple-simple-0-0-0 Bound pvc-98cb51b7-46ef-415f-b43b-edaa3638f4ef 1Gi RWO csi-disk-ssd 55s
log-volume-template-chi-pv-simple-simple-0-0-0 Bound pvc-404c31c6-8360-441f-a1c7-df19e3497886 100Mi RWO csi-disk-ssd 55s
+
kubectl get pod -n test-clickhouse-operator

NAME READY STATUS RESTARTS AGE
chi-pv-simple-simple-0-0-0 2/2 Running 0 2m59s
+

Run the following command to check the mounting status of the storage +volume:

+
kubectl -n test-clickhouse-operator exec -ti chi-pv-simple-simple-0-0-0 -c clickhouse -- bash
+
df -h

root@chi-pv-simple-simple-0-0-0:/# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 89G 6.2G 78G 8% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
sfs-nas1.eu-de.otc.t-systems.com:/share-29e28acd 9.8G 118M 9.2G 2% /etc/hosts
sfs-nas1.eu-de.otc.t-systems.com:/share-62e28aab 89G 6.2G 78G 8% /etc/hostname
shm 64M 0 64M 0% /dev/shm
/dev/sdf 974M 13M 945M 2% /var/lib/clickhouse
/dev/sdg 974M 108K 958M 1% /var/log/clickhouse-server
tmpfs 14G 12K 14G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 7.8G 0 7.8G 0% /proc/acpi
tmpfs 7.8G 0 7.8G 0% /proc/scsi
tmpfs 7.8G 0 7.8G 0% /sys/firmware
+

Connect to the ClickHouse database:

+
kubectl -n test-clickhouse-operator exec -ti chi-simple-01-simple-0-0-0 -- clickhouse-client

ClickHouse client version 24.4.1.2088 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 24.4.1.
+

Simple Load Balancer Example

+
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
name: "ck-elb"
spec:
defaults:
templates:
dataVolumeClaimTemplate: data-volume-nas
serviceTemplate: chi-service-elb
configuration:
clusters:
- name: "ck-elb"
templates:
podTemplate: pod-template-with-nas
layout:
shardsCount: 1
replicasCount: 1
templates:
podTemplates:
- name: pod-template-with-nas
spec:
containers:
- name: clickhouse
image: yandex/clickhouse-server:21.6.3.14
volumeMounts:
- name: data-volume-nas
mountPath: /var/lib/clickhouse
volumeClaimTemplates:
- name: data-volume-nas
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 20Gi
storageClassName: csi-nas
serviceTemplates:
- name: chi-service-elb
metadata:
annotations:
kubernetes.io/elb.class: union
kubernetes.io/elb.autocreate: >-
{"type":"public","bandwidth_name":"cce-bandwidth-ck","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp"}
spec:
ports:
- name: http
port: 8123
- name: client
port: 9000
type: LoadBalancer
+

Add the information in bold to the YAML file. The following table +describes the parameters supported by annotations kubernetes.io/elb.autocreate.

+
ParameterTypeDescription
nameStringName of the automatically created load balancer. Value range: a string of 1 to 64 characters, including lowercase letters, digits, and underscores (_). The value must start with a lowercase letter and end with a lowercase letter or digit.
typeStringNetwork type of the load balancer. public: public network load balancer inner: private network load balancer
bandwidth_nameStringBandwidth name. The default value is cce-bandwidth-**. Value range: a string of 1 to 64 characters, including lowercase letters, digits, and underscores (_). The value must start with a lowercase letter and end with a lowercase letter or digit.
bandwidth_chargemodeStringBandwidth billing mode. bandwidth: billed by bandwidth traffic: billed by traffic
bandwidth_sizeIntegerBandwidth.
bandwidth_sharetypeStringBandwidth sharing mode. PER: dedicated bandwidth
eip_typeStringEIP type.
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/index.html new file mode 100644 index 000000000..67689c683 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/index.html @@ -0,0 +1,15 @@ + + + + + +Analytics | Architecture Center + + + + + +

Analytics

+

In this category, you can find guidance for designing, deploying, and managing scalable analytics solutions on Open Telekom Cloud. Topics include data ingestion, transformation, and storage; real-time and batch processing architectures; tools for data visualization and business intelligence; and leveraging machine learning for predictive analytics. Here are also provided architectural patterns, case studies, and reference implementations to help organizations derive actionable insights from their data while ensuring security, cost-efficiency, and performance.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce/index.html new file mode 100644 index 000000000..2dc5ec98d --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce/index.html @@ -0,0 +1,51 @@ + + + + + +Deploy Umami on CCE | Architecture Center + + + + + +

Deploy Umami on CCE

+

In this blueprint we are going to set up Umami on Open Telekom Cloud's Cloud Container Engine (CCE), leveraging Kubernetes for scalability and flexibility. For the database backend, we will use the Zalando PostgreSQL Operator to provision and manage a PostgreSQL cluster within the CCE environment.

+

Prerequisites

+

We are going to need a CCE Cluster (its provisioning is out of the scope of this blueprint) and the zalando-postgres-operator. This operator automates the management of PostgreSQL clusters on Kubernetes, handling tasks like scaling, backups, and failover. It simplifies the deployment and maintenance of a highly available PostgreSQL database within the CCE cluster. Additionally we are going to need an Elastic Load Balancer in order to expose Umami.

+

Installing Zalando Postgres Operator

+

We are going to install the operator by using the provided Helm chart:

+
helm repo add postgres-operator-charts https://opensource.zalando.com/postgres-operator/charts/postgres-operator
helm repo update

helm install postgres-operator postgres-operator-charts/postgres-operator
+

Installing Umami

+

Provisioning a Database

+

As we priorly discussed, we are going to use zalando-postgres-operator in order to provision a PostgreSQL Cluster in CCE:

+
umami-postgresql.yaml
apiVersion: acid.zalan.do/v1
kind: postgresql
metadata:
labels:
application: umami
name: umami-psql
spec:
databases:
umami: umami
numberOfInstances: 1
postgresql:
version: "16"
parameters:
huge_pages: "false"
preparedDatabases:
umami:
defaultUsers: true
schemas:
data: {}
history:
defaultRoles: true
defaultUsers: false
resources:
limits:
cpu: 500m
memory: 500Mi
requests:
cpu: 10m
memory: 100Mi
teamId: default
users:
admin:
- superuser
- createdb
umami: []
volume:
size: 1Gi
storageClass: csi-disk
+
kubectl apply -f umami-postgresql.yaml
+

Deploying Umami

+

Create the follow manifest:

+
umami-web-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: umami-web
spec:
replicas: 2
selector:
matchLabels:
app: umami-web
template:
metadata:
labels:
app: umami-web
spec:
containers:
- name: web
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- containerPort: 5000
protocol: TCP
env:
- name: PORT
value: '5000'
- name: DB_DATABASE
value: "umami"
- name: DB_HOST
value: umami-psql.docs-next.svc.cluster.local
- name: DB_PORT
value: '5432'
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: umami.umami-psql.credentials.postgresql.acid.zalan.do
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: umami.umami-psql.credentials.postgresql.acid.zalan.do
key: password
- name: DATABASE_URL
value: "postgres://$(DB_USERNAME):$(DB_PASSWORD)@$(DB_HOST):$(DB_PORT)/$(DB_DATABASE)"
imagePullPolicy: IfNotPresent
+
kubectl apply -f umami-web-deployment.yaml
+
important

A Kubernetes Secret with the name umami.umami-psql.credentials.postgresql.acid.zalan.do, containing the credentials of the umami database, will be automatically provisioned by the zalando-postgres-operator during the application of manifest umami-postgresql.yaml. The environmental variables DB_USERNAME & DB_PASSWORD are getting their values by referencing this Secret.

+

Creating an Elastic Load Balancer

+

Navigate to Network Console->Elastic Load Balancing and click Create Elastic Load Balancer. Choose to create Shared Load Balancer and choose New EIP so the new ELB is automatically bound to a new elastic IP:

+

alt text

+
tip

Write down the ID of the Elastic Load Balancer we are going to need it in the next steps.

+

Exposing Umami

+

Creating a Service

+
umami-service.yaml
apiVersion: v1
kind: Service
metadata:
name: umami-web
spec:
type: NodePort
ports:
- protocol: TCP
name: umami
port: 5000
targetPort: 5000
selector:
app: umami-web
+
kubectl apply -f umami-service.yaml
+
note

If you are not planning to expose the service via an Ingress object, change the type to ClusterIP.

+

Creating an Ingress (optional)

+
umami-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: umami-ingress
labels:
app: umami-web
annotations:
kubernetes.io/elb.class: union
kubernetes.io/elb.id: {value}
kubernetes.io/elb.port: 80
spec:
ingressClassName: cce
rules:
- host: umami.example.com
http:
paths:
- backend:
service:
name: umami-web
port:
number: 5000
path: /
pathType: ImplementationSpecific
+
important
    +
  • Replace the placeholder {value} of annotation kubernetes.io/elb.id with the ID of the Elastic Load Balancer we created before.
  • +
  • If the Elastic Load Balancer you created was a shared one then the annotation kubernetes.io/elb.class should have the value union.
  • +
  • Replace umami.example.com in host, with the FQDN of yours.
  • +
+
kubectl apply -f umami-ingress.yaml
+

Verification

+

Open in a browser the address: http://ELB_EIP and you should now land at the logon page of Umami:

+

alt text

+
warning

Umami uses admin/umami as default credentials. Change them immediatelly after you log in!

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/umami/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/umami/index.html new file mode 100644 index 000000000..97ab527a8 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/umami/index.html @@ -0,0 +1,21 @@ + + + + + +Umami | Architecture Center + + + + + +

Umami

+

Umami is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking.

+
important

Umami is fully GDPR compliant. It is designed with privacy in mind, meaning it does not track personal data, it does not use cookies, and it does not require user consent under GDPR rules. Umami collects only anonymized, aggregated data, ensuring that no personally identifiable information (PII) is gathered. This makes it an excellent solution for organizations looking to monitor web traffic while staying compliant with strict data protection regulations like GDPR. Additionally, since Umami is self-hosted, businesses have full control over their data, further enhancing privacy and compliance.

+
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs/index.html new file mode 100644 index 000000000..ba9dfd0a7 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs/index.html @@ -0,0 +1,101 @@ + + + + + +Using RDS for PostgreSQL to Set Up Umami on ECS | Architecture Center + + + + + +

Using RDS for PostgreSQL to Set Up Umami on ECS

+

In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.

+

Prerequisites

+

We are going to need, create and configure the following components:

+
    +
  • a PostgreSQL Instance in RDS: RDS automates database management tasks like backups, patching, and scaling. It simplifies deploying a PostgreSQL instance without needing to manage the infrastructure directly.
  • +
  • an ECS Server for Umami: The server will be used to run Umami's application layer. You will install and configure Umami on this ECS instance, which will interact with the PostgreSQL database.
  • +
  • Networking: Set up secure network configurations between your ECS and RDS, ensuring communication between the Umami application and the PostgreSQL instance.
  • +
  • Deployment: After configuring the ECS and connecting it to the RDS database, you can deploy Umami, connect it to the database, and start monitoring your web traffic.
  • +
+

Creating an ECS Server

+

Click on the console Elastic Cloud Server->Create ECS and pick the flavor and operating system that suits your needs. Make sure though, you place it in the same VPC/Subnet that you are planning to install your RDS DB instance. For this blueprint we are going to set up Ubuntu 22.04 on a s7n.large.4 flavor. Consequently some of the commands that are going to be executed later, will assume you are working on a Ubuntu (or Debian-based) distribution.

+

alt text

+

Creating a PostgreSQL Database

+

We are going to create a single, non highly available PostgreSQL v16. In Relational Database Service click Create DB Instance:

+

Create a Database Wizard Part 1

+

Make sure you place the database server in the same VPC/Subnet that the ECS instance lives. Choose the flavor of your liking, provide the root password and press Create Now. For the time being, we are going to make no changes in the Security Groups; we are going to fix this in the next step.

+

Create a Database Wizard Part 2

+
note

Picking a single non-HA instance is just for demonstration purposes and not suitable for production. While implementing this blueprint adjust instances and replicas according to your needs and volume projections.

+

Installing Cryptographic Functions Plugins

+

In Relational Database Service click your instance and then navigate to Plugins. Search the list for the plugin pgcrypto, and install it by click the Install link.

+

alt text

+

Establishing Connectivity

+

In Relational Database Service click your instance and then navigate to Connectivity & Security and under Connection Topology choose Private Connection:

+

Establishing Connectivity

+

In this blueprint, we are interested in variant 2, where our database instance (with floating IP 172.16.0.30) needs to establish two-way communication with the ECS(B) instance, which in our case is the ECS instance that hold the Umami installation. For that matter we need to create two Security Groups, one that will allow inbound connections to port 5432 and will be assigned to our RDS instance and a second one that will allow outbound connections from port 5432 and will be assigned to the ECS instance that our workload will run.

+

Creating Security Group for RDS

+

Adding Inbound Rules for RDS Instances

+

For additional security, make sure you set as Source the CIDR of the your Subnet (in this case 172.16.0.0/24); in that way you prohibit anyone access your database outside your VPC/Subnet.

+

Go back to the Connectivity & Security panel of your database and replace under Security Group Rules -> Security Group, the default Security Group with the one we just created:

+

alt text

+

Creating Security Group for ECS

+

Creating Outbound Rule for PostgreSQL

+

Adding Outbound Rules for ECS

+

In the same notion, set as Destination the CIDR of the your Subnet (in this case 172.16.0.0/24).

+

On our ECS instance, click Security Groups -> Change Security Group, and add additionally the new Security Group to the list.

+

alt text

+

Creating Inbound Rule for SSH

+

You are going to need an additionnal inbound rule to allow actors accessing this ECS Server via SSH. Add in the existing Security Group (or create new one for finer granularity of permissions and reusability among more instances) port 22 in the Inbound Rules list, and set the value of Remote End as 0.0.0.0/24.

+

alt text

+
note

How you are going to establish this SSH connection, is entirely up to you. You can use a bastion or an Elastic IP bound to your ECS or a DNAT Rule in a NAT Gateway. Depends on your needs and your assessment.

+

Creating Inbound Rule for Umami

+

Deploying Umami

+

Creating the Database

+

Installing the PostgreSQL client tools

+
sudo apt-get update
sudo apt-get -y install postgresql-client-14
+

Creating the Umami Database

+
createdb umami --host=172.16.0.30 --username=root
+
note

You will be asked to provide the root password you've set during the installation.

+

Creating Roles and Assign Privileges

+

Connect to database:

+
psql -h 172.16.0.30 --username=root umami
+

Create Role & Privileges and make sure the Cryptographics Functions Plugin is on:

+
CREATE ROLE umami WITH LOGIN PASSWORD '{value}’;
GRANT ALL PRIVILEGES ON DATABASE umami TO umami;
\c umami
CREATE EXTENSION IF NOT EXISTS pgcrypto;
GRANT ALL PRIVILEGES ON SCHEMA public TO umami;
+
important

Replace {value} with your own password!

+

Installing Docker

+

Setup Docker's apt repository

+
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
+

Instal the Docker packages

+
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
+

Post-Installation Steps

+
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
+

Installing Umami as Docker Container

+

Create an APP_SECRET and export Credentials

+
export APP_SECRET=$(openssl rand 30 | openssl base64 -A)
export PSQL_HOST=172.16.0.30
export PSQL_ROOT_PASSWORD={value}
+
note

Replace PSQL_HOST and PSQL_ROOT_PASSWORD values with your own ones.

+

Create a Docker Compose file

+
docker-compose.yml
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://root:${PSQL_ROOT_PASSWORD}@${PSQL_HOST}:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: ${APP_SECRET}
restart: always
healthcheck:
test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
interval: 5s
timeout: 5s
retries: 5
+
docker compose up -d
+

Exposing Umami

+

Creating an Elastic Load Balancer

+

Navigate to Network Console->Elastic Load Balancing and click Create Elastic Load Balancer. Choose to create Shared Load Balancer and choose New EIP so the new ELB is automatically bound to a new elastic IP:

+

alt text

+

Creating a Listener

+

Choose your Elastic Load Balancer from the console and click Add Listener:

+

alt text

+

Configure Frontend Protocol as TCP, and Frontend Port as 80:

+

alt text

+

Configure a new Routing Policy, supported by a new Backend Server Group and set Backend Protocol as TCP:

+

alt text

+

Next, you need to add members to the newly created Backend Group. Click Add Backend Server and choose the Umami ECS Instance from the list:

+

alt text

+

and set the Backend Port to 3000:

+

alt text

+

Verification

+

Open in a browser the address: http://ELB_EIP and you should now land at the logon page of Umami:

+

alt text

+
warning

Umami uses admin/umami as default credentials. Change them immediatelly after you log in!

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce/index.html new file mode 100644 index 000000000..a7a4e3fd1 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce/index.html @@ -0,0 +1,483 @@ + + + + + +Build a CI/CD Pipeline with Devtron, SWR and CCE | Architecture Center + + + + + +

Build a CI/CD Pipeline with Devtron, SWR and CCE

+

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+

What is Devtron?

+

Devtron is an open-source software delivery workflow automation platform +designed to streamline the DevOps lifecycle. It provides tools for +continuous integration and continuous deployment (CI/CD), infrastructure +management, application lifecycle management, and monitoring, +specifically tailored for Kubernetes-based applications.

+

Key Features

+
    +
  • CI/CD Pipelines: Automated pipelines for building, testing, and +deploying applications.
  • +
  • Kubernetes Integration: Native support for Kubernetes, enabling +easy management of Kubernetes clusters and deployments.
  • +
  • Application Management: Tools for managing applications +throughout their lifecycle, including versioning, rollback, and +updates.
  • +
  • Infrastructure Management: Automation of infrastructure +provisioning and management, supporting Infrastructure as Code (IaC) +practices.
  • +
  • Monitoring and Logging: Built-in monitoring and logging +capabilities to track application performance and troubleshoot +issues.
  • +
  • Collaboration: Features that facilitate team collaboration, +including role-based access control and audit trails.
  • +
+

Devtron is particularly useful for teams adopting Kubernetes and +microservices architectures, offering a unified platform to manage the +entire software delivery pipeline.

+

Architecture

+

The architecture of Devtron is designed to be highly modular and +extensible, integrating seamlessly with Kubernetes and various CI/CD +tools. Below are the primary components of Devtron:

+
    +
  • Devtron Dashboard: The user interface for managing applications, +CI/CD pipelines, and infrastructure.
  • +
  • CI/CD Integration: Connects with CI/CD tools like Jenkins, +GitLab CI, and others to automate the build, test, and deployment +processes.
  • +
  • Kubernetes Agents: Deployed within Kubernetes clusters to manage +and orchestrate deployments, scaling, and monitoring.
  • +
  • Devtron API: Provides RESTful APIs for integrating with other +tools and services, enabling automation and custom workflows.
  • +
  • Devtron Plugins: Extensible plugins that add functionalities +such as security scanning, GitOps, and more.
  • +
+

+
caution

Open Telekom Cloud, and CCE in its extent, do not provide official maintenance and support for Devtron. The maintenance is provided exclusively by the developers of the Devtron. You can read more in the documentation of the platform here.

+

Prerequisites

+

Before installing Devtron, ensure that your environment meets the +following minimum requirements:

+
    +
  1. +

    Kubernetes version 1.16 or higher is recommended.

    +
  2. +
  3. +

    Ensure Helm is installed on your Kubernetes cluster. Follow the official Helm installation guide for setup instructions.

    +
  4. +
  5. +

    The minimum resources required for installing Devtron vary based on the number of applications you plan to manage:

    +

    For Managing Up to 5 Applications:

    +
    IntegrationCPUMemory
    Devtron with CI/CD26 GB
    Helm Dashboard by Devtron11 GB
    +

    For Managing More Than 5 Applications:

    +
    IntegrationCPUMemory
    Devtron with CI/CD613 GB
    Helm Dashboard by Devtron23 GB
    +
  6. +
+
important
    +
  • Ensure that the recommended resources are available on your +Kubernetes cluster before proceeding with the Devtron installation.
  • +
  • It is NOT recommended to use burstable CPU VMs for Devtron installation to +ensure consistent performance.
  • +
+

Installing Devtron on CCE

+

This guide provides a step-by-step process to install Devtron, including +selecting the appropriate installation repository, installing with Helm +charts, accessing the dashboard via port forwarding, and logging in with +an overview of the dashboard.

+

Choosing the Right Installation Option

+

Devtron offers different installation options based on your +requirements. Here's how to decide which option to use:

+
    +
  1. Devtron with CI/CD: Use this if you need comprehensive CI/CD +integration, security scanning, GitOps, debugging, and +observability.
  2. +
  3. Helm Dashboard by Devtron: Choose this if you need a standalone +installation focused on deploying, observing, managing, and +debugging existing Helm applications across multiple clusters.
  4. +
  5. Devtron with CI/CD and GitOps (Argo CD): Opt for this if you +want CI/CD with GitOps capabilities enabled during installation.
  6. +
+

Installing Devtron with Helm Charts

+

Follow these steps to install Devtron using Helm charts: In this +instruction we use the first option Devtron with CI/CD.

+
    +
  1. +

    Add Devtron Helm Repository: Add Devtron Helm repository to your +local Helm client:

    +
    helm repo add devtron https://helm.devtron.ai
    helm repo update
    +
  2. +
  3. +

    Install Devtron: Install Devtron using the Helm chart:

    +
    helm install devtron devtron/devtron-operator \
    --create-namespace --namespace devtroncd \
    --set installer.modules={cicd}
    +
  4. +
  5. +

    Install Devtron: Check the status of the installation:

    +
    kubectl get pods -n devtroncd
    +
  6. +
+

Connecting Devtron to OBS for logging and caching

+

Follow these steps to connect the OBS blob storage to Devtron:

+
    +
  1. +

    Create a bucket in OBS: You can create two different buckets one +for log storage and another one for cache storage. In this example +we make one bucket named devtron for both purposes.

    +
  2. +
  3. +

    Updating Devtron: Update Devtron configuration using the +following command:

    +
    helm upgrade devtron devtron/devtron-operator --namespace devtroncd --reuse-values \
    --set configs.BLOB_STORAGE_PROVIDER=S3 \
    --set configs.DEFAULT_CACHE_BUCKET=devtron \
    --set configs.DEFAULT_CACHE_BUCKET_REGION=eu-de \
    --set configs.DEFAULT_BUILD_LOGS_BUCKET=devtron \
    --set configs.DEFAULT_CD_LOGS_BUCKET_REGION=eu-de \
    --set secrets.BLOB_STORAGE_S3_ACCESS_KEY=<access-key\
    --set secrets.BLOB_STORAGE_S3_SECRET_KEY=<secret-key\
    --set configs.BLOB_STORAGE_S3_ENDPOINT=https://obs.eu-de.otc.t-systems.com
    +
    note

    To obtain access-key and secret-key for OBS check Accessing OBS +Using Permanent Access +Keys.

    +
  4. +
+

Accessing the Devtron Dashboard

+
note

By default, the Devtron service is exposed internally through a +NodePort. This makes Devtron available on any Kubernetes node IP.

Alternatively, a dedicated external IP can be assigned by switching the +service type to LoadBalancer. This will provision a cloud load balancer +that handles routing external traffic to Jenkins. For details, see +Creating a LoadBalancer +Service.

+

To access the Devtron dashboard, you need to use port forwarding. Follow +these steps:

+
    +
  1. +

    Port Forward to Access the Dashboard: Forward the port to access +the Devtron dashboard from your local machine:

    +
    kubectl port-forward svc/devtron-service -n devtroncd 8080:8080
    +
  2. +
  3. +

    Visit the Dashboard: Open your web browser and visit +http://localhost:8080 to access the Devtron dashboard.

    +
  4. +
  5. +

    Credentials:

    +
      +
    • +

      UserName: admin

      +
    • +
    • +

      Password: Run the following command to get the admin password for Devtron:

      +
      kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d
      +
    • +
    +
  6. +
+

Connecting Devtron to SWR or other private Registries

+

Devtron allows you to configure a private image repository to securely +store and manage your container images and other artifacts. This guide +provides a step-by-step process to add a SWR to Devtron.

+

Adding a Container Registry

+
    +
  1. +

    Go to Global Configurations -> Container/OCI Registry from the left sidebar.

    +

    Figure 1: Container/OCI Registry

    +
  2. +
  3. +

    Click Add Registry.

    +

    Figure 2: Add a Registry

    +
  4. +
  5. +

    From the Registry provider dropdown, select your desired provider. Select other for SWR.

    +
  6. +
  7. +

    Choose the appropriate registry type:

    +
      +
    • Private Registry: For authenticated access, requiring credentials. Use this for SWR.
    • +
    • Public Registry: For open access, no credentials needed.
    • +
    +
  8. +
  9. +

    Fill in the following fields:

    +
    FieldDescription
    Registry URLURL of your registry. swr.{region}.otc.t-systems.com
    UsernameAccount username.
    Password/TokenAccount password or token.
    Advanced Registry URL Connection OptionsOptions for secure/insecure connections.
    +
    note

    If you are in region eu-de then the Registry URL is swr.eu-de.otc.t-systems.com. To obtain an Username and +Password/Token for accessing SWR, see Obtaining a Long-Term Valid Login +Command.

    +

    and here is a recap of available options:

    +
    FieldDescription
    NameProvide a name for your registry. This will appear in the Container Registry dropdown in the Build Configuration section of your application.
    Registry URLEnter the registry URL
    Authentication TypeSelect based on your registry provider.
    Push container imagesEnable if you plan to push container images to this repository.
    Push helm packagesEnable if you plan to push Helm charts to this repository.
    Use as chart repositoryEnable if you want Devtron to pull Helm charts from this registry.
    Set as default registryEnable to set this registry as the default for your images or artifacts.
    +
  10. +
  11. +

    Click Save and continue.

    +
  12. +
+

Managing Registry Credentials

+

Manage registry credentials for deploying images from private +registries. Super-admins can choose to auto-inject credentials or use a +secret.

+
    +
  1. +

    Click Manage to configure registry credential access.

    +
    OptionDescription
    *Do not inject credentials to clustersSelect clusters to exclude from auto-injection.
    Auto-inject credentials to clustersSelect clusters for auto-injection.
    +
  2. +
  3. +

    Define credentials, choose between:

    +
      +
    • Use Registry Credentials or Specify Image Pull Secret
    • +
    +
  4. +
+

Use Registry Credentials

+

If you use this option selected clusters will be auto-injected with +registry credentials.

+

Figure 3: Using Registry Credentials

+

Specify Image Pull Secret

+

If you use this option selected clusters will be injected with the +credentials provided by the secret specified on that cluster. You can +create a Secret by providing credentials on the command line.

+

Figure 4: Using Image Pull Secret

+

Create this Secret and name it regcred:

+
kubectl create -n ${namespace} secret docker-registry regcred \
--docker-server=${your-registry-server} \
--docker-username=${your-name} \
--docker-password=${your-pword} \
--docker-email=${your-email}
+

where,

+
    +
  • namespace is your sub-cluster, e.g., devtron-demo
  • +
  • your-registry-server is your Private Registry. Use swr.${region}.otc.t-systems.com template for SWR.
  • +
  • your-name is your username
  • +
  • your-pword is your password
  • +
  • your-email is your email
  • +
+

You have successfully set your credentials in the cluster as a Secret +called regcred:

+
warning

Typing secrets on the command line may store them in your shell history +unprotected, and those secrets might also be visible to other users on +your PC during the time when kubectl is running.

+

Enter the Secret name in the field and click Save.

+

Deploying a Sample Application on Devtron and Building a CI/CD Pipeline

+

This tutorial will guide you through deploying a Node.js sample +application on Devtron and setting up a CI/CD pipeline.

+

Testing locally (Optional)

+

First, clone the sample application repository and navigate into the +directory:

+
git clone https://github.com/devtron-labs/getting-started-nodejs
cd getting-started-nodejs
+

To run the sample application locally, execute:

+
node app.js
+

Now, open your browser and go to +http://localhost:8080. You should see the +following output:

+
{"cities":["Amsterdam","Berlin","New York","San Francisco","Tokyo"]}
+

Deploying the Application with Devtron

+

Let's deploy this Node.js application using Devtron. Ensure that your +global configurations are successfully saved and validated before +proceeding.

+

Creating a new Application

+
    +
  1. Login into your Devtron Dashboard.
  2. +
  3. Navigate to Applications and click on Create and select +Custom app.
  4. +
  5. Provide an appropriate name for the application, sample-app for +example, select the project in which you want your app to reside, +and create it.
  6. +
+

Configuring the Git Repository

+

After creating the app, set up the configurations.

+
    +
  1. Select Github Public as the Git Account.
  2. +
  3. Copy the repository URL +https://github.com/devtron-labs/getting-started-nodejs and paste +it into the Git repo section of your application.
  4. +
  5. Click Save and proceed to the next configuration.
  6. +
+

Configuring Docker Build

+
    +
  1. Select the repository where you want to store your CI build image. +Select either SWR which you configured in +Connecting Devtron to SWR or +provide other image repository.
  2. +
  3. Choose the build configuration. We use Dockerfile because this +repository provides a default Dockerfile on this path +./Dockerfile.
  4. +
  5. Click Save & Next and proceed to the next configuration.
  6. +
+
note

You can also use Buildpacks if your selected repository doesn't provide +any Dockerfile or if you prefer them. For more information about +Buildpacks visit Cloud Native Buildpacks.

+

Configuring the Deployment Template

+
    +
  1. +

    Set the container Port: The Node.js application runs on port 8080.

    +
  2. +
  3. +

    Set the resource limits and requests:

    +

    cpu: "0.5" and memory: 50Mi

    +
  4. +
  5. +

    Click Save & Next and proceed to the next configuration.

    +
  6. +
+

Creating a CI/CD Workflow

+
    +
  1. Click on New workflow to create a CI/CD workflow to deploy the +application.
  2. +
  3. Select Build and Deploy from Source Code for the type of +pipeline.
  4. +
  5. Configure Code Source. For Source type select Branch Fixed and +for Branch Name enter the branch which you want to pull form here e.g. main.
  6. +
  7. Click Create Pipeline.
  8. +
  9. Add your CD pipeline, choosing the environment where you want to +deploy the app.
  10. +
+

+

+

Adding Secrets and/or ConfigMaps

+
    +
  1. Add or create secrets or configmaps as required.
  2. +
  3. These values will be automatically mounted with pods and made +available as volumes or environment variables, based on your +selection.
  4. +
+

Triggering the CI Pipeline

+
    +
  1. Trigger your CI pipeline by selecting the latest image.
  2. +
  3. Deploy it on your chosen project.
  4. +
+

Fetching the LoadBalancer URL

+
    +
  1. After a successful deployment, check the service manifest.
  2. +
  3. Fetch the LoadBalancer URL from the dashboard present in the App +Details section.
  4. +
+

Verifying the Deployment

+
    +
  1. +

    Use the LoadBalancer URL in your browser.

    +
  2. +
  3. +

    You should see the following output:

    +
    {"cities":["Amsterdam","Berlin","New York","San Francisco","Tokyo"]}
    +
  4. +
+

Conclusion

+

By following these steps, you have successfully deployed a Node.js +application using Devtron and set up a CI/CD pipeline to automate the +process.

+
tip

For more detailed documentation about the configurations, refer to the +Devtron User +Guide.

+

Appendix (Review of Advanced Options)

+

Build and Deploy from Source Code

+

Build and Deploy from Source Code workflow allows you to build the +container image from a source code repository.

+
    +
  1. From the Applications menu, select your application.
  2. +
  3. On the App Configuration page, select Workflow Editor.
  4. +
  5. Select + New Workflow.
  6. +
  7. Select Build and Deploy from Source Code.
  8. +
  9. Enter the following fields on the Create build pipeline window:
  10. +
+

+

Advanced Options

+

The Advanced CI Pipeline includes the following stages:

+
    +
  • Pre-build stage: The tasks in this stage are executed before the +image is built.
  • +
  • Build stage: In this stage, the build is triggered from the +source code that you provide.
  • +
  • Post-build stage: The tasks in this stage will be triggered once +the build is complete.
  • +
+

+

The Pre-build and Post-build stages allow you to create Pre/Post-Build +CI tasks.

+

Build Stage

+

Go to the Build stage tab.

+

+
Field NameRequired/OptionalDescription
Pipeline NameRequiredA name for the pipeline
Source typeRequiredSelect the source type to build the CI pipeline: Branch Fixed, Branch Regex, Pull Request, Tag Creation
Branch NameRequiredBranch that triggers the CI build
Docker build argumentsOptionalOverride docker build configurations for this pipeline. Key: Field name Value: Field value
+

Source type

+
Branch Fixed
+

This allows you to trigger a CI build whenever there is a code change on +the specified branch. Enter the Branch Name of your code repository.

+
Branch Regex
+

Branch Regex allows users to easily switch between branches matching the configured Regex before triggering +the build pipeline.

+

+

For example, if the user sets the Branch Regex as feature-\*, then users can trigger from branches such as feature-1450, feature-hot-fix etc.

+
Pull Request
+

This allows you to trigger the CI build when a pull request is created +in your repository.

+
Prerequisites

Configure the webhook for either GitHub or Bitbucket.

+
warning

The Pull Request source type feature only works for the host GitHub +or Bitbucket Cloud.

+

+

To trigger the build from specific PRs, you can filter the PRs based on +the following keys:

+
Filter keyDescription
AuthorAuthor of the PR
Source branch nameBranch from which the Pull Request is generated
Target branch nameBranch to which the Pull request will be merged
TitleTitle of the Pull Request
StateState of the PR. Default is "open" and cannot be changed
+

+

Select the appropriate filter and pass the matching condition as a regular expression (regex).

+

Devtron uses regexp library, view regexp cheatsheet. You can +test your custom regex from here regex101.

+

Select Create Pipeline.

+
Tag Creation
+

This allows you to trigger the CI build whenever a new tag is created.

+
Prerequisites

Configure the webhook for either GitHub or Bitbucket.

+

+

To trigger the build from specific tags, you can filter the tags based +on the author and/or the tag name.

+
Filter keyDescription
AuthorThe one who created the tag
Tag nameName of the tag for which the webhook will be triggered
+

Select the appropriate filter and pass the matching condition as a regular expression (regex).

+

Select Create Pipeline.

+
note

The total timeout for the execution of the CI pipeline is by default set +as 3600 seconds. This default timeout is configurable according to the +use case.

+

Scan for Vulnerabilities

+
Prerequisites

Install any one of the following integrations from Devtron Stack Manager:

+

To perform the security scan after the container image is built, enable +the Scan for vulnerabilities toggle in the build stage.

+

+

Custom Image Tag Pattern

+

This feature helps you apply custom tags (e.g., v1.0.0) to readily distinguish container images within your repository.

+
    +
  1. +

    Enable the toggle button as shown below.

    +

    +
  2. +
  3. +

    You can write an alphanumeric pattern for your image tag, e.g., +test-v1.0.{x}. Here, x is a mandatory variable whose value +will incrementally increase with every build. You can also define +the value of x for the next build trigger in case you want to +change it.

    +

    +
    warning

    Ensure your custom tag does not start or end with a period (.) or comma (,)

    +
  4. +
  5. +

    Click Update Pipeline.

    +
  6. +
  7. +

    Now, go to the Build & Deploy tab of your application, and click +Select Material in the CI pipeline.

    +

    +
  8. +
  9. +

    Choose the git commit you wish to use for building the container +image. Click Start Build.

    +

    +
  10. +
  11. +

    The build will initiate and once it is successful, the image tag +would reflect at all relevant screens:

    +
      +
    • +

      Build History

      +

      +
    • +
    • +

      CD Pipeline (Image Selection)

      +

      +
    • +
    +
  12. +
+
note

Build will fail if the resulting image tag has already been built in the +past. This means if there is an existing image with tag test-v1.0.0, you cannot build another image +having the same tag test-v1.0.0 in the +same CI pipeline. This error might occur when you reset the value of the +variable x or when you disable/enable the +toggle button for Custom image tag +pattern.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-jenkins-swr-cce/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-jenkins-swr-cce/index.html new file mode 100644 index 000000000..18ee4bc05 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-jenkins-swr-cce/index.html @@ -0,0 +1,345 @@ + + + + + +Build a CI Pipeline with Jenkins, SWR and CCE | Architecture Center + + + + + +

Build a CI Pipeline with Jenkins, SWR and CCE

+

This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+

Solution Design

+

Jenkins is an open source continuous integration (CI) tool that provides +user-friendly GUIs. It originates from Hudson and is used to automate +all sorts of tasks related to building, testing, and delivering or +deploying software.

+

Jenkins is written in Java and can run in popular servlet containers +such as Tomcat, or run independently. It is usually used together with +the version control tools (or SCM tools) and build tools. Jenkins +supports various languages and is compatible with third-party build +tools, such as Maven, Ant, and Gradle. It seamlessly integrates with +common version control tools, such as SVN and Git, and can directly +connect to source code hosting services, such as GitHub.

+
Constrains
    +
  • This solution can be deployed only in CCE clusters. It is not supported in DeC.
  • +
  • CCE does not provide maintenance and support for Jenkins. The maintenance is provided by the developers.
  • +
+

You can install Jenkins using one of the following methods:

+
    +
  • You can use a single Master to install Jenkins. The Master handles +jobs and builds and releases services. However, security risks may +exist.
  • +
  • or use Master & Agents. Master schedules build jobs to +Agents for execution, and monitors the Agent(s) status. Agents execute +the build jobs dispatched by the Master and return the job progress and +result. You can install the Master and Agents on VMs, containers, or combination +of the two.
  • +
+

In this blueprint, Jenkins is installed with a containerized Master and +Agents. Kubernetes schedules the dynamic Agents:

+

Figure 1 Installing Jenkins onKubernetes

+
    +
  • The Master handles jobs. Install Kubernetes add-ons on the Master to +use the Kubernetes platform resources.
  • +
  • The Kubernetes platform generates pods for Agents to execute jobs. +When a job is scheduled on the Master, the Master sends a request to +the Kubernetes platform using the Kubernetes add-on. After receiving +the request, Kubernetes builds a pod using the pod template to send +requests to the Master. After the Master is successfully connected, +you can execute the job on the pod.
  • +
+

Installing and Deploying Jenkins Master

+
important

Select an image from Docker Hub. For this test, jenkins/jenkins:latest was selected, which is the official jenkins image with +all add-ons and functions. For details, see Installing Jenkins.

It is not advised to use latest images on production, choose a specific version!

+

Prerequisites

+
    +
  • Before creating a containerized workload, create a cluster (the +cluster must contain at least one node with 4 vCPUs and 8 GB +memory). For details, see Creating a CCE Cluster.
  • +
  • In order to manage your CCE cluster through kubectl, you need to +configure kubectl so that it can communicate with the cluster. This +involves obtaining the cluster's credentials from CCE and setting +up a kubeconfig file that kubectl will use to connect. For details, +see Connecting to a Cluster Using kubectl.
  • +
  • To enable access to a workload from a public network, ensure that an +elastic IP address (EIP) has been bound to or a load balancer has +been configured for at least one node in the cluster.
  • +
+

Installing Jenkins on CCE

+
    +
  1. +

    The first step is to create a dedicated Kubernetes namespace for +Jenkins using:

    +
    kubectl create namespace jenkins
    +
  2. +
  3. +

    Create service account. Jenkins needs access to the Kubernetes API +to manage resources. The sa.yaml file defines a ClusterRole to +grant admin access, a ServiceAccount, and a ClusterRoleBinding to +link them. This is created with:

    +
    sa.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
    name: jenkins-admin
    rules:
    - apiGroups: [""]
    resources: ["*"]
    verbs: ["*"]
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: jenkins-admin
    namespace: jenkins
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    name: jenkins-admin
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: jenkins-admin
    subjects:
    - kind: ServiceAccount
    name: jenkins-admin
    namespace: jenkins
    +

    and apply with:

    +
    kubectl create -f sa.yaml --namespace jenkins
    +
  4. +
  5. +

    Create persistent volume claim. To persist Jenkins data, a +PersistentVolumeClaim is defined in storage.yaml. An available +10Gi volume will be dynamically provisioned when the claim is +created:

    +
    storage.yaml
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: jenkins-pv-claim
    namespace: jenkins
    annotations:
    everest.io/disk-volume-type: SSD
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 10Gi
    storageClassName: csi-disk
    +

    and apply with:

    +
    kubectl create -f storage.yaml --namespace jenkins
    +
  6. +
  7. +

    Create Jenkins deployment. The deployment.yaml defines a Jenkins +Deployment and associated Kubernetes objects like Services and +Probes. This spins up the Jenkins pod with the persistent volume +mounted:

    +
    deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: jenkins
    namespace: jenkins
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: jenkins
    template:
    metadata:
    labels:
    app: jenkins
    spec:
    securityContext:
    fsGroup: 1000
    runAsUser: 1000
    serviceAccountName: jenkins-admin
    containers:
    - name: jenkins
    image: jenkins/jenkins:lts
    resources:
    limits:
    memory: "2Gi"
    cpu: "1000m"
    requests:
    memory: "500Mi"
    cpu: "500m"
    ports:
    - name: httpport
    containerPort: 8080
    - name: jnlpport
    containerPort: 50000
    livenessProbe:
    httpGet:
    path: "/login"
    port: 8080
    initialDelaySeconds: 90
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 5
    readinessProbe:
    httpGet:
    path: "/login"
    port: 8080
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 3
    volumeMounts:
    - name: jenkins-data
    mountPath: /var/jenkins_home
    volumes:
    - name: jenkins-data
    persistentVolumeClaim:
    claimName: jenkins-pv-claim
    +

    and apply with:

    +
    kubectl create -f deployment.yaml --namespace jenkins
    +
  8. +
  9. +

    Create Jenkins service. The Jenkins service exposes Jenkins on a NodePort:

    +

    By default, the Jenkins service is exposed internally through a +NodePort. This makes Jenkins available of any Kubernetes node IP.

    +

    Alternatively, a dedicated external IP can be assigned by switching +the service type to LoadBalancer. This will provision a cloud load +balancer that handles routing external traffic to Jenkins. For +details, see Creating a LoadBalancer Service.

    +
    service.yaml
    apiVersion: v1
    kind: Service
    metadata:
    name: jenkins-service
    namespace: jenkins
    annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/path: /
    prometheus.io/port: '8080'
    spec:
    selector:
    app: jenkins
    type: NodePort
    ports:
    - name: httpport
    port: 8080
    targetPort: 8080
    nodePort: 32000
    - name: jnlpport
    port: 50000
    targetPort: 50000
    +

    and apply with:

    +
    $ kubectl create -f service.yaml --namespace jenkins
    +
  10. +
+

Logging In and Initializing Jenkins

+
    +
  1. +

    On the CCE console, click the target cluster. Choose Networking +in the navigation pane. On the Services tab , view the +Jenkins access mode.

    +

    image1

    +
  2. +
  3. +

    Enter http://<ElasticLoadBalancerIPv4Address>:8080 in the browser address box to visit the Jenkins configuration page.

    +

    When you visit the page for the first time, you are prompted to +obtain the initial administrator password. You can obtain the +password from the Jenkins pod. Before running the following +commands, connect to the cluster using kubectl. For details, see +Connecting to a Cluster Using kubectl.

    +
    # kubectl get pod -n cicd

    NAME READY STATUS RESTARTS AGE
    jenkins-544d9765c4-pqgd8 1/1 Running 0 1h

    # kubectl exec -it jenkins-544d9765c4-pqgd8 -n cicd -- /bin/sh
    # cat /var/jenkins_home/secrets/initialAdminPassword
    b10eabe29a9f427c9b54c01a9c3383ae
    +
  4. +
  5. +

    The system prompts you to select the default recommended add-on and +create an administrator upon the first login. After the initial +configuration is complete, the Jenkins page is displayed.

    +

    image1

    +
  6. +
+

Modifying the number of Concurrent Build Jobs

+
    +
  1. +

    On the Jenkins dashboard page, click Manage Jenkins on the left, +choose System Configuration -> Manage nodes and clouds, and +select Configure from the drop-down list of the target node.

    +

    image2

    +
  2. +
+
note
    +
  • You can modify the number of concurrent build jobs on both +Master and Agent. The following uses Master as an example.
  • +
  • If the Master is used with Agents, you are advised to set the number of concurrent +build jobs of Master to 0. That is, all build jobs are performed using Agents. If a +single Master is used, you do not need to change the value to 0.
  • +
+
    +
  1. +

    Modify the maximum number of concurrent build jobs. In this example, +the value is changed to 2. You can change the value as required.

    +

    image3

    +
  2. +
+

Configuring Jenkins Agent

+

After Jenkins is installed, the following information may display, +indicating that Jenkins uses a Master for local build and Agents are not +configured.

+

image1

+
note

If you install Jenkins using a Master, you can build a pipeline after +performing operations in Installing and Deploying Jenkins Master. +For details, see Using Jenkins to Build a Pipeline.

+

Setting a Dynamic Agent for Jenkins

+
    +
  1. +

    Install the plug-in

    +

    On the Jenkins dashboard page, click Manage Jenkins on the left +and choose System Configuration -> Manage Plugins. On the +Available tab page, filter and install Kubernetes Plugin and +Kubernetes CLI Plugin.

    +

    image6

    +

    The plug-in version may change with time. Select a plug-in version +as required:

    +
      +
    • +

      Kubernetes Plugin:3734.v562b_b_a_627ea_c

      +

      It is used to run dynamic Agents in the Kubernetes cluster, +create a Kubernetes pod for each started Agent, and stop the pod +after each build is complete.

      +
    • +
    • +

      Kubernetes CLI Plugin:1.10.3

      +
    • +
    +

    kubectl can be configured for jobs to interact with Kubernetes clusters.

    +
  2. +
+
note

The Jenkins plug-ins are provided by the plug-in maintainer and may +be iterated due to security risks.

+
    +
  1. +

    Add cluster access credentials to Jenkins

    +

    Add cluster access credentials to Jenkins in advance. For details, see Setting Cluster Access Credentials.

    +
  2. +
  3. +

    Configure basic cluster information

    +

    On the Jenkins dashboard page, click Manage Jenkins on the left +and choose System Configuration -> Manage nodes and clouds. +Click Configure Clouds on the left to configure the cluster. +Click Add a new cloud and select Kubernetes. The cluster +name can be customized.

    +
  4. +
  5. +

    Enter Kubernetes Cloud details

    +

    Set the following cluster parameters and retain the values for other parameters:

    +
      +
    • Kubernetes URL: cluster API server address. You can enter https://kubernetes.default.svc.cluster.local:443.
    • +
    • Kubernetes server certificate key: your cluster CA certificate.
    • +
    • Credentials: Select the cluster credential added in. You can click Test Connection to check whether the cluster is connected.
    • +
    • Jenkins URL: Jenkins access path. Enter the IP address of port 8080 set in installing process (ports 8080 and 50000 must +be enabled for the IP address, that is, the intra-cluster access +address), for example, http://10.247.222.254:8080.
    • +
    +

    Figure 1Example

    +
  6. +
  7. +

    Pod Template: Click Add Pod Template -> Pod Template details +and set the pod template parameters:

    +
      +
    • Name: jenkins-agent
    • +
    • Namespace: cicd
    • +
    • Labels: jenkins-agent
    • +
    • Usage: Select Use this node as much as possible.
    • +
    +

    Figure 2 Basic parameters of the podtemplate

    +
      +
    • +

      Add a container. Click Add Container -> Container Template.

      +
        +
      • Name: The value must be jnlp.
      • +
      • Docker image: jenkins/inbound-agent:4.13.3-1. The +image version may change with time. Select an image version +as required or use the latest version.
      • +
      • Working directory: /home/jenkins/agent is selected +by default.
      • +
      • Command to run/Arguments to pass to the command: +Delete the existing default values and leave these two +parameters empty.
      • +
      • Enable Allocate pseudo-TTY.
      • +
      • Enable Run in privileged mode and set Run As User ID +to 0 (root user).
      • +
      +

      Figure 3 Container template parameters

      +
    • +
    +
  8. +
  9. +

    Click Save

    +
  10. +
+

Setting Cluster Access Credentials

+

The certificate file that can be identified in Jenkins is in PKCS#12 +format. Therefore, convert the cluster certificate to a PFX certificate +file in PKCS#12 format.

+
    +
  1. +

    Log in to the CCE console and go to the cluster console. Choose +Cluster Information -> Connection Information to download the +cluster certificate. The downloaded certificate contains three +files: ca.crt, client.crt, and client.key.

    +
  2. +
  3. +

    Log in to a Linux host, place the three certificate files in the +same directory, and use OpenSSL to convert the certificate into a +cert.pfx certificate. After the certificate is generated, the +system prompts you to enter a custom password.

    +
    openssl pkcs12 -export -out cert.pfx -inkey client.key -in client.crt -certfile ca.crt
    +
  4. +
  5. +

    On the Jenkins console, choose Manage Jenkins -> Manage +Credentials and click Global. You can also create a domain.

    +

    image8

    +
  6. +
  7. +

    Click Add Credential:

    +
      +
    • Kind: Select Certificate.
    • +
    • Scope: Select Global.
    • +
    • Certificate: Select Upload PKCS#12 certificate and upload the cert.pfx file generated in.
    • +
    • Password: The password customized during cert.pfx conversion.
    • +
    • ID: Set this parameter to k8s-test-cert, which can be customized.
    • +
    +

    image9

    +
  8. +
+

Using Jenkins to Build a Pipeline

+

Obtaining a long-term SWR Login Command

+

During Jenkins installation and deployment, the Docker commands have +been configured in the container. Therefore, no additional configuration +is required for interconnecting Jenkins with SWR. You can directly run +the Docker commands. You only need to obtain a long-term valid SWR login +command. For details, see Obtaining a Long-Term Valid Login Command.

+

For example, the command of this account is as follows:

+
docker login -u eu-de_otcxxxxx@xxxxx -p xxxxx swr.eu-de.otc.t-systems.com
+

Creating a Pipeline to Build and Push Images

+

In this example, Jenkins is used to build a pipeline to pull code from +the code repository, package the code into an image, and push the image +to SWR.

+

The pipeline creation procedure is as follows:

+
    +
  1. +

    Click New Item on the Jenkins page.

    +
  2. +
  3. +

    Enter a task name and select Create Pipeline.

    +

    image1

    +
  4. +
  5. +

    Configure only the pipeline script.

    +

    image2

    +

    The following pipeline scripts are for reference only. You can +customize the script. For details about the syntax, see +Pipeline.

    +

    Some parameters in the example need to be modified:

    +
      +
    • git_url: Address of your code repository. Replace it with the actual address.
    • +
    • swr_login: The login command obtained in Obtaining a long-term SWR Login Command
    • +
    • swr_region: SWR region.
    • +
    • organization: The actual organization name in SWR.
    • +
    • build_name: Name of the created image.
    • +
    • credential The cluster credential added to Jenkins. Enter +the credential ID. If you want to deploy the service in another +cluster, add the access credential of the cluster to Jenkins +again. For details, see Setting Cluster Access Credentials
    • +
    • apiserver: IP address of the API server where the application cluster is deployed. Ensure that the IP address can +be accessed from the Jenkins cluster.
    • +
    +
    //Define the code repository address.
    def git_url = 'https://github.com/cnych/jenkins-demo.git'
    //Define the SWR login command.
    def swr_login = 'docker login -u eu-dexxxx@xxxxxxx -p xxxxxxxxxxxx swr.eu-de.otc.t-systems.com'
    //Define the SWR region.
    def swr_region = 'eu-de'
    //Define the name of the SWR organization to be uploaded.
    def organization = 'batch'
    //Define the image name.
    def build_name = 'jenkins-demo'
    //Certificate ID of the cluster to be deployed
    def credential = 'k8s-token'
    //API server address of the cluster. Ensure that the address can be accessed from the Jenkins cluster.
    def apiserver = 'https://kubernetes.default.svc.cluster.local:443'

    pipeline {
    agent any
    stages {
    stage('Clone') {
    steps{
    echo "1.Clone Stage"
    git url: git_url
    script {
    build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
    }
    }
    }
    stage('Test') {
    steps{
    echo "2.Test Stage"
    }
    }
    stage('Build') {
    steps{
    echo "3.Build Docker Image Stage"
    sh "docker build -t swr.${swr_region}.otc.t-systems.com/${organization}/${build_name}:${build_tag} ."
    //${build_tag} indicates that the build_tag variable is obtained as the image tag. It is the return value of the git rev-parse --short HEAD command, that is, commit ID.
    }
    }
    stage('Push') {
    steps{
    echo "4.Push Docker Image Stage"
    sh swr_login
    sh "docker push swr.${swr_region}.otc.t-systems.com/${organization}/${build_name}:${build_tag}"
    }
    }
    stage('Deploy') {
    steps{
    echo "5. Deploy Stage"
    script {
    try {
    withKubeConfig([credentialsId: credential, serverUrl: apiserver]) {
    sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s.yaml"
    sh "kubectl apply -f k8s.yaml --record"
    //The YAML file is stored in the code repository. The following is only an example. Replace it as required.
    }
    } catch (e) {
    println "oh no! Deployment failed! "
    println e
    }
    }
    }
    }
    }
    }
    +
  6. +
  7. +

    Save the settings and execute the Jenkins job.

    +
  8. +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/devops/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/devops/index.html new file mode 100644 index 000000000..f551f8343 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/devops/index.html @@ -0,0 +1,15 @@ + + + + + +DevOps | Architecture Center + + + + + +

DevOps

+

In this category, you can find guidance for implementing DevOps methodologies on Open Telekom Cloud. Topics include CI/CD pipelines, infrastructure as code, container orchestration, and monitoring tools. Here are also provided strategies for automating workflows, improving collaboration between development and operations teams, and optimizing deployment processes to achieve faster delivery cycles and maintain high-quality software.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/index.html new file mode 100644 index 000000000..38d9ee858 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/index.html @@ -0,0 +1,16 @@ + + + + + +By Use Case | Architecture Center + + + + + +

By Use Case

+

Here you can find guidance for implementing solutions on Open Telekom Cloud based on a wide range of use cases. Topics include containerized applications and orchestration with tools like Kubernetes, microservices architectures for building scalable and resilient systems, and DevOps practices for automating workflows and streamlining collaboration between development and operations teams.

+

Additional topics cover disaster recovery strategies to ensure business continuity, big data processing for handling large-scale data analysis, AI and machine learning workloads for building intelligent applications, high-performance computing for resource-intensive tasks, serverless architectures for event-driven computing, and automation to optimize resource management and deployment processes. Here are also provided reference architectures, step-by-step guides, and real-world case studies to help organizations efficiently design, deploy, and scale cloud solutions tailored to their unique operational needs and business objectives.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/networking/create-a-public-dns-endpoint-with-externaldns/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/networking/create-a-public-dns-endpoint-with-externaldns/index.html new file mode 100644 index 000000000..dcdeedb95 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/networking/create-a-public-dns-endpoint-with-externaldns/index.html @@ -0,0 +1,112 @@ + + + + + +Create a Public DNS Endpoint with ExternalDNS | Architecture Center + + + + + +

Create a Public DNS Endpoint with ExternalDNS

+

ExternalDNS is a Kubernetes component used to manage DNS records for services and applications running in a Kubernetes cluster. It automates the creation, update, and deletion of DNS records based on the state of resources within the cluster. ExternalDNS is typically employed in scenarios where you need to expose services running inside a Kubernetes cluster to the outside world with fully qualified domain names (FQDNs), ensuring they are accessible by external users.

+

The most common use cases that ExternalDNS comes to apply are the following:

+
    +
  1. +

    Expose Services via Custom DNS Names +When you want to expose Kubernetes services (e.g., a web application or API) using custom DNS names, ExternalDNS automates the process. Instead of manually creating and updating DNS entries in your DNS provider (like Open Telekom Cloud DNS, AWS Route 53, Google Cloud DNS, or Azure DNS), ExternalDNS dynamically manages these records for you.

    +
      +
    • Use case: You deploy an app in Kubernetes, and you want it to be reachable via a domain like app.example.com. ExternalDNS can automatically configure the DNS provider to point app.example.com to the service's Elastic IP.
    • +
    +
  2. +
  3. +

    Automating DNS for Load Balancers +ExternalDNS is often used with Elastic Load Balancers that expose CCE services. For instance, when you create a LoadBalancer type service, the Open Telekom Cloud can assign (if not requested otherwise) an Elastic IP. ExternalDNS will create the corresponding DNS record and map the FQDN to that IP address.

    +
      +
    • Use case: You have a service with type LoadBalancer on CCE, and ExternalDNS creates a Open Telekom Cloud DNS Record that points your desired domain (like api.example.com) to the public IP of the Elastic Load Balancer.
    • +
    +
  4. +
  5. +

    Handling Multi-Cluster or Multi-Region Deployments +In multi-cluster or multi-region environments, you may want to expose services from multiple clusters under the same DNS domain. ExternalDNS helps manage DNS records across clusters to ensure traffic is routed to the right endpoints. It can help distribute traffic geographically using DNS routing mechanisms like geo-routing or latency-based routing.

    +
      +
    • Use case: You have a cross-region application deployed in multiple clusters in both Open Telekom Cloud regions (eu-de & eu-nl for that matter), and you want DNS to automatically direct users to the closest cluster.
    • +
    +
  6. +
  7. +

    Managing Dynamic or Short-Lived Services +If your environment frequently scales up and down, with services being created and destroyed dynamically (e.g., in CI/CD pipelines or microservices architectures), ExternalDNS ensures that DNS records are kept up-to-date with these changes.

    +
      +
    • Use case: In a microservices architecture, as new versions of services are rolled out or as services are spun up and torn down, ExternalDNS updates DNS records to reflect these dynamic changes.
    • +
    +
  8. +
  9. +

    Integrating with Ingress Controllers +When you use an Ingress controller (such as NGINX Ingress, Traefik or CCE) to expose services via HTTP/HTTPS, ExternalDNS can manage the DNS records for the hostnames defined in your Ingress resources. It ensures that DNS is automatically set up to direct traffic to the appropriate Ingress endpoints.

    +
      +
    • Use case: You define an Ingress rule to expose blog.example.com via an Ingress controller. ExternalDNS automatically creates or updates a DNS record to point to the Ingress endpoint.
    • +
    +
  10. +
  11. +

    Cloud-Native DNS Management +In cloud-native environments where automation and scalability are key, ExternalDNS helps reduce manual intervention for DNS management. It integrates with Open Telekom Cloud DNS service to provide cloud-native DNS functionality for Kubernetes workloads.

    +
      +
    • Use case: ExternalDNS automatically manages DNS entries for applications, ensuring they remain aligned with the cluster’s state.
    • +
    +
  12. +
  13. +

    Managing Wildcard DNS Records +In cases where you need to manage wildcard DNS entries, such as for multi-tenant applications or subdomain-based routing, ExternalDNS can handle the automatic creation and management of wildcard records for your Kubernetes/CCE services.

    +
      +
    • Use case: You have a wildcard DNS entry like *.tenant.example.com, and you want each tenant to be routed to different backend services based on the subdomain. ExternalDNS helps maintain the necessary DNS records.
    • +
    +
  14. +
+

Prerequisites

+

For this blueprint we will assume the existence of one CCE Cluster and a domain that you own and you can configure its DNS behaviour/parameters by your registar.

+

Configuring your registar

+

We have to transfer the management of the NS-Records of your domain to the Domain Name Service of Open Telekom +Cloud. Go on the site of your registar and make sure you configure the following:

+
    +
  • Turn off any Dynamic DNS service for the domain or the subdomains you are going to bind with Open Telekom Cloud DNS.
  • +
  • Change the NS-Records of your domain or the subdomains to point to:ns1.open-telekom-cloud.com and ns2.open-telekom-cloud.com
  • +
+

If those two prerequisites are met, then you are ready to configure a new DNS Public Zone and Record Sets for your domain in Open Telekom +Cloud. We do have two mutually exclusive options to do that:

+
    +
  • Create manually from Open Telekom Cloud Console, a new Public DNS Zone that binds to your domain and an A-Record in that zone that +points to the EIP of the Elastic Load Balancer.
  • +
  • Automate everything using +ExternalDNS.
  • +
+

Creating a dedicated DNS Service Account

+

Go to IAM management console, and create a new User that permits +programmatic access to Open Telekom Cloud resources:

+

image

+

Grant this User the following permissions or add him directly to User +Group dns-admins (if it exists, otherwise create it for a more rigid permissions management but that's completely optional)

+

image

+

Deploying ExternalDNS on CCE

+

We are going to deploy ExternalDNS with Helm as well. First let's lay +down the configuration of the chart:

+
overrides.yaml
sources:
- crd
- service
- ingress
provider: designate
combineFQDNAnnotation: true
crd:
create: true
logFormat: json
designate:
username: "OTCAC_DNS_ServiceAccount"
password: <<OTCAC_DNS_ServiceAccount_PASSWORD>>
authUrl: "https://iam.eu-de.otc.t-systems.com:443/v3"
regionName: "eu-de"
userDomainName: "OTCXXXXXXXXXXXXXXXXXXXX"
projectName: "eu-de_XXXXXXXXXXX"
+
warning

Special attention required here. Although DNS is a global +service, all changes have to be applied in Region eu-de.

+

Install the chart (it will deploy all the necessary resources in an +automatically created namespace called external-dns:

+
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

helm upgrade --install -f overrides.yaml external-dns bitnami/external-dns -n external-dns --create-namespace
+

Verification

+

We have now laid all the groundwork in order to automatically provision +a Public DNS Zone and a dedicated A-Record that will bind the Elastic IP of our +Elastic Load Balancer with the FQDN of thesubdomain we configure above. For that matter we need to install +a Custom Resource based on a CRD installed by ExternalDNS that is called DNSEndpoint:

+
dns-endpoint.yaml
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: keycloak
namespace: keycloak
spec:
endpoints:
- dnsName: blog.example.com
recordTTL: 300
recordType: A
targets:
- XXX.XXX.XXX.XXX
+
note

Replace the placeholder value XXX.XXX.XXX.XXX of targets with the Elastic IP Address that is +assigned to your Elastic Load Balancer. Additionally, replace the value of dnsName with the FQDN of your (sub)domain.

+

Wait for a couple of seconds, till the reconciliation loop of the +ExternalDNS controller is done, and if all went well you should now see +the Record Sets of your Public Zone populated with various entries:

+

image

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/networking/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/networking/index.html new file mode 100644 index 000000000..63ed8ae23 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/networking/index.html @@ -0,0 +1,15 @@ + + + + + +Networking | Architecture Center + + + + + +

Networking

+

In this category, you can find guidance for designing and managing networking solutions on Open Telekom Cloud. Topics include network architecture, virtual private clouds (VPCs), load balancing, VPNs, and network security. Here are also provided strategies for optimizing network performance, ensuring high availability, and implementing secure and scalable connectivity across different cloud environments.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/observability/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/observability/index.html new file mode 100644 index 000000000..4854bbb37 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/observability/index.html @@ -0,0 +1,15 @@ + + + + + +Observability | Architecture Center + + + + + +

Observability

+

In this category, you can find guidance for implementing observability solutions on Open Telekom Cloud. Topics include monitoring, logging, tracing, and metrics collection for cloud-native applications and infrastructure. Here are also provided strategies and tools for gaining deep insights into system performance, detecting anomalies, ensuring operational efficiency, and maintaining high availability across environments.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/index.html new file mode 100644 index 000000000..f3915c908 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/index.html @@ -0,0 +1,108 @@ + + + + + +CCE Logging with Grafana Loki & Promtail | Architecture Center + + + + + +

CCE Logging with Grafana Loki & Promtail

+

In this blueprint, we'll consolidate all the logs generated in our Kubernetes cluster into a neat, real-time dashboard in Grafana.

+

Grafana is an analytics and interactive visualization platform. It offers a rich variety of charts, graphs, and alerts and connects to a plethora of supported data sources such as Prometheus, time-series databases, or well-known RDBMS. Grafana allows you to query, visualize, and create alerts on your metrics regardless of where they are stored.

+
tip

Think of it as the equivalent of Kibana in the ELK stack.

+

Grafana Loki is a logs aggregation system designed to be horizontally scalable, highly available, and cost-effective. Inspired by Prometheus, Loki does not index the contents of the logs but rather a set of labels for each log stream. It was launched in 2018 by Grafana Labs.

+

image

+

Loki uses Promtail to aggregate logs. Promtail is a logs collector agent that collects, labels, and ships logs to Loki. It runs on each Kubernetes node, using the same service discovery as Prometheus and supporting similar methods for labeling, transforming, and filtering logs before their ingestion to Loki.

+

Loki groups log entries into streams and indexes them with labels, which reduces overall costs and the time between log entry ingestion and query availability.

+
tip

Think of Loki as the equivalent (not 1-to-1 but in a broader context) of Elasticsearch in the ELK stack.

+

Prerequisites

+
    +
  1. CCE cluster.
  2. +
  3. Grafana installation.
  4. +
  5. Grafana Loki installation.
  6. +
  7. Promtail agent on every node of the CCE cluster.
  8. +
+

Installing Grafana

+

The installation is straightforward using Helm. If you haven’t installed Helm on your workstation, you can do it either with brew on macOS:

+
brew install helm
+

or with the following bash commands on Debian/Ubuntu Linux:

+
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm --yes
+

Now, we can install the Helm chart for Grafana:

+
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana --namespace grafana --create-namespace
+

image

+
note

By default, the service/grafana will be of type ClusterIP. If you are not working on CCE, you can use MetalLB as a network load balancer and patch the service to be of type LoadBalancer. Alternatively, port-forwarding this service will suffice for now.

+

Installing Loki

+

Loki consists of multiple components/microservices that can be deployed in three different modes:

+

image

+

that can be deployed in 3 different modes:

+
    +
  1. Monolithic mode: All of Loki’s microservice components run inside a single process as a single binary.
  2. +
  3. Simple Scalable mode: Separate read and write paths.
  4. +
  5. Microservices mode: Every Loki component runs as a distinct process.
  6. +
+
important

The scalable installation requires an S3 compatible object store such as AWS S3, Google Cloud Storage, Open Telekom Cloud OBS, or a self-hosted store like MinIO. In monolithic deployment mode, only the filesystem can be used for storage.

+

In this lab, we will use the microservices deployment mode with Open Telekom Cloud OBS as Loki’s storage. We will configure and install Loki and Promtail using Helm charts.

+

First, let's download the default chart values for each chart and make the necessary changes. For Loki, assuming you chose the loki-distributed chart:

+
helm show values grafana/loki-distributed > loki-distributed-overrides.yaml
+
    +
  1. If you are using S3 compatible storage, update the object and shared store target to S3 in your Helm chart values:
  2. +
+

image

+
    +
  1. Configure your storage to point to the designated S3 bucket:
  2. +
+

image

+
note

The format of S3 endpoint is s3://{AK}:{SK}@{endpoint}/{region}/{bucket}

+
    +
  1. Next you have to enable the compactor:
  2. +
+

image

+
    +
  1. Then configure the compactor:
  2. +
+

image

+
    +
  1. Now that the Loki values are set, install Loki and then move on to Promtail:
  2. +
+
helm upgrade --install --values loki-distributed-overrides.yaml loki grafana/loki-distributed -n grafana-loki --create-namespace
+

Get all the components that we installed from the Loki chart:

+
kubectl get all -n grafana-loki
+

image

+

Installing Promtail

+

We need the endpoint of Loki’s gateway as the designated endpoint that Promtail will use to push logs to Loki. In our case, that would be loki-loki-distributed-gateway.grafana-loki.svc.cluster.local. Add this endpoint to the Promtail chart values:

+
helm show values grafana/promtail > promtail-overrides.yaml
+

image

+

We are now ready to deploy Promtail. Run the command and wait for all pods to reach a Ready state:

+
helm upgrade --install --values promtail-overrides.yaml promtail grafana/promtail -n grafana-loki
+

Configuring Grafana Data Sources & Dashboard

+
    +
  1. With all deployments completed, set up Grafana. As mentioned, Grafana has a simple service. Port-forward it and access Grafana directly from [http://localhost:8080/](http://localhost:8080/):
  2. +
+
kubectl port-forward service/grafana 8080:80 -n grafana
+
note

You can also expose this service in other ways, either by assigning an external IP via a Load Balancer or as an ingress route through your chosen Ingress solution.

+

image

+
    +
  1. You will need these credentials to log in. The default user is admin, but you will need to retrieve the password. Get all the Secrets in the grafana namespace:
  2. +
+
kubectl get secrets -n grafana
+

image

+

Extract and decode the password:

+
kubectl get secret grafana -n grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
+
    +
  1. Now logged into the Grafana Dashboard, add Grafana Loki as a data source:
  2. +
+

image

+

Use the endpoint of the Grafana Loki gateway service as the URL [http://loki-loki-distributed-gateway.grafana-loki.svc.cluster.local](http://loki-loki-distributed-gateway.grafana-loki.svc.cluster.local/). Test, save, and exit!

+

image

+
    +
  1. Finally, add a dashboard to view your logs. Start with an existing dashboard and tailor it to your needs. A good starting point is this dashboard: : https://grafana.com/grafana/dashboards/15141-kubernetes-service-logs/
  2. +
+

Copy the dashboard template ID and paste it into the text field of your Grafana Dashboard import page:

+

image

+

Now all the pieces should come together, and you should be able to see logs from your Kubernetes workloads directly in your Grafana interface, providing an almost real-time experience:

+

image

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam/index.html new file mode 100644 index 000000000..1e60d6555 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iam/index.html @@ -0,0 +1,112 @@ + + + + + +Authentik as an Identity Provider for IAM | Architecture Center + + + + + +

Authentik as an Identity Provider for IAM

+

This guide will walk you through the process of integrating authentik, with Identity and Access Management (IAM) of Open Telekom Cloud using OAuth 2.0.

+

Prerequisites

+

Before starting the integration, ensure you have:

+
    +
  • An authentik installation up and running
  • +
  • Administrative privileges on both authentik and your IAM system
  • +
  • Basic understanding of OAuth 2.0 concepts and flows
  • +
+

Configuring Authentik as an OAuth Provider

+
    +
  1. Log in to your authentik admin panel
  2. +
  3. Navigate to Applications -> Providers
  4. +
  5. Create a new OAuth2/OpenID Provider
  6. +
  7. Configure the provider settings: +
      +
    • Name: Give your provider a descriptive name
    • +
    • Client type: Public
    • +
    • Client ID: Auto-generated or specify your own
    • +
    • Redirect URIs: Enter the callback URL from your IAM: https://auth.otc.t-systems.com/authui/oidc/post
    • +
    • Under Advanced protocol settings -> Scopes: Select the required scopes (e.g., openid, profile, email, groups) +image
    • +
    +
  8. +
  9. Save the provider configuration
  10. +
  11. Note down the Client ID, and Authorization/Token endpoints
  12. +
+

Configuring IAM

+

Create a new IAM Identity Provider

+
    +
  1. Log in to your Open Telekom Cloud Console
  2. +
  3. Navigate to IAM and Identity Providers under Management & Deployment
  4. +
  5. Select Identity Providers and click Create Identity Provider to create a new identity provider with the following values: +
      +
    • Name: Give your provider a descriptive name
    • +
    • Protocol: OpenID Connect
    • +
    • SSO Type: Virtual User
    • +
    • Status: Enabled +image
    • +
    +
  6. +
+

Configure the IAM Identity Provider

+

Find your newly created provider in Identity Providers list and click Modify:

+

image

+

Set the following values:

+
    +
  • Access Type: Programmatic access and management console access
  • +
  • Identity Provider URL: URL of authentik (e.g. https://test-domain.com/application/o/authentik-iam/)
  • +
  • Client ID: The id of your client as defined in Configuring Authentik as an OAuth Provider
  • +
  • Authorization Endpoint: copy the value from key authorization_endpoint of the OpenID Endpoint Configuration (e.g. https://test-domain.com/application/o/authorize/)
  • +
  • Scopes: Select the required scopes (e.g., openid, profile, email, groups)
  • +
  • Response Mode: form_post
  • +
  • Signing Key: Value of the key jwks_uri of the OpenID Endpoint Configuration JSON output +image
  • +
+
note

All of the links for your setup can be found under Overview page of the OAuth2/OpenID Provider in Authentik admin dashboard. +image

+
info

For the Signing Key you should open link provided under JWKS URL and copy the whole json file content to the respective field.

+

Creating an Application and Connecting the Provider

+

To enable users to authenticate, you need to create an application in Authentik and connect it to the provider. Follow these steps:

+
    +
  1. In the Authentik web interface, navigate to Applications -> Applications.
  2. +
  3. Click on Create.
  4. +
  5. Fill in the following details: +
      +
    • Name: Your Application Name
    • +
    • Slug: your-application-slug
    • +
    • Provider: Select the provider you created earlier.
    • +
    • Launch URL: Specify the URI where Authentik should redirect users after authentication. You can find this link under Programmatic access and management console accesses of the previously created Identity provider in your tenant.
    • +
    +
  6. +
+

image

+
    +
  1. Save the application settings.
  2. +
+

Configure the IAM Identity Provider Conversion Rules

+

You can use identity conversion rules to map the identities of existing users to Open Telekom Cloud and control their access to cloud resources.

+

By default federated users are named FederationUser in the Open Telekom Cloud platform. These users can only log in to +the cloud platform and they do not have any other permissions. You can configure identity conversion rules on the +IAM console to achieve the following:

+
    +
  • Display enterprise users with different names in the cloud platform.
  • +
  • Assign permissions to enterprise users to use the cloud platform resources by mapping these users to IAM user groups. +Ensure that you have created the required user groups.
  • +
+

This can be done by editing the Identity Conversion Rules. Edit the conversion rule of previously created Identity Provider in IAM:

+

image

+

Paste the following conversion rule in the Edit Rule panel:

+
[
{
"remote": [
{
"type": "email"
},
{
"type": "groups"
}
],
"local": [
{
"user": {
"name": "fidp-{0}"
}
},
{
"groups": "{1}"
}
]
}
]
+

The remote part describes the requested Scopes (profile or email) of the user. +The local part defines the mapping between the remote properties and the local IAM. The user will get a name +as the value of fidp-<user-email> and will automatically belong to the groups on your tenant which have the same name as the groups that the user is a member of on authentik.

+
danger

Administrators must exercise extreme caution when naming groups in Authentik. Group names are critical because conversion rules within the Identity provider automatically assign users to groups based on these names in this configuration.

If a group is improperly named or if the naming conventions are not strictly followed, users might be incorrectly assigned to sensitive groups. This misconfiguration could grant unauthorized users elevated permissions or access to restricted resources, thereby posing a significant security risk to the tenant.

Always use clear, descriptive, and unique names for groups that align with your access control policies. Regularly review and audit group names and associated conversion rules to ensure they are correctly configured and do not inadvertently expose the tenant to security vulnerabilities.

+
info

You can find more detailed info about Conversion Rules under:

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik/index.html new file mode 100644 index 000000000..a1b3932a4 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik/index.html @@ -0,0 +1,54 @@ + + + + + +Authentik | Architecture Center + + + + + +

Authentik

+

Authentik is a modern, open-source Identity Provider (IdP) that offers flexible and secure authentication and authorization solutions for organizations of all sizes. It provides a comprehensive suite of identity management features, allowing businesses to centralize user authentication, implement single sign-on (SSO), and manage access to various applications and services.

+

Key Features

+
    +
  • Single Sign-On (SSO): Enables users to access multiple applications with a single set of credentials.
  • +
  • Multi-Factor Authentication (MFA): Supports various second-factor methods for enhanced security.
  • +
  • User Lifecycle Management: Facilitates user provisioning, de-provisioning, and self-service capabilities.
  • +
  • Access Control: Provides fine-grained access policies based on user attributes and context.
  • +
  • Federation: Supports identity federation protocols like SAML, OAuth 2.0, and OpenID Connect.
  • +
  • Customizable UI: Offers a flexible, brandable user interface for login and self-service pages.
  • +
  • API-first Design: Enables easy integration and automation with other systems.
  • +
+

Use Cases

+
    +
  1. Enterprise SSO: Centralize authentication for all corporate applications.
  2. +
  3. Customer Identity and Access Management (CIAM): Manage customer identities and access to services.
  4. +
  5. API Security: Secure APIs using OAuth 2.0 and OpenID Connect.
  6. +
  7. DevOps and Infrastructure Access: Control access to development and infrastructure resources.
  8. +
  9. Compliance and Auditing: Meet regulatory requirements with comprehensive logging and reporting.
  10. +
+

Architecture

+

Authentik is designed with a modular, microservices-based architecture that ensures scalability and flexibility. The main components include:

+
    +
  1. Core Service: Handles the core logic, user management, and policy decisions.
  2. +
  3. Web Interface: Provides the user-facing frontend for authentication and self-service.
  4. +
  5. API: Offers a RESTful API for integration and automation.
  6. +
  7. Outposts: Edge proxies that can be deployed close to applications for improved performance and offline capabilities.
  8. +
  9. Providers: Modules that implement various authentication and federation protocols.
  10. +
  11. Stages: Configurable authentication steps that can be combined to create complex flows.
  12. +
  13. Policies: Rules that determine access rights and trigger actions based on conditions.
  14. +
+

Integration

+

Authentik integrates with a wide range of systems and protocols, including:

+
    +
  • LDAP and Active Directory
  • +
  • SAML 2.0
  • +
  • OAuth 2.0 and OpenID Connect
  • +
  • SCIM for user provisioning
  • +
  • Various MFA providers (TOTP, WebAuthn, etc.)
  • +
+
warning

While Authentik provides a comprehensive identity management solution, proper configuration and security best practices are essential for maintaining a secure environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentik/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentik/index.html new file mode 100644 index 000000000..44719f637 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentik/index.html @@ -0,0 +1,62 @@ + + + + + +Deploy Authentik on CCE | Architecture Center + + + + + +

Deploy Authentik on CCE

+

This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.

+

Prerequisites

+

Before starting the installation, ensure you have the following:

+
    +
  • A running Kubernetes cluster (CCE)
  • +
  • Helm installed on your local machine
  • +
+

Generating Secure Passwords

+

Begin by generating secure passwords for the database and cache. Use one of these commands:

+
pwgen -s 50 1
+

or

+
openssl rand 60 | base64 -w 0
+

Creating the Values File

+
    +
  1. Create a file named values.yaml in your working directory.
  2. +
  3. Add the following content to the file:
  4. +
+
values.yaml
authentik:
secret_key: "PleaseGenerateASecureKey"
error_reporting:
enabled: true
postgresql:
password: "ThisIsNotASecurePassword"

server:
ingress:
ingressClassName: nginx
enabled: true
hosts:
- authentik.test-domain.com

postgresql:
enabled: true
auth:
password: "ThisIsNotASecurePassword"
redis:
enabled: true
+
note
    +
  • Replace PleaseGenerateASecureKey and ThisIsNotASecurePassword with secure passwords you generated earlier.
  • +
  • Here we are using nginx as ingress controller if you use other ingress controller (like traefik or kong) specify it under path server.ingress.ingressClassName. Also replace authentik.test-domain.com with the domain name you intend for Authentik.
  • +
+

Installing Authentik Using Helm

+
    +
  1. +

    Add the authentik Helm repository:

    +
    helm repo add authentik https://charts.goauthentik.io
    +
  2. +
  3. +

    Update your Helm repositories:

    +
    helm repo update
    +
  4. +
  5. +

    Install authentik using Helm:

    +
    helm upgrade --install authentik authentik/authentik -f values.yaml
    +

    This command will install authentik or upgrade an existing installation using the values specified in your values.yaml file.

    +
  6. +
+

Accessing Authentik

+

Once the installation is complete, you can access authentik by following these steps:

+
    +
  1. Open your web browser and navigate to https://<ingress-host-name>/if/flow/initial-setup/.
  2. +
  3. Set a password for the default akadmin user.
  4. +
+

Setting admin password for first time: +image

+

Authentik dashboard: +image

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-github/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-github/index.html new file mode 100644 index 000000000..47e3b54e7 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-github/index.html @@ -0,0 +1,171 @@ + + + + + +Identity Federation with GitHub | Architecture Center + + + + + +

Identity Federation with GitHub

+

Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.

+

How It Works

+
    +
  1. User Initiates Login: When a user attempts to access an application, they are presented with an option to log in using GitHub.
  2. +
  3. Redirection to GitHub: The application redirects the user to GitHub's authentication page.
  4. +
  5. User Authenticates: The user enters their GitHub credentials (username and password) to log in.
  6. +
  7. GitHub Issues Token: Upon successful authentication, GitHub generates an OAuth token and sends it back to the application.
  8. +
  9. Token Validation: The application validates the token with GitHub to ensure its authenticity.
  10. +
  11. Access Granted: Once validated, the user is granted access to the application based on their GitHub identity and associated permissions.
  12. +
+

Benefits

+
    +
  • Simplified User Management: Administrators can manage user access through GitHub, reducing the need to maintain separate credentials for each application.
  • +
  • Enhanced Security: By using GitHub's robust authentication mechanisms, applications can benefit from multi-factor authentication (MFA) and other security features.
  • +
  • Improved User Experience: Users can access multiple applications with a single set of credentials, reducing login fatigue and enhancing productivity.
  • +
  • Centralized Identity Management: Organizations can centralize their identity management practices, making it easier to enforce security policies and compliance requirements.
  • +
+

Use Cases

+
    +
  • Development Environments: Developers can use their GitHub accounts to access development tools, repositories, and CI/CD pipelines without needing to manage multiple logins.
  • +
  • Corporate Applications: Employees can use their GitHub credentials to access internal corporate applications, streamlining the onboarding process and enhancing security.
  • +
  • Open Source Projects: Open source contributors can authenticate using their GitHub accounts, ensuring a seamless experience across various project management and collaboration tools.
  • +
+

Connecting Authentik with GitHub for Federation and Social Login

+

This guide will walk you through the process of setting up GitHub as an authentication source in authentik, allowing users to log in using their GitHub credentials.

+

Prerequisites

+

Before you begin, make sure you have:

+
    +
  • An authentik installation
  • +
  • Access to your GitHub account
  • +
  • Administrative access to both authentik and GitHub
  • +
+
Note

Throughout this guide, we'll use the following placeholders:

    +
  • authentik.test-domain.com as the FQDN of your authentik installation
  • +
  • test-domain.com as your site's homepage URL
  • +
+

Setting up GitHub OAuth App

+
    +
  1. Go to GitHub Developer Settings: https://github.com/settings/developers
  2. +
  3. Click on Register a new application +image
  4. +
  5. Fill in the application details: +
      +
    • Application Name: Choose a recognizable name (e.g., "authentik")
    • +
    • Homepage URL: Enter your site's URL (e.g., www.test-domain.com)
    • +
    • Authorization callback URL: https://authentik.test-domain.com/source/oauth/callback/github +image
    • +
    +
  6. +
  7. Click Register Application
  8. +
  9. On the next page, note down the Client ID
  10. +
  11. Click Generate a new client secret and immediately copy it
  12. +
+
warning

You won't be able to see the client secret again, so make sure to save it securely.

+

Configuring Authentik

+
    +
  1. +

    In authentik, navigate to Directory -> Federation & Social login

    +
  2. +
  3. +

    Click Create -> Github OAuth Source

    +
  4. +
  5. +

    Fill in the source details:

    +
      +
    • Name: Choose a name (e.g., "GitHub")
    • +
    • Slug: github (or choose a custom slug, but remember to update URLs accordingly)
    • +
    • Consumer Key: Paste the Client ID from GitHub
    • +
    • Consumer Secret: Paste the Client Secret from GitHub +image
    • +
    +
  6. +
  7. +

    Save the configuration

    +
  8. +
+
tip

The User Matching Mode in Authentik can be configured to match users based on different identifiers including email or username

    +
  • +

    Email Matching: This mode matches users based on their email address. It is often the most reliable option because email addresses are generally unique and consistent across different platforms. However, you must ensure that users' email addresses are standardized across all identity providers. There is also a risk if users have multiple accounts with different email addresses. Also the admin should make sure that the Email is already validated.

    +
  • +
  • +

    Username Matching: This mode matches users based on their username. This can be useful in environments where usernames are more consistent or standardized across systems. However, it poses a higher risk of conflicts, especially if users have different usernames on different platforms. It's crucial to ensure that usernames are unique and managed consistently to avoid potential mismatches or user duplication.

    +
  • +

When selecting the matching mode, carefully consider the consistency and uniqueness of either the email or username across the identity providers you plan to integrate.

+

Your GitHub OAuth Source in authentik is now set up and ready to use.

+

Adding the GitHub Source to the Login Page

+

To make the GitHub login option visible on your authentik login page, you'll need to add it to your login flow. Refer to the authentik documentation for detailed steps on how to add sources to the default login page.

+

Adding GitHub Users to a Default Group

+

To automatically add users who log in via GitHub to a default group in authentik, you can use a post-authentication flow. This process involves creating a group, setting up a policy, and adding the policy to a flow that runs after successful authentication. Here's how to do it:

+

Step 1: Create a New Group

+
    +
  1. Go to Directory -> Groups
  2. +
  3. Click Create
  4. +
  5. Name the group (e.g., "gitHub-users") +image
  6. +
  7. Save the group
  8. +
+

Step 2: Modifying Enrollment flow

+
    +
  1. Navigate to Flows and Stages -> Flows
  2. +
  3. Under Enrollment section select the enrollment flow which is connected to the Github OAuth Source its default name is default-source-enrollment
  4. +
  5. Click Stage Bindings
  6. +
  7. Click Edit Stage of stage which has type of User Write Stage
  8. +
  9. Set a default group under Group for the newly created users which login using github +image
  10. +
  11. Click Update
  12. +
+

Step 4: Configure Post-Authentication Flow

+
    +
  • If you created a new Enrollment flow, make sure it's set as a Enrollment flow in your Github OAuth Source configuration
  • +
  • If you're using an existing flow, verify that it runs after successful authentication
  • +
+

Now, when users log in successfully via GitHub, they will be automatically added to the specified group. This allows you to manage permissions and access control for GitHub users more easily within authentik.

+
Note

Remember to test this setup thoroughly in a non-production environment before implementing it in your live system. Ensure that the group assignment works as expected and doesn't interfere with other authentication processes.

+

Checking GitHub Organization Membership

+

If you want to restrict access to users who are members of a specific GitHub organization, you can implement a policy in your authentik flows. This feature requires authentik version 2021.12.5 or later.

+
Security Risk

It is crucial to verify that users belong to a specific GitHub organization before granting them access to your resources. Failing to implement this check can pose a significant security threat to your tenant.

Without verifying GitHub organization membership, anyone with a GitHub account could potentially log in to your system, which would leave your tenant open to unauthorized access. This effectively makes your application public, which is a severe security concern.

    +
  • B2C Scenario Exception: If you are intentionally offering a B2C (Business-to-Consumer) authentication for a SaaS (Software as a Service) scenario, bypassing this check might be acceptable. However, in most cases this should be strictly prohibited to prevent unauthorized access.
  • +
+
    +
  1. +

    Navigate to Directory -> Federation and Social login and edit previously created Github OAuth Source

    +
  2. +
  3. +

    Add the read:org scope to your GitHub OAuth Source and save it

    +
  4. +
  5. +

    Then navigate to Flows and Stages -> Flows -> Enrollment and click default-source-enrollment

    +
  6. +
  7. +

    Go to the Policy / Group / User Bindings tab, then Create and bind Policy

    +
  8. +
  9. +

    Create a new policy of type Expression Policy with the following Python code as Expression:

    +
    # Ensure flow is only run during oauth logins via Github
    if context["source"].provider_type != "github":
    return True

    accepted_org = "your_org_name"

    connection = context["goauthentik.io/sources/connection"]
    access_token = connection.access_token
    github_username = context["oauth_userinfo"]

    orgs_response = requests.get(
    "https://api.github.com/user/orgs",
    auth=(github_username["login"], access_token),
    headers={
    "accept": "application/vnd.github.v3+json"
    }
    )
    orgs_response.raise_for_status()
    orgs = orgs_response.json()

    user_matched = any(org['login'] == accepted_org for org in orgs)
    if not user_matched:
    ak_message(f"User is not member of {accepted_org}.")
    return user_matched
    +
  10. +
  11. +

    Under Edit Binding ensure that the policy is Enabled and Failure result is Don't pass and save the policy.

    +
  12. +
  13. +

    Go back and edit the default-source-enrollment flow, under Behavior settings ensure that Denied action is set to MESSAGE and Policy engine mode is set to all

    +
  14. +
+
tip

For Authentik to successfully check a user's membership in a GitHub organization, the following condition must be met:

    +
  • OAuth App Configuration: The Github OAuth App used for authentication should either be created by the GitHub organization or explicitly trusted by the organization. If the OAuth App is created by a different user or organization, the GitHub organization must trust the app for Authentik to retrieve and verify the organizations to which the user belongs.
  • +

Ensuring these configurations are in place is essential for the secure and correct functioning of the organization membership verification policy.

+
info

This part is taken form official authentik documentation.

+

IAM Identity Provider Conversion Rules

+

After creating and connecting the Identity provider on your tenant to the authentik if you wish to give users which login with github access to your tenant you can use the following conversion rules.

+
info

If you haven't created a Identity Provider on your tenant first follow steps described in Connecting Authentik with IAM for Login and then use the conversion rules given below.

+

Edit the conversion rule of previously created Identity Provider in IAM:

+

Paste the following conversion rule in the Edit Rule panel:

+
[
{
"remote": [
{
"type": "email"
},
{
"any_one_of": [
"github-users"
],
"type": "groups"
}
],
"local": [
{
"user": {
"name": "fidp-{0}"
}
},
{
"group": {
"name": "ecs-admin"
}
}
]
}
]
+

The remote part describes the requested Scopes (profile or email) of the user. +The local part defines the mapping between the remote properties and the local IAM. The user will get a name +as the value of fidp-<user-email> and will automatically belong to the ecs-admin if it is a member of github-users.

+
warning

Notice that the ecs-admin group is created in advanced so the IAM can find the group locally and it would automatically add all the users which belong to the github-users in remote identity provider to this local group. If it cannot match the user to any group the access of the user would be simply denied.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vault/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vault/index.html new file mode 100644 index 000000000..cda669949 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vault/index.html @@ -0,0 +1,177 @@ + + + + + +Secrets management with CCE and Hashicorp Vault | Architecture Center + + + + + +

Secrets management with CCE and Hashicorp Vault

+

Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.

+

With centralized secret management in place, it's not necessary to keep +secrets used by various applications spread across DevOps environments. +This helps to close some security attack vectors (like secret +sprawl, +security islands), but +usually introduces a problem of the so-called Secret +Zero +as a key to the key storage.

+

Solution Design

+

Vault is an open-source software, provided and maintained by Hashicorp, +that addresses this very problem. It is considered one of the reference +solutions for it. This article demonstrates how to utilize +infrastructure authorization with Hashicorp Vault in an CCE-powered +setup. As an example workload, we deploy a Zookeeper cluster with +enabled TLS protection. Certificates for Zookeeper are stored in Vault, +and they oblige required practices like rotations or audits. Zookeeper +can easily be replaced by any other component that requires access to +internal credentials. TLS secrets are kept in the Vault. They are being +read by Vault Agent component running as a sidecar in Zookeeper service +pod and writes certificates onto the file system. Zookeeper services +reads certificates populated by Agent. Vault Agent is configured to use +password-less access to Vault. Further in the document it is explained +how exactly this is implemented.

+

Establishing trust between CCE and Vault

+

Before any application managed by the CCE is able to login to Vault +relying on infrastructure based authentication it is required to do some +steps on the Vault side. Kubernetes auth plugin is enabled and +configured to only access requests from specific Kubernetes cluster by +providing its Certificate Authority. To allow several multiple different +CCE clusters to use Vault, a dedicated auth path is going to be used.

+
vault auth enable -path kubernetes_cce1 kubernetes
vault write auth/kubernetes_cce1/config \
kubernetes_host="$K8S_HOST" \
kubernetes_ca_cert="$SA_CA_CRT"
+

Since in our example a dedicated service account with token is being +periodically rotated using client JWT as reviewer +JWT +can be used.

+

Access rules for Vault

+

Having Auth plugin enabled, as described above, CCE workloads are able +to authenticate to Vault, but they can do nothing. It is now necessary +to establish further level of authorization and let particular service +accounts of CCE to get access to secrets in Vault.

+

For the scope of the use case, we grant the Zookeeper service account +from its namespace access to the TLS secrets stored in Vault's +key-value store. For that a policy providing a read-only access to the +/tls/zk* and /tls/ca paths is created.

+
vault policy write tls-zk-ro - <<EOF
path "secret/data/tls/zk_*" {capabilities = ["read"] }
path "secret/data/tls/ca" {capabilities = ["read"] }
path "secret/metadata/tls/zk_*" {capabilities = ["read"] }
path "secret/metadata/tls/ca" {capabilities = ["read"] }
EOF
+

Next granting the policy to the particular requestor (zookeeper service +account in zookeeper namespace) must be done.

+
vault write auth/kubernetes_cce1/role/zookeeper \
bound_service_account_names=zookeeper \
bound_service_account_namespaces=zookeeper \
policies=tls-zk-ro \
ttl=2h
+

With this done token of the service account zookeeper in the zookeeper +namespace is able to access to the vault for reading secrets located +under /secret/tls path. And since it is highly recommended +to follow the least required privilege principle only read only access +to the TLS data is granted. A time to live of two hours is being used +here meaning that once application authorize to Vault the token it gets +can be used during next two hours. After two hours Vault token becomes +invalid and Vault Agent gets a new one valid for next 2 hours. This +needs to be carefully aligned with the time to live or the service +account token to minimize their overlap. It is advised to keep it +relatively short.

+

This is one the most sensitive steps in the whole configuration, since +the applications deployed in the Kubernetes may escape their scope or +get compromised by attackers. Reducing the number of secrets the +accessor can read mitigates this risk.

+

Populating secrets in Vault

+

Vault offer two options to access TLS certificates:

+ +

Vault enables users not only to store TLS certificates data in the +key-value store, but also to create and revoke them. To keep this +tutorial simple enough we are not going to do this and just upload +generated certificates into the KV store. For production setups this +example can be easily extended with extra actions.

+
vault kv put secret/tls/ca certificate=@ca.crt
vault kv put secret/tls/zk_server certificate=@zk_server.crt private_key=@zk_server.key
vault kv put secret/tls/zk_client certificate=@zk_client.crt private_key=@zk_client.key
+
import fmt
+

Certificate paths and property names used here are referenced by the +Zookeeper installation.

+

Deploying Zookeeper

+

Now that the secrets are stored safely in Vault and only allowed +applications can fetch them it is time to look how exactly the +application accesses the secrets. Generally, utilizing Vault requires +modification of the application. Vault +agent is a tool that was +created to simplify secrets delivery for applications when it is hard or +difficult to change the application itself. The Agent is taking care of +reading secrets from Vault and can deliver them to the file system.

+

There are many way how to properly implement Zookeeper service on the +Kubernetes. The scope of the blueprint is not Zookeeper itself, but +demonstrating how an application can be supplied by required +certificates. The reference architecture described here bases on the +best practices gathered from various sources and extended by HashiCorp +Vault. It overrides default Zookeeper start scripts in order to allow +better control of the runtime settings and properly fill all required +configuration options for TLS to work. Other methods of deploying +Zookeeper can be easily used here instead.

+
    +
  1. Create a Kubernetes namespace named zookeeper.
  2. +
+
kubectl create namespace zookeeper
+
    +
  1. Create a Kubernetes service account named zookeeper.
  2. +
+
kubectl create serviceaccount zookeeper
+
    +
  1. In Kubernetes a service account provides an identity for the +services running in the pod so that the process can access +Kubernetes API. The same identity can be used to access Vault, but +require one special permission -access to the token review API of +the Kubernetes. When instead a dedicated reviewer JWT is used, this +step is not necessary, but it also means long-living sensitive data +is used and frequently transferred over the network. More details on +various ways to use Kubernetes tokens to authorize to Vault can be +found +here.
  2. +
+
kubectl create clusterrolebinding vault-client-auth-delegator \
--clusterrole=system:auth-delegator \
--serviceaccount=zookeeper:zookeeper
+
    +
  1. Create a Kubernetes ConfigMap with all required configurations. One +possible approach is to define dedicated health and readiness check +scripts and to override automatically created Zookeeper start +script. This is especially useful when TLS protection is enabled, +but default container scripts do not support this.
  2. +
+
---
apiVersion: v1
kind: ConfigMap
metadata:
name: zookeeper-config
namespace: "zookeeper"
data:
ok: |
#!/bin/sh
# This sript is used by live-check of Kubernetes pod
if [ -f /tls/ca.pem ]; then
echo "srvr" | openssl s_client -CAfile /tls/ca.pem -cert /tls/client/tls.crt \
-key /tls/client/tls.key -connect 127.0.0.1:${1:-2281} -quiet -ign_eof 2>/dev/null | grep Mode

else
zkServer.sh status
fi

ready: |
#!/bin/sh
# This sript is used by readiness-check of Kubernetes pod
if [ -f /tls/ca.pem ]; then
echo "ruok" | openssl s_client -CAfile /tls/ca.pem -cert /tls/client/tls.crt \
-key /tls/client/tls.key -connect 127.0.0.1:${1:-2281} -quiet -ign_eof 2>/dev/null
else
echo ruok | nc 127.0.0.1 ${1:-2181}
fi

run: |
#!/bin/bash
# This is the main starting script
set -a
ROOT=$(echo /apache-zookeeper-*)
ZK_USER=${ZK_USER:-"zookeeper"}
ZK_LOG_LEVEL=${ZK_LOG_LEVEL:-"INFO"}
ZK_DATA_DIR=${ZK_DATA_DIR:-"/data"}
ZK_DATA_LOG_DIR=${ZK_DATA_LOG_DIR:-"/data/log"}
ZK_CONF_DIR=${ZK_CONF_DIR:-"/conf"}
ZK_CLIENT_PORT=${ZK_CLIENT_PORT:-2181}
ZK_SSL_CLIENT_PORT=${ZK_SSL_CLIENT_PORT:-2281}
ZK_SERVER_PORT=${ZK_SERVER_PORT:-2888}
ZK_ELECTION_PORT=${ZK_ELECTION_PORT:-3888}
ID_FILE="$ZK_DATA_DIR/myid"
ZK_CONFIG_FILE="$ZK_CONF_DIR/zoo.cfg"
LOG4J_PROPERTIES="$ZK_CONF_DIR/log4j.properties"
HOST=$(hostname)
DOMAIN=`hostname -d`
APPJAR=$(echo $ROOT/*jar)
CLASSPATH="${ROOT}/lib/*:${APPJAR}:${ZK_CONF_DIR}:"
if [[ $HOST =~ (.*)-([0-9]+)$ ]]; then
NAME=${BASH_REMATCH[1]}
ORD=${BASH_REMATCH[2]}
MY_ID=$((ORD+1))
else
echo "Failed to extract ordinal from hostname $HOST"
exit 1
fi
mkdir -p $ZK_DATA_DIR
mkdir -p $ZK_DATA_LOG_DIR
echo $MY_ID >> $ID_FILE

echo "dataDir=$ZK_DATA_DIR" >> $ZK_CONFIG_FILE
echo "dataLogDir=$ZK_DATA_LOG_DIR" >> $ZK_CONFIG_FILE
echo "4lw.commands.whitelist=*" >> $ZK_CONFIG_FILE
# Client TLS configuration
if [[ -f /tls/ca.pem ]]; then
echo "secureClientPort=$ZK_SSL_CLIENT_PORT" >> $ZK_CONFIG_FILE
echo "ssl.keyStore.location=/tls/client/client.pem" >> $ZK_CONFIG_FILE
echo "ssl.trustStore.location=/tls/ca.pem" >> $ZK_CONFIG_FILE
else
echo "clientPort=$ZK_CLIENT_PORT" >> $ZK_CONFIG_FILE
fi
# Server TLS configuration
if [[ -f /tls/ca.pem ]]; then
echo "serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory" >> $ZK_CONFIG_FILE
echo "sslQuorum=true" >> $ZK_CONFIG_FILE
echo "ssl.quorum.keyStore.location=/tls/server/server.pem" >> $ZK_CONFIG_FILE
echo "ssl.quorum.trustStore.location=/tls/ca.pem" >> $ZK_CONFIG_FILE
fi
for (( i=1; i<=$ZK_REPLICAS; i++ ))
do
echo "server.$i=$NAME-$((i-1)).$DOMAIN:$ZK_SERVER_PORT:$ZK_ELECTION_PORT" >> $ZK_CONFIG_FILE
done
rm -f $LOG4J_PROPERTIES
echo "zookeeper.root.logger=$ZK_LOG_LEVEL, CONSOLE" >> $LOG4J_PROPERTIES
echo "zookeeper.console.threshold=$ZK_LOG_LEVEL" >> $LOG4J_PROPERTIES
echo "zookeeper.log.threshold=$ZK_LOG_LEVEL" >> $LOG4J_PROPERTIES
echo "zookeeper.log.dir=$ZK_DATA_LOG_DIR" >> $LOG4J_PROPERTIES
echo "zookeeper.log.file=zookeeper.log" >> $LOG4J_PROPERTIES
echo "zookeeper.log.maxfilesize=256MB" >> $LOG4J_PROPERTIES
echo "zookeeper.log.maxbackupindex=10" >> $LOG4J_PROPERTIES
echo "zookeeper.tracelog.dir=$ZK_DATA_LOG_DIR" >> $LOG4J_PROPERTIES
echo "zookeeper.tracelog.file=zookeeper_trace.log" >> $LOG4J_PROPERTIES
echo "log4j.rootLogger=\${zookeeper.root.logger}" >> $LOG4J_PROPERTIES
echo "log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender" >> $LOG4J_PROPERTIES
echo "log4j.appender.CONSOLE.Threshold=\${zookeeper.console.threshold}" >> $LOG4J_PROPERTIES
echo "log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout" >> $LOG4J_PROPERTIES
echo "log4j.appender.CONSOLE.layout.ConversionPattern=\
%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n" >> $LOG4J_PROPERTIES
if [ -n "$JMXDISABLE" ]
then
MAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
else
MAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$JMXPORT \
-Dcom.sun.management.jmxremote.authenticate=$JMXAUTH \
-Dcom.sun.management.jmxremote.ssl=$JMXSSL \
-Dzookeeper.jmx.log4j.disable=$JMXLOG4J \
org.apache.zookeeper.server.quorum.QuorumPeerMain"
fi
set -x
exec java -cp "$CLASSPATH" $JVMFLAGS $MAIN $ZK_CONFIG_FILE

vault-agent-config.hcl: |
exit_after_auth = true
pid_file = "/home/vault/pidfile"
auto_auth {
method "kubernetes" {
mount_path = "auth/kubernetes_cce1"
config = {
role = "zookeeper"
token_path = "/run/secrets/tokens/vault-token"
}
}
sink "file" {
config = {
path = "/home/vault/.vault-token"
}
}
}

cache {
use_auto_auth_token = true
}

# ZK is neat-picky on cert file extensions
template {
destination = "/tls/ca.pem"
contents = <<EOT
{{- with secret "secret/data/tls/ca" }}{{ .Data.data.certificate }}{{ end }}
EOT
}

template {
destination = "/tls/server/server.pem"
contents = <<EOT
{{- with secret "secret/data/tls/zk_server" }}{{ .Data.data.certificate }}
{{ .Data.data.private_key }}{{ end }}
EOT
}
template {
destination = "/tls/server/tls.crt"
contents = <<EOT
{{- with secret "secret/data/tls/zk_server" }}{{ .Data.data.certificate }}{{ end }}
EOT
}
template {
destination = "/tls/server/tls.key"
contents = <<EOT
{{- with secret "secret/data/tls/zk_server" }}{{ .Data.data.private_key }}{{ end }}
EOT
}

template {
destination = "/tls/client/client.pem"
contents = <<EOT
{{- with secret "secret/data/tls/zk_client" }}{{ .Data.data.certificate }}
{{ .Data.data.private_key }}{{ end }}
EOT
}
template {
destination = "/tls/client/tls.crt"
contents = <<EOT
{{- with secret "secret/data/tls/zk_client" }}{{ .Data.data.certificate }}{{ end }}
EOT
}
template {
destination = "/tls/client/tls.key"
contents = <<EOT
{{- with secret "secret/data/tls/zk_client" }}{{ .Data.data.private_key }}{{ end }}
EOT
}
+
kubectl apply -f zookeeper-cm.yaml
+
    +
  1. Create Zookeeper Headless service. It is used by pods to build +quorum and implementing cluster internal communication.
  2. +
+
---
name: "zookeeper-svc"
namespace: "zookeeper"
apiVersion: v1
kind: Service
spec:
# Not exposing in the cluster
clusterIP: None
# Important to start up
publishNotReadyAddresses: true
selector:
app: zookeeper
ports:
- port: 2281
name: client
targetPort: client
protocol: TCP
- port: 2888
name: server
targetPort: server
protocol: TCP
- port: 3888
name: election
targetPort: election
protocol: TCP
+
kubectl apply -f zookeeper-svc.yaml
+
    +
  1. Create Frontend service. It is used by the clients and therefore +only includes client port of Zookeeper.
  2. +
+
apiVersion: v1
kind: Service
spec:
clusterIP: None
ports:
- name: client
port: 2281
protocol: TCP
targetPort: client
selector:
app: zookeeper
sessionAffinity: None
type: ClusterIP
+
kubectl apply -f zookeeper-svc-public.yaml
+
    +
  1. Create StatefulSet replacing [<VAULT_PUBLIC_ADDR>] +with the address of the Vault server. This includes a pod with Vault +Agent side container as an init container, Vault Agent side +container used continuously in the run cycle of the pod and +Zookeeper main container.
  2. +
+
apiVersion: apps/v1
kind: StatefulSet
spec:
podManagementPolicy: Parallel
replicas: 3
selector:
matchLabels:
app: zookeeper
component: server
serviceName: zookeeper-headless
template:
metadata:
labels:
app: zookeeper
component: server
spec:
containers:

- args:
- agent
- -config=/etc/vault/vault-agent-config.hcl
- -log-level=debug
- -exit-after-auth=false
env:
- name: VAULT_ADDR
value: <VAULT_PUBLIC_ADDR>
image: vault:1.9.0
name: vault-agent-sidecar
volumeMounts:
- mountPath: /etc/vault
name: vault-agent-config
- mountPath: /tls
name: cert-data
- mountPath: /var/run/secrets/tokens
name: k8-tokens

- command:
- /bin/bash
- -xec
- /config-scripts/run
env:
- name: ZK_REPLICAS
value: "3"
- name: ZOO_PORT
value: "2181"
- name: ZOO_STANDALONE_ENABLED
value: "false"
- name: ZOO_TICK_TIME
value: "2000"
image: zookeeper:3.7.0
livenessProbe:
exec:
command:
- sh
- /config-scripts/ok
failureThreshold: 2
initialDelaySeconds: 20
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
name: zookeeper
ports:
- containerPort: 2281
name: client
protocol: TCP
- containerPort: 2888
name: server
protocol: TCP
- containerPort: 3888
name: election
protocol: TCP
readinessProbe:
exec:
command:
- sh
- /config-scripts/ready
failureThreshold: 2
initialDelaySeconds: 20
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
securityContext:
runAsUser: 1000
volumeMounts:
- mountPath: /data
name: datadir
- mountPath: /tls
name: cert-data
- mountPath: /config-scripts
name: zookeeper-config
dnsPolicy: ClusterFirst

initContainers:
- args:
- agent
- -config=/etc/vault/vault-agent-config.hcl
- -log-level=debug
- -exit-after-auth=true
env:
- name: VAULT_ADDR
value: <VAULT_PUBLIC_ADDR>
image: vault:1.9.0
name: vault-agent
volumeMounts:
- mountPath: /etc/vault
name: vault-agent-config
- mountPath: /tls
name: cert-data
- mountPath: /var/run/secrets/tokens
name: k8-tokens
restartPolicy: Always
serviceAccount: zookeeper
serviceAccountName: zookeeper
terminationGracePeriodSeconds: 1800
volumes:
- configMap:
defaultMode: 420
items:
- key: vault-agent-config.hcl
path: vault-agent-config.hcl
name: zookeeper-config
name: vault-agent-config
- configMap:
defaultMode: 365
name: zookeeper-config
name: zookeeper-config
- emptyDir: {}
name: cert-data
- name: k8-tokens
projected:
defaultMode: 420
sources:
- serviceAccountToken:
expirationSeconds: 7200
path: vault-token

updateStrategy:
type: RollingUpdate
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: datadir
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: csi-disk
volumeMode: Filesystem
+
kubectl apply -f zookeeper-ss.yaml
+

With this a production-ready Zookeeper service with enabled TLS has been +deployed successfully to the CCE. The Vault Agent takes care of +authorizing to HashiCorp Vault using a Kubernetes service account with a +short time to live token and fetches required secrets to the file +system. In the entire Kubernetes deployment there are no secrets for the +application, neither the key to the Vault, nor TLS certificates +themselves. Not even using Kubernetes secrets is necessary.

+

References

+
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/index.html new file mode 100644 index 000000000..ca6f1e769 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/index.html @@ -0,0 +1,15 @@ + + + + + +Security | Architecture Center + + + + + +

Security

+

In this category, you can find guidance for implementing robust security solutions on Open Telekom Cloud. Topics include identity and access management, data encryption, network security, and compliance frameworks. Here are also provided strategies for safeguarding applications, securing workloads, and ensuring regulatory compliance, all while maintaining a strong security posture across cloud environments.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/cce-keycloak/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/cce-keycloak/index.html new file mode 100644 index 000000000..ed9c0832d --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/cce-keycloak/index.html @@ -0,0 +1,229 @@ + + + + + +Deploy Keycloak on CCE | Architecture Center + + + + + +

Deploy Keycloak on CCE

+

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

+

Creating a VPC and a Subnet

+

We are going to need a Virtual Private Cloud (VPC) and at least one +Subnet where we are going to provision both RDS instances and CCE nodes. +For enhanced security granularity, we could split those resources in two +different Subnets.

+

image

+
warning

RDS and CCE nodes have to be on the same VPC.

+

Deploying a PostgreSQL with RDS

+

Keycloak, as a stateful workload, requires the presence of a persistent +storage in order to maintain its data and configuration during pod +restarts. We could deploy a PostgreSQL database as a CCE workload, but +this would require additional administrative overhead from your side. +The Managed Relational Database Service of Open Telekom Cloud is a +perfect fit for this scenario. A scalable turn-key solution, that fully +integrated with the rest of managed services of the platform without +demanding from the consumer additional administrative effort.

+

Creating Security Groups

+

We are going to need two different Security Groups. One for the RDS +nodes, so it can accept client calls on port 5432 (Inbound Rules), +which they only reside in the same Subnet (in case we went for a single +Subnet solution):

+

image

+

And one Security Group for the client nodes that need to access the +database (Outbound Rules), in our case those would be the CCE nodes +where Keycloak is going to be installed on.

+

image

+

Provisioning a Database

+

Now as next, we need to provision a PostgreSQL 14 database. Pick the +instance and storage class size that fit your needs:

+

image

+

and make sure that you:

+
    +
  • you place the RDS nodes in the same VPC with the CCE nodes
  • +
  • assign rds-instances as the Security Group for the RDS nodes
  • +
+

image

+

Creating a Private DNS Zone

+

We are provisioning PostgreSQL in order to support the functionality of +Keycloak. For that matter, although Open Telekom Cloud employs this RDS +instance with a floating IP address, it would be better that we connect +the RDS instance with Keycloak via a fully qualified domain name and let +the Open Telekom Cloud's DNS service to manage the resolution of that +endpoints. In the Domain Name Service management panel click Private +Zone and create a new one that points to the VPC that CCE and RDS nodes +are placed:

+

image

+

and then click Manage Record Set to add a new A Record to this zone:

+

image

+
note

The domain name, will be a fictitious domain representing your solution +and not a public one. It can be virtually any domain or subdomain that +conforms to the a FQDN rules.

+

The floating IP of the RDS instance can be found in the Basic +Information panel of the database:

+

image

+

Provisioning a CCE Cluster

+

We are going to need a CCE Cluster. In order to provision one, you can +follow the configuration steps of the wizard paying attention to the +following details:

+
    +
  • We are not going to need an HA cluster - of course adjust to your +needs because this is not something you can change in the future.
  • +
  • We need to provision the CCE Cluster in the same VPC as the RDS +nodes.
  • +
  • If you follow the single Subnet lab instructions make sure you place +the CCE Nodes in the same Subnet that RDS nodes reside.
  • +
+

image

+

Add worker nodes to the CCE cluster using the wizard, and wait all nodes +to become operational. Then add to each node an additional Security +Group, in particular the rds-client that we created earlier in this +lab.

+

image

+
note

Make your own decision how you're going to access this CCE Cluster +afterwards. You can assign an Elastic IP Address and access it over the +Internet or provision and additional public-facing bastion host and +access it through this machine. We categorically recommend the +latter.

+

Deploying Keycloak

+

We are going to deploy Keycloak using simple Kubernetes manifests. +Deploy those YAML manifests in the order described below using the +command on your bastion host (or in any other machine if you chose to go +for an EIP):

+
kubectl apply -f <<filename.yaml>>
+

Deploying Keycloak Secrets

+

First we are going to need a Namespace in our CCE Cluster, in order to +deploy all the resources required by Keycloak:

+
kubectl create namespace keycloak
+

We are going to need two Secrets. One, postgres-credentials, that will +contain the credentials to access the PostgreSQL database instance and a +second one, keycloak-secrets, that will contain the necessary +credential to access the web console of Keycloak:

+
credentials.yaml
apiVersion: v1
kind: Secret
metadata:
name: postgres-credentials
namespace: keycloak
type: Opaque
stringData:
POSTGRES_USER: root
POSTGRES_PASSWORD: <<POSTGRES_PASSWORD>>
POSTGRES_DB: postgres
---
apiVersion: v1
kind: Secret
metadata:
name: keycloak-secrets
namespace: keycloak
type: Opaque
stringData:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: <<KEYCLOAK_ADMIN_PASSWORD>>
+
note

POSTGRES_PASSWORD is the password for the root user your provided +during the creation of the RDS instance.

+

KEYCLOAK_ADMIN_PASSWORD, as we mentioned before, is the password for +the admin user of the Keycloak web console. You can easily create +random strong passwords, in Linux terminal, with the following command:

+
openssl rand -base64 14
+

Deploying Keycloak Application

+

Next step, is deploying Keycloak itself:

+
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: keycloak
namespace: keycloak
labels:
app: keycloak
spec:
replicas: 1
selector:
matchLabels:
app: keycloak
template:
metadata:
labels:
app: keycloak
spec:
containers:
- name: keycloak
image: quay.io/keycloak/keycloak:21.0.2
args: ["start-dev"]
env:
- name: KEYCLOAK_ADMIN
valueFrom:
secretKeyRef:
key: KEYCLOAK_ADMIN
name: keycloak-secrets
- name: KEYCLOAK_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: KEYCLOAK_ADMIN_PASSWORD
name: keycloak-secrets
- name: KC_PROXY
value: "edge"
- name: KC_HEALTH_ENABLED
value: "true"
- name: KC_METRICS_ENABLED
value: "true"
- name: KC_HOSTNAME_STRICT_HTTPS
value: "true"
- name: KC_LOG_LEVEL
value: INFO
- name: KC_DB
value: postgres
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
name: postgres-credentials
key: POSTGRES_DB
- name: KC_DB_URL
value: jdbc:postgresql://postgresql.blueprints.arc:5432/$(POSTGRES_DB)
- name: KC_DB_USERNAME
valueFrom:
secretKeyRef:
name: postgres-credentials
key: POSTGRES_USER
- name: KC_DB_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-credentials
key: POSTGRES_PASSWORD
ports:
- name: http
containerPort: 8080
readinessProbe:
httpGet:
path: /health/ready
port: 8080
initialDelaySeconds: 250
periodSeconds: 10
livenessProbe:
httpGet:
path: /health/live
port: 8080
initialDelaySeconds: 500
periodSeconds: 30
resources:
limits:
memory: 512Mi
cpu: "1"
requests:
memory: 256Mi
cpu: "0.2"
+

As you will notice in the highlighted lines, we parameterize the +credentials portion of this manifest by referencing the variables and +their values we installed in the previous step with the Secrets. +Important to mention the significance of line 51, where we connect +Keycloak with the RDS instance using the FQDN we created in our Private +DNS Zone for this instance.

+

Deploying Keycloak Service

+

We deployed the application, but at the time being is not accessible by +an internal or external actor (direct access from Pods does not count in +this case). For that matter, we need to deploy a Service that will +expose Keycloak's workload:

+
service.yaml
apiVersion: v1
kind: Service
metadata:
name: keycloak
namespace: keycloak
labels:
app: keycloak
spec:
ports:
- name: https
port: 443
targetPort: 8080
selector:
app: keycloak
type: NodePort
+
note

Pay attention to line 15, where we set the type as NodePort. +That's because we want to expose this service externally, in a later +step, via an Ingress.

+

Exposing Keycloak

+

image

+

Creating an Elastic Load Balancer

+

First in our list for this part, is to create an Elastic Load Balancer +that will be employed with the following:

+
    +
  • An EIP address
  • +
  • Support L4 and L7 load balancing
  • +
  • Be in the same VPC/Subnet as the nodes of our CCE Cluster
  • +
  • Associate backend servers by using their IP addresses (IP as +Backend)
  • +
+

image

+
note

Note down the ELB ID, we are going to need it to configure the Nginx +Ingress that we will deploy next.

+

Deploying Nginx Ingress on CCE

+

We are going to deploy in this step the Ingress that will sit between +our ELB and the Keycloak Service and expose it in the address of our +preference (keycloak.example.com for this lab)

+
warning

Do not forget that the FQDN we are going to use to expose the Keycloak +Service has to point to a real domain or subdomain that you actually +own!

+

We will use Helm to deploy Nginx Ingress to our CCE +Cluster. Helm is the de-facto package manager of Kubernetes and if you +don't have it already installed on your remote machine or your bastion +host, you can do it with the following commands:

+
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
+

We have to provide to the helm chart a couple configuration values +(overrides.yaml), among them the internal ID of the Elastic Load +Balancer is the most important - as it will bind the future ingresses +that will be created using this ingress class with the specific load +balancer.

+
overrides.yaml
controller:
replicaCount: 1
service:
externalTrafficPolicy: Cluster
annotations:
kubernetes.io/elb.id: "0000000-0000-0000-0000-000000000000"
+
note

Special attention required at line 6, replace the placeholder value +with the ID you copied from the main panel of your newly created Elastic +Load Balancer.

+

We can now install the chart (it will automatically create and deploy +everything in a namespace named nginx-system):

+
helm upgrade --install -f overrides.yaml --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace nginx-system --create-namespace
+

Creating a Public DNS Endpoint

+

As we will see later, when we will reach to the point that we are ready +to register this Keycloak installation as an Identity Provider (IdP) in +our Open Telekom Cloud tenant, it is really pertinent that the EIP of +our ELB resolves to a real, secure URL address:

+

image

+

In order to accomplish that, we have to transfer the management of the +NS-Records of your domain to the Domain Name Service of Open Telekom +Cloud. Go on the site of your registar and make sure you configure the +following:

+
    +
  • Turn off any dynamic dns service for the domain or the subdomains +you are going to bind with Keycloak.
  • +
  • Change the NS-Records of your domain to point to: +ns1.open-telekom-cloud.com and ns2.open-telekom-cloud.com
  • +
+

If those two prerequisites are met, then you are ready to configure a +new DNS Public Zone and Record Sets for your domain in Open Telekom +Cloud. We do have two mutually exclusive options to do that:

+
    +
  • Create manually from Open Telekom Cloud Console, a new Public DNS +Zone that binds to your domain and an A-Record in that zone that +points to the EIP of the external load balancer.
  • +
  • Automate everything using +ExternalDNS.
  • +
+

Creating the Endpoint manually

+

Follow the same steps we did earlier for the Private Zone, but this time +create a Public Zone targeting to your domain and add an A-Record that +binds your Keycloak's (sub)domain with the Elastic IP Address of the +Elastic Load Balancer.

+

Creating the Endpoint with ExternalDNS

+

Alternatively, we can automate the whole process by using ExternalDNS. You can find the necessary steps in blueprint: +Create a Public DNS Endpoint with ExternalDNS.

+
Deploying a Keycloak Endpoint
+

We have now laid all the groundwork in order to automatically provision +a Public DNS Zone and a dedicated A-Record that will bind the EIP of our +ELB with Keycloak's subdomain FQDN. For that matter we need to install +a Custom Resource based on a CRD installed by ExternalDNS that is called +DNSEndpoint:

+
dns-endpoint.yaml
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: keycloak
namespace: keycloak
spec:
endpoints:
- dnsName: keycloak.example.de
recordTTL: 300
recordType: A
targets:
- XXX.XXX.XXX.XXX
+
note

At line 12, replace the placeholder with the Elastic IP Address that is +assigned to your Elastic Load Balancer. At line 8, replace the +(sub)domain with the one of yours

+

Wait for a couple of seconds, till the reconciliation loop of the +ExternalDNS controller is done, and if all went well you should now see +the Record Sets of your Public Zone populated with various entries:

+

image

+

Deploying Keycloak Ingress

+

And finally, the last step of this lab is to deploy an ingress for the +Keycloak Service:

+
ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: keycloak-ingress
namespace: keycloak
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: keycloak
port:
number: 443
+

We can now open the url address we defined in our Public DNS Zone for +this application and land on the welcome page of Keycloak:

+

image

+

Next Steps

+
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-github/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-github/index.html new file mode 100644 index 000000000..45e6c5b1d --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-github/index.html @@ -0,0 +1,140 @@ + + + + + +Identity Federation with GitHub | Architecture Center + + + + + +

Identity Federation with GitHub

+

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

+

Prerequisites

+

For this lab, you are going to need a:

+
    +
  1. Keycloak server: You should have a Keycloak server instance set up and running
  2. +
  3. GitHub account: You need a GitHub account to register your application and obtain client ID and secret
  4. +
+

Deploying Keycloak

+
tip

You can follow the blueprint Deploy Keycloak on CCE in order to setup a working instance of Keycloak on CCE.

+

Configuring Keycloak & IAM

+

Creating a new Realm

+

A realm manages users, credentials, roles, and groups. A user belongs to and logs into the realm he is assigned to. +Realms are isolated from one another and can manage and authenticate only those users that they belong to them.

+

Open and login to your Keycloak instance. Create a new realm (let's call it otcac_test_company_1 for the course of +this blueprint) and mark it as enabled:

+

image

+

Creating a new Client

+

Clients are applications, or services, that can request the authentication of a user. Create a new client (let's call it +otcac_test_company_1_client with type OpenID Connect and in the Capability config step of the wizard, activate the following Authentication +flows:

+
    +
  • Standard flow
  • +
  • Implicit flow
  • +
  • Direct access grants
  • +
+

image

+

Configuring Mappers

+

Open the management console of the Client you just created, and navigate to the Client scopes tab. Click on the list +item with the name: otcac_test_company_1_client-dedicated:

+

image

+

Now we need to add some mappers. We will first add one of the predefined ones:

+

image

+

and from the list choose email:

+

image

+

Next we need to add a group membership mapper. Click Add mapper -> By Configuration:

+

image

+

and from the list choose Group Membership:

+

image

+

Open the configuration of the mapper. Insert a mapper and token name as gruppen. The token name will be used in the +OTC Conversion Rules. Disable the Full group path option:

+

image

+

Get OpenID Endpoint Configuration

+

Open Realm Settings and click on OpenID Endpoint Configuration:

+

image

+

You will be redirected to web page rendering, as JSON, all the endpoints and the current configuration of your realm:

+

image

+
note

It is recommended to keep this web page open in a separate tab or screen, because we are going to need to +grab some values from it, for our the next steps.

+

Creating a new IAM Identity Provider

+

For this step we will change to Open Telekom Cloud Console and particularly to IAM and Identity Providers. Create a new +one, and set Protocol to OpenID Connect, SSO Type to Virtual User and Status to Enabled:

+

image

+

Configuring the IAM Identity Provider

+

Find your newly created provider in Identity Providers list and click Modify:

+

image

+

Set the following values:

+
    +
  • Access Type: Programmatic access and management console access
  • +
  • Client ID: The id of your client as defined in Keycloak (in this example is otcac_test_company_1_client)
  • +
  • Authorization Endpoint: copy the value from key authorization_endpoint of the OpenID Endpoint Configuration JSON output
  • +
  • Response Mode: form_post
  • +
  • Signing Key: open in a new tab the URL address that is value of the key jwks_uri of the OpenID Endpoint Configuration JSON output. Copy the whole output of the new page and paste it as is in the respective textbox for Signing Key.
  • +
+

image

+

Save the changes, but before closing this panel copy the value of the Identity Provider URL because we are going to +need this value in the next step of this blueprint.

+

Configuring Client's Access Settings

+

For this step we will switch back to Keycloak Administration Console, and navigate to Access Settings for our client:

+

image

+

Set the following values:

+
    +
  • Root URL: The Identity Provider URL you copied in the previous step.
  • +
  • Home URL: https://auth.otc.t-systems.com
  • +
  • Valid redirect URIs: https://auth.otc.t-systems.com/authui/oidc/post
  • +
+

GitHub Integration

+

Adding GitHub as Identity Provider

+

Then we have to add a new Identity Provider that will allow users to authenticate using their GitHub accounts:

+

image

+

Enable the provider and copy the Redirect URI because we are going to need in the next step, that will interconnect +this Keycloak realm with a GitHub OAuth application.

+

image

+

Creating new GitHub OAuth App

+

Open your GitHub account and find OAuth Apps under Settings -> Developer Settings and create a new app:

+

image

+

and set the following values:

+
    +
  • Homepage URL: https://auth.otc.t-systems.com
  • +
  • Authorization call back URL: the Redirect URI we picked up from the previous step
  • +
+

image

+

Last piece of creating an OAuth App is to generate a client secret:

+

image

+
note

Make immediately a copy of the client secret value. We are going to need it (along with the Client ID of the app) +during our next step and additionally that is the last time that it will be visible on the GitHub console.

+

Configuring GitHub Identity Provider

+

Next, let's return back to the configuration panel of our newly created GitHub Identity Provider in Keycloak, and set +the following values:

+

image

+
    +
  • Client ID: the Client ID of the GitHub OAUth app we just created
  • +
  • Client Secret: the Client Secret of the GitHub OAUth app
  • +
+

Configuring the IAM Identity Provider Conversion Rules

+

By default federated users are named FederationUser in the Open Telekom Cloud platform. These users can only log in to +the cloud platform and they do not have any other permissions. You can configure identity conversion rules on the +IAM console to achieve the following:

+
    +
  • Display enterprise users with different names in the cloud platform.
  • +
  • Assign permissions to enterprise users to use the cloud platform resources by mapping these users to IAM user groups. +Ensure that you have created the required user groups.
  • +
+

This can be achieved by editing the Identity Conversion Rules under IAM -> Identity Providers:

+

image

+

Paste the following conversion rule in the Edit Rule panel:

+
    [
{
"remote": [
{
"type": "email"
},
{
"type": "gruppen"
}],
"local": [
{
"user": {
"name": "{0}"
}
},
{
"groups": "{1}"
}]
}
]
+

The remote part describes the Predefined Mappers (email and gruppen) we created in KeyCloak Client's configuration. +The local part defines the mapping between the remote properties and the OTC account. The user will get as name +the the value of remote.email and will automatically belong to the groups defined in remote.gruppen.

+
warning

Bear in mind, that we have to create those OTC groups on before hands so they match 1-1 name-wise in order +the mapping to work and our federated user to get the desired permissions.

+

Appendix

+
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/keycloak/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/keycloak/index.html new file mode 100644 index 000000000..eaf18f799 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/keycloak/index.html @@ -0,0 +1,54 @@ + + + + + +Keycloak | Architecture Center + + + + + +

Keycloak

+

Keycloak is an open-source identity and access management (IAM) solution +developed by Red Hat. It provides features for single sign-on (SSO), +user authentication, authorization, and identity brokering. Keycloak +aims to simplify the implementation of authentication and authorization +mechanisms in applications by offering a centralized and configurable +platform.

+

Key Features

+
    +
  1. Single Sign-On (SSO): Keycloak enables users to log in once and +gain access to multiple applications without the need to re-enter +credentials for each application.
  2. +
  3. Identity Federation: It supports identity brokering, allowing +users to log in with existing accounts from social networks (such as +Google, Facebook, or GitHub) or other identity providers.
  4. +
  5. User Authentication: Keycloak provides a variety of +authentication mechanisms, including username and password, +multi-factor authentication, and support for external identity +providers.
  6. +
  7. Authorization Services: It includes fine-grained access control +and authorization policies to manage what users can and cannot do +within applications.
  8. +
  9. User Account Management: Keycloak offers user self-registration, +password reset, and other account management features.
  10. +
  11. LDAP and Active Directory Integration: It supports integration +with LDAP (Lightweight Directory Access Protocol) and Microsoft +Active Directory for seamless user management.
  12. +
  13. Client Adapters: Keycloak provides client adapters for various +platforms and languages, making it easier to integrate with +applications built using different technologies.
  14. +
  15. Security and Compliance: Keycloak follows best practices for +security and compliance, including support for OAuth 2.0 and OpenID +Connect standards.
  16. +
+

Developers can integrate Keycloak with their applications using various +protocols such as OpenID Connect, OAuth 2.0, SAML (Security Assertion +Markup Language), and more. It is commonly used in microservices +architectures and distributed systems to manage authentication and +authorization in a centralized manner. Keycloak is often employed in +scenarios where secure user authentication and access control are +crucial, such as enterprise applications, web applications, and APIs.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/storage/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/storage/index.html new file mode 100644 index 000000000..b61b1175d --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/storage/index.html @@ -0,0 +1,15 @@ + + + + + +Storage | Architecture Center + + + + + +

Storage

+

In this category, you can find guidance for designing and managing storage solutions on Open Telekom Cloud. Topics include block storage, object storage, file storage, and data backup strategies. Here are also provided recommendations for optimizing storage performance, ensuring data durability, and implementing cost-efficient storage architectures that meet the needs of various workloads.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/by-use-case/storage/zone-redundant-nfs/index.html b/pr-preview/pr-186/docs/blueprints/by-use-case/storage/zone-redundant-nfs/index.html new file mode 100644 index 000000000..13339cbf7 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/by-use-case/storage/zone-redundant-nfs/index.html @@ -0,0 +1,297 @@ + + + + + +Zone-redundant NFS Server | Architecture Center + + + + + +

Zone-redundant NFS Server

+

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+
important

This guide is to be treated as proposal and it's only intend is to +demonstrate the capabilities of SDRS in conjunction with high available +NFS storage.

+

Solution Design

+

image

+
note

As you can see one can optionally use an ELB in front of the NFS Server, +but for this build we will focus on using an internal NIC only.

+

Setting up the infrastructure

+

Create an ECS with an additional Disk which should be the same size as +your desired NFS Share. If you are planning to use more shares (which +will be the case for most use-cases), simply add up your desired size +and you are good to go.

+
important

If the size is exceeding 16TB, you may use +another EVS-Disk, as each disk can only be 16TB in size.

+
    +
  1. Create an ECS in your primary location (zone) e.g. eu-de-01 (in this +example we'll choose Ubuntu as base-image)
  2. +
  3. Add datadisk(s) of your desired size
  4. +
  5. Place the ECS in a reasonable Network/Subnet and attach an +appropriate Security Group to the interface.
  6. +
  7. Once the ECS is up and running, create a protection Group using the +Storage Disaster Recovery Service (SDRS)
  8. +
  9. In the protection group select the ECS and a target Zone (should +differ from the primary zone you chose earlier) and hit Create. +After about 10mins everything should be created.
  10. +
  11. Select the Protection group and Click on Enable protection
  12. +
  13. This will start the synchronization, which takes about 3-5mins, +depending on the size of disks etc.
  14. +
+

image

+
tip

What is the sync doing: It is setting up an ECS instance as a cold +standby with a set of replication pairs. Once the sync is done, everything +is ready and you can proceed with the NFS Server setup.

+

Setting up the NFS Server

+

If you want to setup everything automatically using Ansible, click here. Otherwise, continue reading here:

+

You now need to access the newly created NFS Server (do this using +SSH key or using the VNC-Console). Depending on the chosen operating +system you need to install some prerequisites first:

+
    +
  1. Prerequisites
  2. +
+

Install the following packages:

+
sudo apt update
sudo apt install nfs-kernel-server -y
sudo apt install lvm2 -y
+
    +
  1. Creating a Volumegroup and a Logical Volume
  2. +
+
   # check the disk-names (vdb, vdc, ...)
lsblk

# vgcreate -> creates volumegroup
vgcreate -s 32 vg_nfs /dev/vdb [/dev/vd... #add all needed disks here in one line if you require more]

# lvcreate -> creates lvol #it is advised to create an lvol for each export
lvcreate -n export1 -L 10g vg_nfs #for acceptable size values see 'man lvcreate'
lvcreate -n export2 -L 20g vg_nfs
lvcreate -n export3 -L 30g vg_nfs
+
    +
  1. Making lvols mount persistent
  2. +
+

Place them into /etc/fstab so that it looks like so:

+
   cat /etc/fstab
#
/dev/nfs_vg/export1 /export1 ext4 defaults 0 0
/dev/nfs_vg/export2 /export2 ext4 defaults 0 0
/dev/nfs_vg/export3 /export3 ext4 defaults 0 0
#
+
    +
  1. Creating directories and mount everything
  2. +
+
   mkdir -p /export1 /export2 /export3

#mount and verify
mount -a
df
+
    +
  1. Exporting the mounts
  2. +
+

Modify /etc/exports:

+
   cat /etc/exports
/export1 *(rw,sync,no_root_squash,no_subtree_check)
/export2 *(rw,sync,no_root_squash,no_subtree_check)
/export3 *(rw,sync,no_root_squash,no_subtree_check)
+
    +
  1. Ensuring that the NFS Server is enabled and running
  2. +
+
   systemctl enable nfs-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /lib/systemd/system/nfs-server.service.

systemctl start nfs-server.service

systemctl status nfs-server.service
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Mon 2024-03-11 11:31:59 UTC; 23h ago
Main PID: 2908 (code=exited, status=0/SUCCESS)
CPU: 5ms

Mar 11 11:31:59 nfs-server systemd[1]: Starting NFS server and services...
+
    +
  1. Ensuring that the exports are exported and visible to others
  2. +
+

exportfs -a

#on any client you can now verify the exports by running:
# <on client machine>

showmount -e <IP adress of NFS-Server>
Export list for <IP adress of NFS-Server>:
/export1 *
/export2 *
/export3 *
+

Now you have successfully setup a very basic NFS Server.

+

Automating NFS Server Setup using Ansible

+

Assuming the following circumstances, that the nfs-server has 1 +additional disk of minimum 100GB, the following ansible playbook can be run +locally (feel free to adjust):

+
   - hosts: localhost
connection: local
become: yes
tags:
- never
tasks:
- name: Install NFS server packages
apt:
name:
- nfs-kernel-server
- lvm2
state: present
tags:
- installation

- name: Setup physical volume
community.general.lvg:
vg: nfs_vg
pvs: /dev/vdb
tags:
- volume_group

- name: Create a logical volume
community.general.lvol:
vg: nfs_vg
lv: nfs_lv
size: 95g
tags:
- logical_volume

- name: Format the logical volume with ext4
filesystem:
fstype: ext4
dev: /dev/nfs_vg/nfs_lv
tags:
- filesystem

- name: Mount the logical volume
mount:
path: /export
src: /dev/nfs_vg/nfs_lv
fstype: ext4
state: mounted
tags:
- mounting

- name: Configure NFS export
lineinfile:
path: /etc/exports
line: "/export *(rw,sync,no_root_squash,no_subtree_check)"
create: yes
tags:
- nfs_configuration

- name: Ensure NFS server is running
service:
name: nfs-kernel-server
state: started
enabled: yes
tags:
- service_management

- name: Apply NFS export table changes
command: exportfs -a
tags:
- exports
+

Adding a new NFS Share

+
note

This section covers the steps to add a new NFS export, specifically +focusing on export4 as an example.

+
    +
  1. Prerequisites
  2. +
+

Before proceeding, ensure that there is enough available space in the volume +group (vg_nfs) to allocate to the NFS export. If there is NOT enough +space, update the disk and resize the pvol as follows.

+
    +
  • Extend the Disk size by the needed amount
  • +
  • Resize the physical Volume pvresize /dev/vd<DEVICELETTER>
  • +
  • check results with vgs The VFree column should now contain enough +space
  • +
+
    +
  1. Adding the Logical Volume
  2. +
+

Use lvcreate to create the logical volume associated with export4. Use +the following iptions:

+
    +
  • -L to specify space you want to have, e.g. -L 5g will create +a 5g logical volume.
  • +
  • -n to specify the name of the new volume
  • +
  • at the end provide the name of the volumegroup.
  • +
+
   lvcreate -L 5g -n export4 vg_nfs
+
    +
  1. Creating the filesystem
  2. +
+

In our case we will use ext4:

+
   mkfs.ext4 /dev/nfs_vg/export4
+
    +
  1. Creating a mountpoint (directory)
  2. +
+
   mkdir -p /export4 # feel free to change this to your needs
+
    +
  1. Making the newly created lvol mount persistent
  2. +
+

Simply add it as a new line into /etc/fstab:

+
   cat /etc/fstab
#
/dev/nfs_vg/export1 /export1 ext4 defaults 0 0
/dev/nfs_vg/export2 /export2 ext4 defaults 0 0
/dev/nfs_vg/export3 /export3 ext4 defaults 0 0
# new export below
/dev/nfs_vg/export4 /export4 ext4 defaults 0 0
#
+
    +
  1. Mounting and verifying
  2. +
+

mount -a
df
+
    +
  1. Modifying /etc/exports
  2. +
+

Add a new line for the new export:

+

cat /etc/exports
/export1 *(rw,sync,no_root_squash,no_subtree_check)
/export2 *(rw,sync,no_root_squash,no_subtree_check)
/export3 *(rw,sync,no_root_squash,no_subtree_check)
# new export below
/export4 *(rw,sync,no_root_squash,no_subtree_check)
+
    +
  1. Ensuring that the exports are exported
  2. +
+

exportfs -a
+
    +
  1. Verifing Exports
  2. +
+

On any client, you can now verify the exports by running:

+
   # <on client machine>

showmount -e <IP adress of NFS-Server>
Export list for <IP adress of NFS-Server>:
/export1 *
/export2 *
/export3 *
+

Online resizing of the NFS Export

+

This section covers the steps to perform an online resize of your NFS +export, specifically focusing on export2 as an example. This +operation allows you to increase the available storage capacity of the +NFS export without interrupting its availability to clients.

+
    +
  1. Prerequisites
  2. +
+

Before proceeding, ensure that there is available space in the volume +group (vg_nfs) to allocate to the NFS export. If there is NOT enough +space, update the disk and resize the pvol as follows.

+
    +
  • Extend the Disk size by the needed amount
  • +
  • Resize the physical Volume pvresize /dev/vd<DEVICELETTER>
  • +
  • check results with vgs The VFree column should now contain enough +space
  • +
+
    +
  1. Extending the Logical Volume
  2. +
+

Use lvextend to increase the size of the logical volume associated with +export2. Use -L+ to add the additional space you want to have, e.g. +5g +will add 5g to the logical volume:

+
   lvextend -L+5g /dev/vg_nfs/export2
+
    +
  1. Resizing the Filesystem
  2. +
+

After extending the logical volume, resize the filesystem sitting on top +of it to utilize the new space. For ext-filesystems, use:

+
   resize2fs /dev/vg_nfs/export2
+
note

If you are not using ext filesystems, feel free to use the according +other tools for extending the filesystem (like growpart or +xfs_growfs and so on)

+

Decommissioning of the NFS Share

+
    +
  1. Prerequisites
  2. +
+
danger

Decommisioning a share is a non-reversive action, proceed with caution! +Ensure all clients have the NFS share unmounted! This prevents data loss and ensures no client is attempting to access +the share during the decommissioning process!

+
    +
  1. Unexporting the NFS-Share
  2. +
+

After you have ensured, that the NFS Share is not used by any client, +remove the export configuration for the share you are decommissioning. +For export4, edit /etc/exports and remove the line corresponding +to /export4.

+
   # Example line to remove:
/export4 *(rw,sync,no_root_squash,no_subtree_check)
+

After editing, apply the changes:

+
warning

This will cut off any active connections to the share

+
   exportfs -ra
+
    +
  1. Unmounting the NFS Share
  2. +
+

Ensure no process is using the share and then unmount it:

+
   fuser -c /export4 # should return nothing
umount /export4
+
    +
  1. Removing the entry from /etc/fstab
  2. +
+

Open /etc/fstab and remove the line that corresponds to /export4, to +prevent it from mounting on reboot.

+
   # Example line to remove:
/dev/vg_nfs/export4 /export4 ext4 defaults 0 0
+
    +
  1. Deleting the Logical Volume
  2. +
+

Remove the logical volume associated with export4.

+
   lvremove /dev/vg_nfs/export4 # confirm with 'y'
+
    +
  1. Removing the Directory (optional)
  2. +
+

If the directory /export4 is no longer needed, it can be removed:

+
   rm -r /export4
+

Finally you can verify that the logical volume is removed:

+
   lvs
+

Optionally ensure NFS exports have been updated, by checking on a client machine:

+
   # <on client machine>
showmount -e <NFS-Server IP>
+

This concludes the decommissioning process of an NFS-share.

+

DR-drill/Failover to a secondary site

+
    +
  1. Preparation
  2. +
+

In a real-outage scenario, when one AZ is declared as down, you must +do a failover using the Open Telekom Cloud Console. Before we perform a test failover, +let's have a client mounting the actual NFS Share:

+
   df

Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 812816 1096 811720 1% /run
/dev/vda1 5810764 4597652 892788 84% /
tmpfs 4064076 0 4064076 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 812812 4 812808 1% /run/user/1000
10.0.0.180:/export 97466368 0 92469248 0% /tmp/hla
+

and simulate some work on it:

+
   root@nfs-client:/tmp/hla# while true ; do echo "$(date)" >> check_time.txt ; sleep 1 ; done
+
note

This will echo the time into a file once per second while having a +file-descriptor open the whole time (the process is started in the Share +itself)

+
    +
  1. Performing failover
  2. +
+

In the Open Telekom Cloud Console -> SDRS -> Select protection group and click More -> +Fail Over:

+

image

+

This will have the following effect:

+
    +
  • It unplugs the NIC from the running server and attaches it to the +target host (note we were previously running in eu-de-01):
  • +
+

image

+

This results to the client operating-system setting the nfs-share to +readonly (as it is not able to reach it):

+
   root@nfs-client:/tmp/hla# while true ; do echo "$(date)" >> check_time.txt ; sleep 1 ; done

-bash: check_time.txt: Read-only file system
-bash: check_time.txt: Read-only file system
-bash: check_time.txt: Read-only file system
-bash: check_time.txt: Read-only file system
-bash: check_time.txt: Read-only file system
+
    +
  • It stops the previous production server (in eu-de-01)
  • +
+

image

+
    +
  • Failover complete – now you must actively start the nfs-server +resource in eu-de-02. There is a shortcut to do that in +the overview of SRDS:
  • +
+

image

+
    +
  • +

    If set up correctly, the nfs-server should start everything on its +own.

    +
  • +
  • +

    If you try to access the nfs-Server, it should throw an error +message like this:

    +
  • +
+
   ssh nfs-server
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:IfRWy+RVAgSr+sHbxwQfuoreNZAU9wfO142vfQix27c.
Please contact your system administrator.
Add correct host key in /home/linux/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/linux/.ssh/known_hosts:5
You can use following command to remove the offending key:
ssh-keygen -R 10.0.0.180 -f /home/linux/.ssh/known_hosts
ECDSA host key for 10.0.0.180 has changed and you have requested strict checking.
Host key verification failed.
+

This is expected, as the nfs-server is technically now another ECS instance with +the same name, ssh-key etc.; but with different ECDSA Key +(fingerprint). To get rid off this message, simply use the suggested +command, and re-accept the fingerprint:

+
   ssh-keygen -R 10.0.0.180 -f /home/linux/.ssh/known_hosts
# Host 10.0.0.180 found: line 5
/home/linux/.ssh/known_hosts updated.
Original contents retained as /home/linux/.ssh/known_hosts.old
linux@bastion:~> ssh nfs-server
The authenticity of host '10.0.0.180 (10.0.0.180)' can't be established.
ECDSA key fingerprint is SHA256:IfRWy+RVAgSr+sHbxwQfuoreNZAU9wfO142vfQix27c.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.0.180' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-100-generic x86_64)
+
    +
  • Checking on the client side we can see that the process continued its work, as long as it regained connection
  • +
+

root@nfs-client:~# cat /tmp/hla/check_time.txt
.
.
Mon Mar 18 07:08:20 UTC 2024
Mon Mar 18 07:08:21 UTC 2024
Mon Mar 18 07:08:22 UTC 2024
Mon Mar 18 07:08:23 UTC 2024
Mon Mar 18 07:08:46 UTC 2024 #failover started here
Mon Mar 18 07:10:50 UTC 2024
Mon Mar 18 07:10:51 UTC 2024
Mon Mar 18 07:10:52 UTC 2024
Mon Mar 18 07:10:53 UTC 2024
Mon Mar 18 07:10:54 UTC 2024
Mon Mar 18 07:10:55 UTC 2024
Mon Mar 18 07:10:56 UTC 2024
+
    +
  • +

    The according timeout settings in the nfs-client can be set via fstab

    +
  • +
  • +

    timeo=n The time in deciseconds (tenths of a second) the NFS +client waits for a response before it retries an NFS request.

    +
  • +
  • +

    retrans=n The number of times the NFS client retries a request +before it attempts further recovery action.

    +
  • +
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/blueprints/index.html b/pr-preview/pr-186/docs/blueprints/index.html new file mode 100644 index 000000000..321dd6dc0 --- /dev/null +++ b/pr-preview/pr-186/docs/blueprints/index.html @@ -0,0 +1,16 @@ + + + + + +Blueprints | Architecture Center + + + + + +

Blueprints

+

Welcome to the Open Telekom Cloud Architecture Center Best Practices. This section offers comprehensive guidance for designing and implementing cloud solutions tailored to various use cases and industries. Here you can find pre-built architectures and reference models for a wide range of scenarios, such as disaster recovery, big data processing, AI/ML workloads, microservices, DevOps, and automation. These blueprints provide organizations with step-by-step guides, architectural patterns, and real-world case studies, helping them quickly deploy cloud solutions that address specific operational needs and optimize workflows while ensuring scalability, security, and cost-efficiency.

+

Additionally, Blueprints are organized into two key areas: "Blueprints by Use Cases" and "Blueprints by Industry." The former focuses on general-purpose solutions that address common business and technical challenges, while the latter provides industry-specific architectures that meet the unique regulatory and operational requirements of sectors such as aerospace, finance, government, healthcare, and telecommunications. By leveraging these blueprints, organizations can accelerate their cloud adoption, improve operational efficiency, and ensure their solutions are optimized for performance, security, and compliance across diverse environments.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/caf/index.html b/pr-preview/pr-186/docs/caf/index.html new file mode 100644 index 000000000..0e6f724c9 --- /dev/null +++ b/pr-preview/pr-186/docs/caf/index.html @@ -0,0 +1,21 @@ + + + + + +Cloud Adoption Framework | Architecture Center + + + + + +

Cloud Adoption Framework

+

Welcome to the Open Telekom Cloud Architecture Center Best Practices. +Here we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that +enhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as +efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance +to ensure robust system performance. This section serves as a valuable resource for architects and developers +to implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud +infrastructure.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/acme/index.html b/pr-preview/pr-186/docs/tags/acme/index.html new file mode 100644 index 000000000..2334aa33e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/acme/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "acme" | Architecture Center + + + + + +

We found one article tagged with "acme"

View All Tags

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/aerospace/index.html b/pr-preview/pr-186/docs/tags/aerospace/index.html new file mode 100644 index 000000000..1ec7aa236 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/aerospace/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "aerospace" | Architecture Center + + + + + +

We found one article tagged with "aerospace"

View All Tags

Mundi Web Services: New Business from Space

The European Space Agency's (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/ai/index.html b/pr-preview/pr-186/docs/tags/ai/index.html new file mode 100644 index 000000000..767229645 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/ai/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "ai" | Architecture Center + + + + + +

We found one article tagged with "ai"

View All Tags

Fuse-AI: e-Health from the Cloud

Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. “The biggest advantage is the improved quality of a diagnosis,” says Maximilian Waschka, one of the four Fuse-AI founders. “Our algorithm helps radiologists notice abnormalities on thousands of images more reliably.” The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/analytics/index.html b/pr-preview/pr-186/docs/tags/analytics/index.html new file mode 100644 index 000000000..c12249445 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/analytics/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "analytics" | Architecture Center + + + + + +

We found 4 articles tagged with "analytics"

View All Tags

Deploy ClickHouse on CCE

ClickHouse is a high-performance columnar database management system optimized for online analytical processing (OLAP). It is designed to handle large volumes of data and execute complex queries swiftly. The system uses a columnar storage format, which significantly accelerates read and write operations and enhances data compression. ClickHouse supports SQL queries and provides extensive tools for data analysis. It is built to scale horizontally, allowing for distributed processing across multiple servers. Its architecture ensures high availability and fault tolerance. Ideal for real-time data analytics, ClickHouse is widely adopted for tasks requiring fast query performance over extensive datasets.

Deploy Umami on CCE

In this blueprint we are going to set up Umami on Open Telekom Cloud's Cloud Container Engine (CCE), leveraging Kubernetes for scalability and flexibility. For the database backend, we will use the Zalando PostgreSQL Operator to provision and manage a PostgreSQL cluster within the CCE environment.

Umami

Umami is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking.

Using RDS for PostgreSQL to Set Up Umami on ECS

In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/anti-crawler/index.html b/pr-preview/pr-186/docs/tags/anti-crawler/index.html new file mode 100644 index 000000000..06a3964f5 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/anti-crawler/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "anti-crawler" | Architecture Center + + + + + +

We found one article tagged with "anti-crawler"

View All Tags

Configuring Anti-Crawler Rules to Prevent Crawler Attacks

WAF provides three anti-crawler policies, bot detection by identifying User-Agent, website anti-crawler by checking browser validity, and CC attack protection by limiting the access frequency, to comprehensively mitigate crawler attacks against your websites.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/apig/index.html b/pr-preview/pr-186/docs/tags/apig/index.html new file mode 100644 index 000000000..477f9a1b6 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/apig/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "apig" | Architecture Center + + + + + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/artificial-intelligence/index.html b/pr-preview/pr-186/docs/tags/artificial-intelligence/index.html new file mode 100644 index 000000000..cd0eeee6e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/artificial-intelligence/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "artificial-intelligence" | Architecture Center + + + + + +

We found one article tagged with "artificial-intelligence"

View All Tags

Fuse-AI: e-Health from the Cloud

Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. “The biggest advantage is the improved quality of a diagnosis,” says Maximilian Waschka, one of the four Fuse-AI founders. “Our algorithm helps radiologists notice abnormalities on thousands of images more reliably.” The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/authentik/index.html b/pr-preview/pr-186/docs/tags/authentik/index.html new file mode 100644 index 000000000..b32b7e86e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/authentik/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "authentik" | Architecture Center + + + + + +

We found 3 articles tagged with "authentik"

View All Tags

Authentik

Authentik is a modern, open-source Identity Provider (IdP) that offers flexible and secure authentication and authorization solutions for organizations of all sizes. It provides a comprehensive suite of identity management features, allowing businesses to centralize user authentication, implement single sign-on (SSO), and manage access to various applications and services.

Deploy Authentik on CCE

This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/azure/index.html b/pr-preview/pr-186/docs/tags/azure/index.html new file mode 100644 index 000000000..a80bf6507 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/azure/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "azure" | Architecture Center + + + + + +

We found one article tagged with "azure"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/bundesmessenger/index.html b/pr-preview/pr-186/docs/tags/bundesmessenger/index.html new file mode 100644 index 000000000..f1d71d121 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/bundesmessenger/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "bundesmessenger" | Architecture Center + + + + + +

We found one article tagged with "bundesmessenger"

View All Tags

Sovereign Digitalization for the City of Kirchheim unter Teck

The City of Kirchheim unter Teck uses the BundesMessenger from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/by-industry/index.html b/pr-preview/pr-186/docs/tags/by-industry/index.html new file mode 100644 index 000000000..dcab85cf1 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/by-industry/index.html @@ -0,0 +1,14 @@ + + + + + +We found 10 articles tagged with "by-industry" | Architecture Center + + + + + +

We found 10 articles tagged with "by-industry"

View All Tags

EUVIC: Cloud-Based Credit Portal for SaarLB

The software company EUVIC has developed a portal which enables business customers' credit requests to be processed interactively and at a considerably faster rate. Since customer data is particularly sensitive, the renowned software company used the Open Telekom Cloud to develop and operate the credit portal. "T-Systems' servers are located in highly secure, multi-certified data centers in Germany," says Daniel Piecha of EUVIC. With the cloud solution, the Landesbank meets the strict regulations of the financial supervisory authority and the European General Data Protection Regulation (GDPR). Only authorized employees of the bank have unencrypted access to the data in the system. In addition, a neutral third party company reviewed the security concept and certified the cloud solution – after a penetration test – as having a very high level of security.

Fiber-Factory: Accelerated Grid Expansion

More than 33 million households in Germany can access speeds of over 50 MBit/s, thanks to Telekom's fiber optic expansion. This enables people to work from home, streaming, and business line connectivity. Now Telekom is planning to expand the network for up to two million more households each year starting in 2021. This involved extensive construction measures. In order to plan these more efficiently, secure resources from the Open Telekom Cloud are providing support.

Fuse-AI: e-Health from the Cloud

Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. “The biggest advantage is the improved quality of a diagnosis,” says Maximilian Waschka, one of the four Fuse-AI founders. “Our algorithm helps radiologists notice abnormalities on thousands of images more reliably.” The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.

Mundi Web Services: New Business from Space

The European Space Agency's (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.

Omnichannel Platform by brodos.net

With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.

Open Telekom Cloud for Dementia Therapy App

To meet the strict guidelines for the German digital health market, the team from Brain+ wanted to provide the backend for its app from a German cloud, and Brain+ chose the Open Telekom Cloud. In addition to that, with a growing focus on the UK market, Open Telekom Cloud can provide a framework allowing the team to scale to the UK and later to the rest of Europe.

Particulate: Donation Platform on Open Telekom Cloud

Around 5,000 people in the Rhine-Main region are already so-called “Radgeber” or cyclist donors: Together with the start-up Particulate Solutions, Deutsche Bahn (DB) has developed the platform, which allows every cyclist participating in the campaign to become a donor. The technology for the platform is based on the Open Telekom Cloud, Telekom's public cloud offering.

Sovereign Digitalization for the City of Kirchheim unter Teck

The City of Kirchheim unter Teck uses the BundesMessenger from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck.

Xelera: Middleware Ignites the Application Turbo

The founders of Hessian start-up Xelera have developed middleware that greatly accelerates data processing. The best thing: Computing-intensive algorithms are processed in freely programmable circuits, so-called Field Programmable Gate Arrays (FPGAs). These are hardware cards that can be individually programmed depending on the intended use. In this way, they process tasks within a server considerably faster than standard hardware and thus considerably accelerate applications.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cce/index.html b/pr-preview/pr-186/docs/tags/cce/index.html new file mode 100644 index 000000000..65f7e28c6 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cce/index.html @@ -0,0 +1,14 @@ + + + + + +We found 18 articles tagged with "cce" | Architecture Center + + + + + +

We found 18 articles tagged with "cce"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

Build a CI Pipeline with Jenkins, SWR and CCE

This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

Connecting a Redis Client to DCS Through CCE

With the development of the container technology, more and more applications are deployed in containers. This section describes how to deploy a Redis client in a Cloud Container Engine (CCE) cluster container and connect it to DCS.

Create a Public DNS Endpoint with ExternalDNS

ExternalDNS is a Kubernetes component used to manage DNS records for services and applications running in a Kubernetes cluster. It automates the creation, update, and deletion of DNS records based on the state of resources within the cluster. ExternalDNS is typically employed in scenarios where you need to expose services running inside a Kubernetes cluster to the outside world with fully qualified domain names (FQDNs), ensuring they are accessible by external users.

Deploy Authentik on CCE

This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.

Deploy ClickHouse on CCE

ClickHouse is a high-performance columnar database management system optimized for online analytical processing (OLAP). It is designed to handle large volumes of data and execute complex queries swiftly. The system uses a columnar storage format, which significantly accelerates read and write operations and enhances data compression. ClickHouse supports SQL queries and provides extensive tools for data analysis. It is built to scale horizontally, allowing for distributed processing across multiple servers. Its architecture ensures high availability and fault tolerance. Ideal for real-time data analytics, ClickHouse is widely adopted for tasks requiring fast query performance over extensive datasets.

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

Deploy Umami on CCE

In this blueprint we are going to set up Umami on Open Telekom Cloud's Cloud Container Engine (CCE), leveraging Kubernetes for scalability and flexibility. For the database backend, we will use the Zalando PostgreSQL Operator to provision and manage a PostgreSQL cluster within the CCE environment.

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

Migrating Clusters from Other Clouds to CCE

Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.

Secrets management with CCE and Hashicorp Vault

Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cd/index.html b/pr-preview/pr-186/docs/tags/cd/index.html new file mode 100644 index 000000000..a3a6cd5bd --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cd/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "cd" | Architecture Center + + + + + +

We found one article tagged with "cd"

View All Tags

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cert-manager/index.html b/pr-preview/pr-186/docs/tags/cert-manager/index.html new file mode 100644 index 000000000..74dae4747 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cert-manager/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "cert-manager" | Architecture Center + + + + + +

We found one article tagged with "cert-manager"

View All Tags

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/certificates/index.html b/pr-preview/pr-186/docs/tags/certificates/index.html new file mode 100644 index 000000000..af9842e5d --- /dev/null +++ b/pr-preview/pr-186/docs/tags/certificates/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "certificates" | Architecture Center + + + + + +

We found one article tagged with "certificates"

View All Tags

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/ci/index.html b/pr-preview/pr-186/docs/tags/ci/index.html new file mode 100644 index 000000000..7e2521568 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/ci/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "ci" | Architecture Center + + + + + +

We found 2 articles tagged with "ci"

View All Tags

Build a CI Pipeline with Jenkins, SWR and CCE

This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cicd/index.html b/pr-preview/pr-186/docs/tags/cicd/index.html new file mode 100644 index 000000000..12ff0de14 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cicd/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "cicd" | Architecture Center + + + + + +

We found one article tagged with "cicd"

View All Tags

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/clickhouse/index.html b/pr-preview/pr-186/docs/tags/clickhouse/index.html new file mode 100644 index 000000000..a30f55bbb --- /dev/null +++ b/pr-preview/pr-186/docs/tags/clickhouse/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "clickhouse" | Architecture Center + + + + + +

We found one article tagged with "clickhouse"

View All Tags

Deploy ClickHouse on CCE

ClickHouse is a high-performance columnar database management system optimized for online analytical processing (OLAP). It is designed to handle large volumes of data and execute complex queries swiftly. The system uses a columnar storage format, which significantly accelerates read and write operations and enhances data compression. ClickHouse supports SQL queries and provides extensive tools for data analysis. It is built to scale horizontally, allowing for distributed processing across multiple servers. Its architecture ensures high availability and fault tolerance. Ideal for real-time data analytics, ClickHouse is widely adopted for tasks requiring fast query performance over extensive datasets.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cloud-create/index.html b/pr-preview/pr-186/docs/tags/cloud-create/index.html new file mode 100644 index 000000000..e1d590289 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cloud-create/index.html @@ -0,0 +1,14 @@ + + + + + +We found 7 articles tagged with "cloud-create" | Architecture Center + + + + + +

We found 7 articles tagged with "cloud-create"

View All Tags

Cloud Create

Cloud Create is a free-to-use Development and Management Platform, which enables cloud developers to create applications on Open Telekom Cloud fast.

Design with dynamic subnets

The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:

Design with static subnets in multiple regions

The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute2 connects to Subnet2). The compute in the first region (e.g., Compute) has access to the internet.

Multicloud Google Cloud

This section shows how to deploy your application on Google Cloud. You can create your application in multiple regions. Cloud Create can auto-generate one subnet for each region or you can design the subnets manually.

OpenShift Template

The following tutorial shows you how to register a (trial) subscription key from Red Hat and uses it to create an OpenShift cluster using the OpenShift template.

Service catalogs

In addition to infrastructure components (e.g., compute, network, storage), Cloud Create provides most frequently used services on the application layer that are ready-to-deploy (e.g., Prometheus for monitoring). This section shows how to use these services in the editor.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cloud-eye/index.html b/pr-preview/pr-186/docs/tags/cloud-eye/index.html new file mode 100644 index 000000000..f2fd24b5b --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cloud-eye/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "cloud-eye" | Architecture Center + + + + + +

We found 2 articles tagged with "cloud-eye"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

Resource Group Monitoring

Cloud Eye provides the resource group and alarm functions. How can we effectively group and monitor resources and receive alarm notifications of the resources in different groups?

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cts-trigger/index.html b/pr-preview/pr-186/docs/tags/cts-trigger/index.html new file mode 100644 index 000000000..5cf571a67 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cts-trigger/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "cts-trigger" | Architecture Center + + + + + +

We found one article tagged with "cts-trigger"

View All Tags

Auditing and Analyzing Logins and Logouts with Functiongraph

Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/cts/index.html b/pr-preview/pr-186/docs/tags/cts/index.html new file mode 100644 index 000000000..8b2a6f260 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/cts/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "cts" | Architecture Center + + + + + +

We found one article tagged with "cts"

View All Tags

Auditing and Analyzing Logins and Logouts with Functiongraph

Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/dcs/index.html b/pr-preview/pr-186/docs/tags/dcs/index.html new file mode 100644 index 000000000..6b0d62e07 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/dcs/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "dcs" | Architecture Center + + + + + +

We found 4 articles tagged with "dcs"

View All Tags

Connecting a Redis Client to DCS Through CCE

With the development of the container technology, more and more applications are deployed in containers. This section describes how to deploy a Redis client in a Cloud Container Engine (CCE) cluster container and connect it to DCS.

Using ELB for Public Access to DCS

Currently, DCS Redis 4.0, 5.0, and 6.0 instances cannot be bound with elastic IP addresses (EIPs) and cannot be accessed over public networks directly. This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster instance or a node in a Redis Cluster instance through public networks by enabling cross-VPC backend on a load balancer.

Using Nginx for Public Access of DCS Redis Instances

This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster DCS Redis 4.0, 5.0, or 6.0 instance by using a jump server. This solution cannot be used to access a Redis Cluster instance over public networks.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/dds/index.html b/pr-preview/pr-186/docs/tags/dds/index.html new file mode 100644 index 000000000..4aef4a0f0 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/dds/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "dds" | Architecture Center + + + + + +

We found 4 articles tagged with "dds"

View All Tags

From ECS-hosted MongoDB to DDS

DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

From On-Premises MongoDB to DDS

DRS helps you migrate data from on-premises MongoDB databases to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

From Other Cloud MongoDB to DDS

DRS helps you migrate MongoDB databases from other cloud platforms to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

How Do Replica Sets Achieve High Availability and Read/Write Splitting?

DDS replica set instances can store multiple duplicates to ensure data high availability and support the automatic switch of private IP addresses to ensure service high availability. To enhance the read and write performance of your client for connecting to the instance, you can use your client to read different data copies. You need to connect to replica set instances using HA connection addresses. You can also configure read/write splitting. Otherwise, the high availability and high read performance of replica set instances cannot be guaranteed.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/devops/index.html b/pr-preview/pr-186/docs/tags/devops/index.html new file mode 100644 index 000000000..e916e0d0e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/devops/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "devops" | Architecture Center + + + + + +

We found 2 articles tagged with "devops"

View All Tags

Build a CI Pipeline with Jenkins, SWR and CCE

This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/devtron/index.html b/pr-preview/pr-186/docs/tags/devtron/index.html new file mode 100644 index 000000000..cbedfafbc --- /dev/null +++ b/pr-preview/pr-186/docs/tags/devtron/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "devtron" | Architecture Center + + + + + +

We found one article tagged with "devtron"

View All Tags

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/disaster-recovery/index.html b/pr-preview/pr-186/docs/tags/disaster-recovery/index.html new file mode 100644 index 000000000..92b724092 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/disaster-recovery/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "disaster-recovery" | Architecture Center + + + + + +

We found one article tagged with "disaster-recovery"

View All Tags

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/dms/index.html b/pr-preview/pr-186/docs/tags/dms/index.html new file mode 100644 index 000000000..1bec9a1d0 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/dms/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "dms" | Architecture Center + + + + + +

We found one article tagged with "dms"

View All Tags

Migrating Kafka Services

This solution will demonstrate how you can migrate Kafka services to connect message producers and consumers to a new Kafka instance and can even migrate persisted message data to a new Kafka instance.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/dns-solver/index.html b/pr-preview/pr-186/docs/tags/dns-solver/index.html new file mode 100644 index 000000000..962940fe7 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/dns-solver/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "dns-solver" | Architecture Center + + + + + +

We found one article tagged with "dns-solver"

View All Tags

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/dns/index.html b/pr-preview/pr-186/docs/tags/dns/index.html new file mode 100644 index 000000000..be5ba3a23 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/dns/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "dns" | Architecture Center + + + + + +

We found 3 articles tagged with "dns"

View All Tags

Configuring Private Domain Names for ECSs

If one of your ECSs is not working normally and you need to use the backup ECS to handle requests, but you have not configured private zones for the two ECSs, you need to change the private IP address in the code for the faulty ECS. This will interrupt your services and cause you to publish your website again, which is time- and labor-consuming.

Create a Public DNS Endpoint with ExternalDNS

ExternalDNS is a Kubernetes component used to manage DNS records for services and applications running in a Kubernetes cluster. It automates the creation, update, and deletion of DNS records based on the state of resources within the cluster. ExternalDNS is typically employed in scenarios where you need to expose services running inside a Kubernetes cluster to the outside world with fully qualified domain names (FQDNs), ensuring they are accessible by external users.

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/drs/index.html b/pr-preview/pr-186/docs/tags/drs/index.html new file mode 100644 index 000000000..d6ced4c78 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/drs/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "drs" | Architecture Center + + + + + +

We found one article tagged with "drs"

View All Tags

From ECS-hosted MongoDB to DDS

DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/ecs/index.html b/pr-preview/pr-186/docs/tags/ecs/index.html new file mode 100644 index 000000000..7b622b5af --- /dev/null +++ b/pr-preview/pr-186/docs/tags/ecs/index.html @@ -0,0 +1,14 @@ + + + + + +We found 5 articles tagged with "ecs" | Architecture Center + + + + + +

We found 5 articles tagged with "ecs"

View All Tags

Building Highly Available Web Server Clusters with Keepalived

Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx.

Configuring Private Domain Names for ECSs

If one of your ECSs is not working normally and you need to use the backup ECS to handle requests, but you have not configured private zones for the two ECSs, you need to change the private IP address in the code for the faulty ECS. This will interrupt your services and cause you to publish your website again, which is time- and labor-consuming.

From ECS-hosted MongoDB to DDS

DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

Using RDS for PostgreSQL to Set Up Umami on ECS

In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/elb/index.html b/pr-preview/pr-186/docs/tags/elb/index.html new file mode 100644 index 000000000..893995e2b --- /dev/null +++ b/pr-preview/pr-186/docs/tags/elb/index.html @@ -0,0 +1,14 @@ + + + + + +We found 5 articles tagged with "elb" | Architecture Center + + + + + +

We found 5 articles tagged with "elb"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

Using Advanced Forwarding for Application Iteration

As the business grows, you may need to upgrade your application. Both the old and new versions are used. Now, the new version is optimized based on users' feedback, and you want all the users to use the new version. In this process, you can use advanced forwarding to route requests to different versions.

Using ELB for Public Access to DCS

Currently, DCS Redis 4.0, 5.0, and 6.0 instances cannot be bound with elastic IP addresses (EIPs) and cannot be accessed over public networks directly. This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster instance or a node in a Redis Cluster instance through public networks by enabling cross-VPC backend on a load balancer.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/esa/index.html b/pr-preview/pr-186/docs/tags/esa/index.html new file mode 100644 index 000000000..71854fc4b --- /dev/null +++ b/pr-preview/pr-186/docs/tags/esa/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "esa" | Architecture Center + + + + + +

We found one article tagged with "esa"

View All Tags

Mundi Web Services: New Business from Space

The European Space Agency's (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/events/index.html b/pr-preview/pr-186/docs/tags/events/index.html new file mode 100644 index 000000000..72620b9b0 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/events/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "events" | Architecture Center + + + + + +

We found one article tagged with "events"

View All Tags

Auditing and Analyzing Logins and Logouts with Functiongraph

Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/evs/index.html b/pr-preview/pr-186/docs/tags/evs/index.html new file mode 100644 index 000000000..97ed17b1e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/evs/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "evs" | Architecture Center + + + + + +

We found 2 articles tagged with "evs"

View All Tags

RAID Array Creation with EVS Disks

Redundant Array of Independent Disks (RAID) is a technology that combines multiple physical disks into one or more logical units for the purposes of data redundancy and performance improvement.

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/externaldns/index.html b/pr-preview/pr-186/docs/tags/externaldns/index.html new file mode 100644 index 000000000..b0b2d4a3c --- /dev/null +++ b/pr-preview/pr-186/docs/tags/externaldns/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "externaldns" | Architecture Center + + + + + +

We found 2 articles tagged with "externaldns"

View All Tags

Create a Public DNS Endpoint with ExternalDNS

ExternalDNS is a Kubernetes component used to manage DNS records for services and applications running in a Kubernetes cluster. It automates the creation, update, and deletion of DNS records based on the state of resources within the cluster. ExternalDNS is typically employed in scenarios where you need to expose services running inside a Kubernetes cluster to the outside world with fully qualified domain names (FQDNs), ensuring they are accessible by external users.

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/failover/index.html b/pr-preview/pr-186/docs/tags/failover/index.html new file mode 100644 index 000000000..7cfc7859f --- /dev/null +++ b/pr-preview/pr-186/docs/tags/failover/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "failover" | Architecture Center + + + + + +

We found one article tagged with "failover"

View All Tags

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/federation/index.html b/pr-preview/pr-186/docs/tags/federation/index.html new file mode 100644 index 000000000..6a63fe868 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/federation/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "federation" | Architecture Center + + + + + +

We found 2 articles tagged with "federation"

View All Tags

Identity Federation with GitHub

Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.

Identity Federation with GitHub

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/finance/index.html b/pr-preview/pr-186/docs/tags/finance/index.html new file mode 100644 index 000000000..01eafd70f --- /dev/null +++ b/pr-preview/pr-186/docs/tags/finance/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "finance" | Architecture Center + + + + + +

We found 2 articles tagged with "finance"

View All Tags

EUVIC: Cloud-Based Credit Portal for SaarLB

The software company EUVIC has developed a portal which enables business customers' credit requests to be processed interactively and at a considerably faster rate. Since customer data is particularly sensitive, the renowned software company used the Open Telekom Cloud to develop and operate the credit portal. "T-Systems' servers are located in highly secure, multi-certified data centers in Germany," says Daniel Piecha of EUVIC. With the cloud solution, the Landesbank meets the strict regulations of the financial supervisory authority and the European General Data Protection Regulation (GDPR). Only authorized employees of the bank have unencrypted access to the data in the system. In addition, a neutral third party company reviewed the security concept and certified the cloud solution – after a penetration test – as having a very high level of security.

Particulate: Donation Platform on Open Telekom Cloud

Around 5,000 people in the Rhine-Main region are already so-called “Radgeber” or cyclist donors: Together with the start-up Particulate Solutions, Deutsche Bahn (DB) has developed the platform, which allows every cyclist participating in the campaign to become a donor. The technology for the platform is based on the Open Telekom Cloud, Telekom's public cloud offering.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/fpga/index.html b/pr-preview/pr-186/docs/tags/fpga/index.html new file mode 100644 index 000000000..fbb77bc5a --- /dev/null +++ b/pr-preview/pr-186/docs/tags/fpga/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "fpga" | Architecture Center + + + + + +

We found one article tagged with "fpga"

View All Tags

Xelera: Middleware Ignites the Application Turbo

The founders of Hessian start-up Xelera have developed middleware that greatly accelerates data processing. The best thing: Computing-intensive algorithms are processed in freely programmable circuits, so-called Field Programmable Gate Arrays (FPGAs). These are hardware cards that can be individually programmed depending on the intended use. In this way, they process tasks within a server considerably faster than standard hardware and thus considerably accelerate applications.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/functiongraph/index.html b/pr-preview/pr-186/docs/tags/functiongraph/index.html new file mode 100644 index 000000000..7eb56a8bd --- /dev/null +++ b/pr-preview/pr-186/docs/tags/functiongraph/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "functiongraph" | Architecture Center + + + + + +

We found one article tagged with "functiongraph"

View All Tags

Auditing and Analyzing Logins and Logouts with Functiongraph

Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/gcp/index.html b/pr-preview/pr-186/docs/tags/gcp/index.html new file mode 100644 index 000000000..f8bc72541 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/gcp/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "gcp" | Architecture Center + + + + + +

We found 4 articles tagged with "gcp"

View All Tags

Design with dynamic subnets

The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:

Design with static subnets in multiple regions

The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute2 connects to Subnet2). The compute in the first region (e.g., Compute) has access to the internet.

Multicloud Google Cloud

This section shows how to deploy your application on Google Cloud. You can create your application in multiple regions. Cloud Create can auto-generate one subnet for each region or you can design the subnets manually.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/gdpr/index.html b/pr-preview/pr-186/docs/tags/gdpr/index.html new file mode 100644 index 000000000..1ebaa915a --- /dev/null +++ b/pr-preview/pr-186/docs/tags/gdpr/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "gdpr" | Architecture Center + + + + + +

We found one article tagged with "gdpr"

View All Tags

Umami

Umami is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/geoservices/index.html b/pr-preview/pr-186/docs/tags/geoservices/index.html new file mode 100644 index 000000000..92bab73e3 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/geoservices/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "geoservices" | Architecture Center + + + + + +

We found one article tagged with "geoservices"

View All Tags

Mundi Web Services: New Business from Space

The European Space Agency's (ESA) Copernicus program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/github/index.html b/pr-preview/pr-186/docs/tags/github/index.html new file mode 100644 index 000000000..927b85ff8 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/github/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "github" | Architecture Center + + + + + +

We found 2 articles tagged with "github"

View All Tags

Identity Federation with GitHub

Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.

Identity Federation with GitHub

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/google/index.html b/pr-preview/pr-186/docs/tags/google/index.html new file mode 100644 index 000000000..e34997329 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/google/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "google" | Architecture Center + + + + + +

We found 4 articles tagged with "google"

View All Tags

Design with dynamic subnets

The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:

Design with static subnets in multiple regions

The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute2 connects to Subnet2). The compute in the first region (e.g., Compute) has access to the internet.

Multicloud Google Cloud

This section shows how to deploy your application on Google Cloud. You can create your application in multiple regions. Cloud Create can auto-generate one subnet for each region or you can design the subnets manually.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/government/index.html b/pr-preview/pr-186/docs/tags/government/index.html new file mode 100644 index 000000000..8cb7fdaec --- /dev/null +++ b/pr-preview/pr-186/docs/tags/government/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "government" | Architecture Center + + + + + +

We found one article tagged with "government"

View All Tags

Sovereign Digitalization for the City of Kirchheim unter Teck

The City of Kirchheim unter Teck uses the BundesMessenger from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/grafana/index.html b/pr-preview/pr-186/docs/tags/grafana/index.html new file mode 100644 index 000000000..a4b07bcf3 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/grafana/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "grafana" | Architecture Center + + + + + +

We found one article tagged with "grafana"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/harbor/index.html b/pr-preview/pr-186/docs/tags/harbor/index.html new file mode 100644 index 000000000..538824e6e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/harbor/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "harbor" | Architecture Center + + + + + +

We found one article tagged with "harbor"

View All Tags

Migrating Container Images

Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/hashicorp/index.html b/pr-preview/pr-186/docs/tags/hashicorp/index.html new file mode 100644 index 000000000..60ac11739 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/hashicorp/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "hashicorp" | Architecture Center + + + + + +

We found one article tagged with "hashicorp"

View All Tags

Secrets management with CCE and Hashicorp Vault

Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/healthcare/index.html b/pr-preview/pr-186/docs/tags/healthcare/index.html new file mode 100644 index 000000000..271d4dbe3 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/healthcare/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "healthcare" | Architecture Center + + + + + +

We found 2 articles tagged with "healthcare"

View All Tags

Fuse-AI: e-Health from the Cloud

Fuse-AI is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. “The biggest advantage is the improved quality of a diagnosis,” says Maximilian Waschka, one of the four Fuse-AI founders. “Our algorithm helps radiologists notice abnormalities on thousands of images more reliably.” The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations.

Open Telekom Cloud for Dementia Therapy App

To meet the strict guidelines for the German digital health market, the team from Brain+ wanted to provide the backend for its app from a German cloud, and Brain+ chose the Open Telekom Cloud. In addition to that, with a growing focus on the UK market, Open Telekom Cloud can provide a framework allowing the team to scale to the UK and later to the rest of Europe.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/high-availability/index.html b/pr-preview/pr-186/docs/tags/high-availability/index.html new file mode 100644 index 000000000..6caa0e528 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/high-availability/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "high-availability" | Architecture Center + + + + + +

We found one article tagged with "high-availability"

View All Tags

Building Highly Available Web Server Clusters with Keepalived

Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/hpa/index.html b/pr-preview/pr-186/docs/tags/hpa/index.html new file mode 100644 index 000000000..008c7b276 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/hpa/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "hpa" | Architecture Center + + + + + +

We found one article tagged with "hpa"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/hybrid/index.html b/pr-preview/pr-186/docs/tags/hybrid/index.html new file mode 100644 index 000000000..06647583a --- /dev/null +++ b/pr-preview/pr-186/docs/tags/hybrid/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "hybrid" | Architecture Center + + + + + +

We found one article tagged with "hybrid"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/iam/index.html b/pr-preview/pr-186/docs/tags/iam/index.html new file mode 100644 index 000000000..c90c7d993 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/iam/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "iam" | Architecture Center + + + + + +

We found 3 articles tagged with "iam"

View All Tags

Identity Federation with GitHub

Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.

Identity Federation with GitHub

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/image-syncer/index.html b/pr-preview/pr-186/docs/tags/image-syncer/index.html new file mode 100644 index 000000000..766a21d53 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/image-syncer/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "image-syncer" | Architecture Center + + + + + +

We found one article tagged with "image-syncer"

View All Tags

Migrating Container Images

Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/ims/index.html b/pr-preview/pr-186/docs/tags/ims/index.html new file mode 100644 index 000000000..5c5145ee0 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/ims/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "ims" | Architecture Center + + + + + +

We found 2 articles tagged with "ims"

View All Tags

Migrating Service Data Across Accounts (Data Disks)

Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/index.html b/pr-preview/pr-186/docs/tags/index.html new file mode 100644 index 000000000..34ebd1a38 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Tags | Architecture Center + + + + + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/ingress/index.html b/pr-preview/pr-186/docs/tags/ingress/index.html new file mode 100644 index 000000000..50c5bc307 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/ingress/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "ingress" | Architecture Center + + + + + +

We found 2 articles tagged with "ingress"

View All Tags

Deploy Authentik on CCE

This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/innovation/index.html b/pr-preview/pr-186/docs/tags/innovation/index.html new file mode 100644 index 000000000..419a49616 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/innovation/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "innovation" | Architecture Center + + + + + +

We found one article tagged with "innovation"

View All Tags

Xelera: Middleware Ignites the Application Turbo

The founders of Hessian start-up Xelera have developed middleware that greatly accelerates data processing. The best thing: Computing-intensive algorithms are processed in freely programmable circuits, so-called Field Programmable Gate Arrays (FPGAs). These are hardware cards that can be individually programmed depending on the intended use. In this way, they process tasks within a server considerably faster than standard hardware and thus considerably accelerate applications.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/jenkins/index.html b/pr-preview/pr-186/docs/tags/jenkins/index.html new file mode 100644 index 000000000..3366f5c76 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/jenkins/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "jenkins" | Architecture Center + + + + + +

We found one article tagged with "jenkins"

View All Tags

Build a CI Pipeline with Jenkins, SWR and CCE

This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/jump-server/index.html b/pr-preview/pr-186/docs/tags/jump-server/index.html new file mode 100644 index 000000000..19345f53b --- /dev/null +++ b/pr-preview/pr-186/docs/tags/jump-server/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "jump-server" | Architecture Center + + + + + +

We found 2 articles tagged with "jump-server"

View All Tags

Using Nginx for Public Access of DCS Redis Instances

This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster DCS Redis 4.0, 5.0, or 6.0 instance by using a jump server. This solution cannot be used to access a Redis Cluster instance over public networks.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/kafka/index.html b/pr-preview/pr-186/docs/tags/kafka/index.html new file mode 100644 index 000000000..9a0ad49b9 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/kafka/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "kafka" | Architecture Center + + + + + +

We found one article tagged with "kafka"

View All Tags

Migrating Kafka Services

This solution will demonstrate how you can migrate Kafka services to connect message producers and consumers to a new Kafka instance and can even migrate persisted message data to a new Kafka instance.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/keepalived/index.html b/pr-preview/pr-186/docs/tags/keepalived/index.html new file mode 100644 index 000000000..47bbf4562 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/keepalived/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "keepalived" | Architecture Center + + + + + +

We found one article tagged with "keepalived"

View All Tags

Building Highly Available Web Server Clusters with Keepalived

Virtual IP addresses are used for active and standby switchover of ECSs to achieve high availability. This way if one ECS goes down for some reason, the other one can take over and services continue uninterrupted. This article uses CentOS Stream release 9 ECSs as an example to describe how to set up highly available web server clusters using Keepalived and Nginx.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/keycloak/index.html b/pr-preview/pr-186/docs/tags/keycloak/index.html new file mode 100644 index 000000000..5722cb04d --- /dev/null +++ b/pr-preview/pr-186/docs/tags/keycloak/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "keycloak" | Architecture Center + + + + + +

We found 3 articles tagged with "keycloak"

View All Tags

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

Identity Federation with GitHub

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

Keycloak

Keycloak is an open-source identity and access management (IAM) solution

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/lets-encrypt/index.html b/pr-preview/pr-186/docs/tags/lets-encrypt/index.html new file mode 100644 index 000000000..a0dd83cc5 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/lets-encrypt/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "lets-encrypt" | Architecture Center + + + + + +

We found one article tagged with "lets-encrypt"

View All Tags

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/load-balancer/index.html b/pr-preview/pr-186/docs/tags/load-balancer/index.html new file mode 100644 index 000000000..7fb3394f1 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/load-balancer/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "load-balancer" | Architecture Center + + + + + +

We found one article tagged with "load-balancer"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/load-balancing/index.html b/pr-preview/pr-186/docs/tags/load-balancing/index.html new file mode 100644 index 000000000..15c385482 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/load-balancing/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "load-balancing" | Architecture Center + + + + + +

We found 3 articles tagged with "load-balancing"

View All Tags

Using Advanced Forwarding for Application Iteration

As the business grows, you may need to upgrade your application. Both the old and new versions are used. Now, the new version is optimized based on users' feedback, and you want all the users to use the new version. In this process, you can use advanced forwarding to route requests to different versions.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/logging/index.html b/pr-preview/pr-186/docs/tags/logging/index.html new file mode 100644 index 000000000..d3bc147d2 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/logging/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "logging" | Architecture Center + + + + + +

We found 2 articles tagged with "logging"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/logs/index.html b/pr-preview/pr-186/docs/tags/logs/index.html new file mode 100644 index 000000000..ac41c0acc --- /dev/null +++ b/pr-preview/pr-186/docs/tags/logs/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "logs" | Architecture Center + + + + + +

We found one article tagged with "logs"

View All Tags

Auditing and Analyzing Logins and Logouts with Functiongraph

Cloud Trace Service (CTS) collects real-time records of operations on cloud resources. You can create a CTS trigger to obtain records of subscribed cloud resource operations, analyze and process the operation records, and report alarms. You can use Simple Message Notification (SMN) to push alarm messages to service personnel by SMS message or email. Figure 1 shows the procedure.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/loki/index.html b/pr-preview/pr-186/docs/tags/loki/index.html new file mode 100644 index 000000000..b11bd7402 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/loki/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "loki" | Architecture Center + + + + + +

We found one article tagged with "loki"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/lts/index.html b/pr-preview/pr-186/docs/tags/lts/index.html new file mode 100644 index 000000000..d7737f6a7 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/lts/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "lts" | Architecture Center + + + + + +

We found one article tagged with "lts"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/media/index.html b/pr-preview/pr-186/docs/tags/media/index.html new file mode 100644 index 000000000..95f8e03cf --- /dev/null +++ b/pr-preview/pr-186/docs/tags/media/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "media" | Architecture Center + + + + + +

We found one article tagged with "media"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/migration/index.html b/pr-preview/pr-186/docs/tags/migration/index.html new file mode 100644 index 000000000..23b8e579f --- /dev/null +++ b/pr-preview/pr-186/docs/tags/migration/index.html @@ -0,0 +1,14 @@ + + + + + +We found 12 articles tagged with "migration" | Architecture Center + + + + + +

We found 12 articles tagged with "migration"

View All Tags

From ECS-hosted MongoDB to DDS

DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

From On-Premises MongoDB to DDS

DRS helps you migrate data from on-premises MongoDB databases to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

From Other Cloud MongoDB to DDS

DRS helps you migrate MongoDB databases from other cloud platforms to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

How Do Replica Sets Achieve High Availability and Read/Write Splitting?

DDS replica set instances can store multiple duplicates to ensure data high availability and support the automatic switch of private IP addresses to ensure service high availability. To enhance the read and write performance of your client for connecting to the instance, you can use your client to read different data copies. You need to connect to replica set instances using HA connection addresses. You can also configure read/write splitting. Otherwise, the high availability and high read performance of replica set instances cannot be guaranteed.

Migrating Clusters from Other Clouds to CCE

Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.

Migrating Container Images

Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.

Migrating Kafka Services

This solution will demonstrate how you can migrate Kafka services to connect message producers and consumers to a new Kafka instance and can even migrate persisted message data to a new Kafka instance.

Migrating Service Data Across Accounts (Data Disks)

Generally, service data is stored on data disks. To migrate the data across accounts, you need to create data disk images and share them with the target account. This section uses Linux as an example to describe how to migrate service data (only data disks) across accounts in the same region.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/minio/index.html b/pr-preview/pr-186/docs/tags/minio/index.html new file mode 100644 index 000000000..4db87acd9 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/minio/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "minio" | Architecture Center + + + + + +

We found 2 articles tagged with "minio"

View All Tags

Migrating Clusters from Other Clouds to CCE

Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/mirror-maker/index.html b/pr-preview/pr-186/docs/tags/mirror-maker/index.html new file mode 100644 index 000000000..1591c54a3 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/mirror-maker/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "mirror-maker" | Architecture Center + + + + + +

We found one article tagged with "mirror-maker"

View All Tags

Migrating Kafka Services

This solution will demonstrate how you can migrate Kafka services to connect message producers and consumers to a new Kafka instance and can even migrate persisted message data to a new Kafka instance.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/mongodb/index.html b/pr-preview/pr-186/docs/tags/mongodb/index.html new file mode 100644 index 000000000..088871eea --- /dev/null +++ b/pr-preview/pr-186/docs/tags/mongodb/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "mongodb" | Architecture Center + + + + + +

We found 4 articles tagged with "mongodb"

View All Tags

From ECS-hosted MongoDB to DDS

DRS helps you migrate data from MongoDB databases on ECSs to DDS instances on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

From On-Premises MongoDB to DDS

DRS helps you migrate data from on-premises MongoDB databases to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

From Other Cloud MongoDB to DDS

DRS helps you migrate MongoDB databases from other cloud platforms to DDS on the current cloud. With DRS, you can migrate databases online with zero downtime and your services and databases can remain operational during migration.

How Do Replica Sets Achieve High Availability and Read/Write Splitting?

DDS replica set instances can store multiple duplicates to ensure data high availability and support the automatic switch of private IP addresses to ensure service high availability. To enhance the read and write performance of your client for connecting to the instance, you can use your client to read different data copies. You need to connect to replica set instances using HA connection addresses. You can also configure read/write splitting. Otherwise, the high availability and high read performance of replica set instances cannot be guaranteed.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/multi-cloud/index.html b/pr-preview/pr-186/docs/tags/multi-cloud/index.html new file mode 100644 index 000000000..d37e8fa5e --- /dev/null +++ b/pr-preview/pr-186/docs/tags/multi-cloud/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "multi-cloud" | Architecture Center + + + + + +

We found 4 articles tagged with "multi-cloud"

View All Tags

Design with dynamic subnets

The Section Design your application with static subnets in multiple regions shows how to define multiple subnets for a network explicitly. However, users may not want to define the subnets explicitly. In such a case, the Cloud Create will auto-generate one subnet for each region dynamically as follows:

Design with static subnets in multiple regions

The following tutorial describes how to design an application with one (global) private network spanning in two regions of Google Cloud. Each region has one subnet and one compute connecting to the subnet (e.g., Compute connects to Subnet, Compute2 connects to Subnet2). The compute in the first region (e.g., Compute) has access to the internet.

Multicloud Google Cloud

This section shows how to deploy your application on Google Cloud. You can create your application in multiple regions. Cloud Create can auto-generate one subnet for each region or you can design the subnets manually.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/nat-gateway/index.html b/pr-preview/pr-186/docs/tags/nat-gateway/index.html new file mode 100644 index 000000000..b965f2fda --- /dev/null +++ b/pr-preview/pr-186/docs/tags/nat-gateway/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "nat-gateway" | Architecture Center + + + + + +

We found one article tagged with "nat-gateway"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/networking/index.html b/pr-preview/pr-186/docs/tags/networking/index.html new file mode 100644 index 000000000..11b195b39 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/networking/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "networking" | Architecture Center + + + + + +

We found one article tagged with "networking"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/nfs/index.html b/pr-preview/pr-186/docs/tags/nfs/index.html new file mode 100644 index 000000000..54f2ce843 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/nfs/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "nfs" | Architecture Center + + + + + +

We found one article tagged with "nfs"

View All Tags

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/nginx-ingress/index.html b/pr-preview/pr-186/docs/tags/nginx-ingress/index.html new file mode 100644 index 000000000..59ebc163d --- /dev/null +++ b/pr-preview/pr-186/docs/tags/nginx-ingress/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "nginx-ingress" | Architecture Center + + + + + +

We found 2 articles tagged with "nginx-ingress"

View All Tags

Deploy Authentik on CCE

This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/nginx/index.html b/pr-preview/pr-186/docs/tags/nginx/index.html new file mode 100644 index 000000000..57d4a55ec --- /dev/null +++ b/pr-preview/pr-186/docs/tags/nginx/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "nginx" | Architecture Center + + + + + +

We found 2 articles tagged with "nginx"

View All Tags

Accessing OBS Through an NGINX Reverse Proxy

Generally, you can access OBS using a bucket's access domain name (for example, https://bucketname.obs.eu-de.otc.t-systems.com) provided by OBS or using a user-defined domain name bound to an OBS bucket.

Using Nginx for Public Access of DCS Redis Instances

This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster DCS Redis 4.0, 5.0, or 6.0 instance by using a jump server. This solution cannot be used to access a Redis Cluster instance over public networks.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/oauth-2/index.html b/pr-preview/pr-186/docs/tags/oauth-2/index.html new file mode 100644 index 000000000..c1716c0ce --- /dev/null +++ b/pr-preview/pr-186/docs/tags/oauth-2/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "oauth2" | Architecture Center + + + + + +

We found 3 articles tagged with "oauth2"

View All Tags

Identity Federation with GitHub

Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.

Identity Federation with GitHub

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/obs/index.html b/pr-preview/pr-186/docs/tags/obs/index.html new file mode 100644 index 000000000..1474cd7ce --- /dev/null +++ b/pr-preview/pr-186/docs/tags/obs/index.html @@ -0,0 +1,14 @@ + + + + + +We found 6 articles tagged with "obs" | Architecture Center + + + + + +

We found 6 articles tagged with "obs"

View All Tags

Accessing OBS Through an NGINX Reverse Proxy

Generally, you can access OBS using a bucket's access domain name (for example, https://bucketname.obs.eu-de.otc.t-systems.com) provided by OBS or using a user-defined domain name bound to an OBS bucket.

Migrating Clusters from Other Clouds to CCE

Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/observability/index.html b/pr-preview/pr-186/docs/tags/observability/index.html new file mode 100644 index 000000000..119ccc489 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/observability/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "observability" | Architecture Center + + + + + +

We found one article tagged with "observability"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/omnichannel/index.html b/pr-preview/pr-186/docs/tags/omnichannel/index.html new file mode 100644 index 000000000..ea62c3182 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/omnichannel/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "omnichannel" | Architecture Center + + + + + +

We found one article tagged with "omnichannel"

View All Tags

Omnichannel Platform by brodos.net

With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/openshift/index.html b/pr-preview/pr-186/docs/tags/openshift/index.html new file mode 100644 index 000000000..dd66fc7e3 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/openshift/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "openshift" | Architecture Center + + + + + +

We found one article tagged with "openshift"

View All Tags

OpenShift Template

The following tutorial shows you how to register a (trial) subscription key from Red Hat and uses it to create an OpenShift cluster using the OpenShift template.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/postgresql/index.html b/pr-preview/pr-186/docs/tags/postgresql/index.html new file mode 100644 index 000000000..aef4c22e7 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/postgresql/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "postgresql" | Architecture Center + + + + + +

We found 3 articles tagged with "postgresql"

View All Tags

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

Deploy Umami on CCE

In this blueprint we are going to set up Umami on Open Telekom Cloud's Cloud Container Engine (CCE), leveraging Kubernetes for scalability and flexibility. For the database backend, we will use the Zalando PostgreSQL Operator to provision and manage a PostgreSQL cluster within the CCE environment.

Using RDS for PostgreSQL to Set Up Umami on ECS

In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/prometheus-adapter/index.html b/pr-preview/pr-186/docs/tags/prometheus-adapter/index.html new file mode 100644 index 000000000..1c282ac85 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/prometheus-adapter/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "prometheus-adapter" | Architecture Center + + + + + +

We found one article tagged with "prometheus-adapter"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/prometheus-exporter/index.html b/pr-preview/pr-186/docs/tags/prometheus-exporter/index.html new file mode 100644 index 000000000..5aca7067b --- /dev/null +++ b/pr-preview/pr-186/docs/tags/prometheus-exporter/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "prometheus-exporter" | Architecture Center + + + + + +

We found one article tagged with "prometheus-exporter"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/prometheus/index.html b/pr-preview/pr-186/docs/tags/prometheus/index.html new file mode 100644 index 000000000..03e0e1a38 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/prometheus/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "prometheus" | Architecture Center + + + + + +

We found one article tagged with "prometheus"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/promtail/index.html b/pr-preview/pr-186/docs/tags/promtail/index.html new file mode 100644 index 000000000..33a254b81 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/promtail/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "promtail" | Architecture Center + + + + + +

We found one article tagged with "promtail"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/raid/index.html b/pr-preview/pr-186/docs/tags/raid/index.html new file mode 100644 index 000000000..37f80f883 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/raid/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "raid" | Architecture Center + + + + + +

We found one article tagged with "raid"

View All Tags

RAID Array Creation with EVS Disks

Redundant Array of Independent Disks (RAID) is a technology that combines multiple physical disks into one or more logical units for the purposes of data redundancy and performance improvement.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/rds/index.html b/pr-preview/pr-186/docs/tags/rds/index.html new file mode 100644 index 000000000..c9de4df37 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/rds/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "rds" | Architecture Center + + + + + +

We found 2 articles tagged with "rds"

View All Tags

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

Using RDS for PostgreSQL to Set Up Umami on ECS

In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/redis/index.html b/pr-preview/pr-186/docs/tags/redis/index.html new file mode 100644 index 000000000..e57dbfcd0 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/redis/index.html @@ -0,0 +1,14 @@ + + + + + +We found 4 articles tagged with "redis" | Architecture Center + + + + + +

We found 4 articles tagged with "redis"

View All Tags

Connecting a Redis Client to DCS Through CCE

With the development of the container technology, more and more applications are deployed in containers. This section describes how to deploy a Redis client in a Cloud Container Engine (CCE) cluster container and connect it to DCS.

Using ELB for Public Access to DCS

Currently, DCS Redis 4.0, 5.0, and 6.0 instances cannot be bound with elastic IP addresses (EIPs) and cannot be accessed over public networks directly. This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster instance or a node in a Redis Cluster instance through public networks by enabling cross-VPC backend on a load balancer.

Using Nginx for Public Access of DCS Redis Instances

This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster DCS Redis 4.0, 5.0, or 6.0 instance by using a jump server. This solution cannot be used to access a Redis Cluster instance over public networks.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/retail/index.html b/pr-preview/pr-186/docs/tags/retail/index.html new file mode 100644 index 000000000..cea21fce8 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/retail/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "retail" | Architecture Center + + + + + +

We found one article tagged with "retail"

View All Tags

Omnichannel Platform by brodos.net

With the help of resources from the Open Telekom Cloud, brodos.net is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/reverse-proxy/index.html b/pr-preview/pr-186/docs/tags/reverse-proxy/index.html new file mode 100644 index 000000000..e5286a9f9 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/reverse-proxy/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "reverse-proxy" | Architecture Center + + + + + +

We found one article tagged with "reverse-proxy"

View All Tags

Accessing OBS Through an NGINX Reverse Proxy

Generally, you can access OBS using a bucket's access domain name (for example, https://bucketname.obs.eu-de.otc.t-systems.com) provided by OBS or using a user-defined domain name bound to an OBS bucket.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/sdrs/index.html b/pr-preview/pr-186/docs/tags/sdrs/index.html new file mode 100644 index 000000000..a6c3faa45 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/sdrs/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "sdrs" | Architecture Center + + + + + +

We found one article tagged with "sdrs"

View All Tags

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/secrets/index.html b/pr-preview/pr-186/docs/tags/secrets/index.html new file mode 100644 index 000000000..fca55bebf --- /dev/null +++ b/pr-preview/pr-186/docs/tags/secrets/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "secrets" | Architecture Center + + + + + +

We found one article tagged with "secrets"

View All Tags

Secrets management with CCE and Hashicorp Vault

Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/security/index.html b/pr-preview/pr-186/docs/tags/security/index.html new file mode 100644 index 000000000..e5c4c66a9 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/security/index.html @@ -0,0 +1,14 @@ + + + + + +We found 9 articles tagged with "security" | Architecture Center + + + + + +

We found 9 articles tagged with "security"

View All Tags

Authentik

Authentik is a modern, open-source Identity Provider (IdP) that offers flexible and secure authentication and authorization solutions for organizations of all sizes. It provides a comprehensive suite of identity management features, allowing businesses to centralize user authentication, implement single sign-on (SSO), and manage access to various applications and services.

Configuring Anti-Crawler Rules to Prevent Crawler Attacks

WAF provides three anti-crawler policies, bot detection by identifying User-Agent, website anti-crawler by checking browser validity, and CC attack protection by limiting the access frequency, to comprehensively mitigate crawler attacks against your websites.

Deploy Authentik on CCE

This tutorial will guide you through the process of setting up authentik on your CCE Kubernetes environment.

Deploy Keycloak on CCE

In this blueprint, we are going to discuss the steps to install Keycloak, in Open Telekom Cloud, on a CCE Cluster.

Identity Federation with GitHub

Identity Federation with GitHub refers to the process of allowing users to authenticate using their GitHub credentials to access various applications and services. This method leverages GitHub as an identity provider (IdP), enabling single sign-on (SSO) capabilities and simplifying user management across different platforms.

Identity Federation with GitHub

Identity Federation in Keycloak refers to the ability to use external identity providers to authenticate users in your application. In this context, GitHub can be used as an identity provider, allowing users to log in to your Open Telekom Cloud tenant using their GitHub credentials. Users can choose to log in with their GitHub accounts and Keycloak takes care of the authentication process, providing a seamless experience for users while ensuring security and centralized identity management for external accounts that are not actively managed in your tenant's IAM.

Keycloak

Keycloak is an open-source identity and access management (IAM) solution

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/ssh/index.html b/pr-preview/pr-186/docs/tags/ssh/index.html new file mode 100644 index 000000000..2289b0705 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/ssh/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "ssh" | Architecture Center + + + + + +

We found one article tagged with "ssh"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/storage/index.html b/pr-preview/pr-186/docs/tags/storage/index.html new file mode 100644 index 000000000..f7976bbff --- /dev/null +++ b/pr-preview/pr-186/docs/tags/storage/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "storage" | Architecture Center + + + + + +

We found 3 articles tagged with "storage"

View All Tags

Accessing OBS Through an NGINX Reverse Proxy

Generally, you can access OBS using a bucket's access domain name (for example, https://bucketname.obs.eu-de.otc.t-systems.com) provided by OBS or using a user-defined domain name bound to an OBS bucket.

RAID Array Creation with EVS Disks

Redundant Array of Independent Disks (RAID) is a technology that combines multiple physical disks into one or more logical units for the purposes of data redundancy and performance improvement.

Zone-redundant NFS Server

The main target of this blueprint is to provide a zone-redundant NFS Server with the option to perform a failover. We are going to use ECS, EVS and Storage Disaster Recovery Service of Open Telekom Cloud for that. Additionally we will cover operational tasks like extending the size of the NFS Share.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/swr/index.html b/pr-preview/pr-186/docs/tags/swr/index.html new file mode 100644 index 000000000..9bafa63c1 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/swr/index.html @@ -0,0 +1,14 @@ + + + + + +We found 5 articles tagged with "swr" | Architecture Center + + + + + +

We found 5 articles tagged with "swr"

View All Tags

Auto Scaling Based on ELB Monitoring Metrics

By default, Kubernetes scales a workload based on resource usage metrics such as CPU and memory. However, this mechanism cannot reflect the real-time resource usage when traffic bursts arrive, because the collected CPU and memory usage data lags behind the actual load balancer traffic metrics. For some services (such as flash sale and social media) that require fast auto scaling, scaling based on this rule may not be performed in a timely manner and cannot meet these services' actual needs. In this case, auto scaling based on ELB QPS data can respond to service requirements more timely.

Build a CI Pipeline with Jenkins, SWR and CCE

This blueprint covers integrating Jenkins with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Jenkins in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

Build a CI/CD Pipeline with Devtron, SWR and CCE

This blueprint covers integrating Devtron with Open Telekom Cloud Container Engine (CCE) for efficient CI/CD pipelines. It details installing Devtron in CCE clusters, emphasizing using containerized Masters and dynamic Agents managed by Kubernetes for optimal resource utilization and self-healing. The Master schedules jobs, which Agents execute within Kubernetes pods. This setup enhances security and maintenance efficiency.

Migrating Container Images

Containers are growing in popularity. Many enterprises choose to build their own Kubernetes clusters. However, the O&M workload of on-premises clusters is heavy, and O&M personnel need to configure the management systems and monitoring solutions by themselves. For enterprises, managing a large number of images requires high O&M, labor, and management costs, and the efficiency is low. SoftWare Repository for Container (SWR) manages container images that function on multiple architectures, such as Linux and Arm. Enterprises can migrate their image repositories to SWR to reduce costs.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/telecommunications/index.html b/pr-preview/pr-186/docs/tags/telecommunications/index.html new file mode 100644 index 000000000..5691e9717 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/telecommunications/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "telecommunications" | Architecture Center + + + + + +

We found one article tagged with "telecommunications"

View All Tags

Fiber-Factory: Accelerated Grid Expansion

More than 33 million households in Germany can access speeds of over 50 MBit/s, thanks to Telekom's fiber optic expansion. This enables people to work from home, streaming, and business line connectivity. Now Telekom is planning to expand the network for up to two million more households each year starting in 2021. This involved extensive construction measures. In order to plan these more efficiently, secure resources from the Open Telekom Cloud are providing support.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/tunneling/index.html b/pr-preview/pr-186/docs/tags/tunneling/index.html new file mode 100644 index 000000000..f844adc2f --- /dev/null +++ b/pr-preview/pr-186/docs/tags/tunneling/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "tunneling" | Architecture Center + + + + + +

We found one article tagged with "tunneling"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/umami/index.html b/pr-preview/pr-186/docs/tags/umami/index.html new file mode 100644 index 000000000..b7d28d9bc --- /dev/null +++ b/pr-preview/pr-186/docs/tags/umami/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "umami" | Architecture Center + + + + + +

We found 3 articles tagged with "umami"

View All Tags

Deploy Umami on CCE

In this blueprint we are going to set up Umami on Open Telekom Cloud's Cloud Container Engine (CCE), leveraging Kubernetes for scalability and flexibility. For the database backend, we will use the Zalando PostgreSQL Operator to provision and manage a PostgreSQL cluster within the CCE environment.

Umami

Umami is a privacy-focused, open-source web analytics tool designed to provide essential website usage insights without compromising user privacy. It offers core metrics like page views, user behavior, and traffic sources while ensuring compliance with privacy laws by not using cookies or tracking personal data. Lightweight and simple to integrate, Umami delivers real-time data and customizable reporting features, making it a popular alternative to traditional analytics tools. Its emphasis on transparency and user control makes it appealing to businesses prioritizing data privacy and minimalism in web tracking.

Using RDS for PostgreSQL to Set Up Umami on ECS

In this blueprint we are going to set up Umami on Open Telekom Cloud leveraging an Elastic Cloud Server (ECS), while using Relational Database Service (RDS) for PostgreSQL to manage the database.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/vault/index.html b/pr-preview/pr-186/docs/tags/vault/index.html new file mode 100644 index 000000000..9c31e70f6 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/vault/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "vault" | Architecture Center + + + + + +

We found one article tagged with "vault"

View All Tags

Secrets management with CCE and Hashicorp Vault

Most modern IT setups are composed of several subsystems like databases, object stores, master controller, node access, and more. To access one component from another, some form of credentials are required. Configuring and storing these secrets directly in the components is considered as an anti-pattern, since a vulnerability of one component may iteratively and transitively affect the security of the whole setup.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/velero/index.html b/pr-preview/pr-186/docs/tags/velero/index.html new file mode 100644 index 000000000..b373d5ab0 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/velero/index.html @@ -0,0 +1,14 @@ + + + + + +We found 5 articles tagged with "velero" | Architecture Center + + + + + +

We found 5 articles tagged with "velero"

View All Tags

Migrating Clusters from Other Clouds to CCE

Assume that you have deployed the WordPress on 3rd party cloud provider and created your own blog; this document will drive you through how to smoothly migrate an application from a managed Kubernetes cluster on that provider to a Open Telekom Cloud CCE in six easy steps without interrupting the service.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/virtualbox/index.html b/pr-preview/pr-186/docs/tags/virtualbox/index.html new file mode 100644 index 000000000..88ea5eb9d --- /dev/null +++ b/pr-preview/pr-186/docs/tags/virtualbox/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "virtualbox" | Architecture Center + + + + + +

We found one article tagged with "virtualbox"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/vpc-peering/index.html b/pr-preview/pr-186/docs/tags/vpc-peering/index.html new file mode 100644 index 000000000..c0416e1d9 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/vpc-peering/index.html @@ -0,0 +1,14 @@ + + + + + +We found 2 articles tagged with "vpc-peering" | Architecture Center + + + + + +

We found 2 articles tagged with "vpc-peering"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/vpc/index.html b/pr-preview/pr-186/docs/tags/vpc/index.html new file mode 100644 index 000000000..c9e694f20 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/vpc/index.html @@ -0,0 +1,14 @@ + + + + + +We found 5 articles tagged with "vpc" | Architecture Center + + + + + +

We found 5 articles tagged with "vpc"

View All Tags

Using Advanced Forwarding for Application Iteration

As the business grows, you may need to upgrade your application. Both the old and new versions are used. Now, the new version is optimized based on users' feedback, and you want all the users to use the new version. In this process, you can use advanced forwarding to route requests to different versions.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/vpn/index.html b/pr-preview/pr-186/docs/tags/vpn/index.html new file mode 100644 index 000000000..55dd0a9ed --- /dev/null +++ b/pr-preview/pr-186/docs/tags/vpn/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "vpn" | Architecture Center + + + + + +

We found one article tagged with "vpn"

View All Tags
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/waf/index.html b/pr-preview/pr-186/docs/tags/waf/index.html new file mode 100644 index 000000000..2c32e7e13 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/waf/index.html @@ -0,0 +1,14 @@ + + + + + +We found 3 articles tagged with "waf" | Architecture Center + + + + + +

We found 3 articles tagged with "waf"

View All Tags

Configuring Anti-Crawler Rules to Prevent Crawler Attacks

WAF provides three anti-crawler policies, bot detection by identifying User-Agent, website anti-crawler by checking browser validity, and CC attack protection by limiting the access frequency, to comprehensively mitigate crawler attacks against your websites.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/docs/tags/webhook/index.html b/pr-preview/pr-186/docs/tags/webhook/index.html new file mode 100644 index 000000000..02b09be77 --- /dev/null +++ b/pr-preview/pr-186/docs/tags/webhook/index.html @@ -0,0 +1,14 @@ + + + + + +We found one article tagged with "webhook" | Architecture Center + + + + + +

We found one article tagged with "webhook"

View All Tags

Issue an ACME Certificate with DNS01 Solver in CCE

A DNS01 challenge is a type of challenge used in the Domain Name System (DNS) to verify ownership of a domain during the process of obtaining an SSL/TLS certificate, often through services like Let's Encrypt.

+ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/add_extension_vscode.png b/pr-preview/pr-186/img/add_extension_vscode.png new file mode 100644 index 000000000..0f247f402 Binary files /dev/null and b/pr-preview/pr-186/img/add_extension_vscode.png differ diff --git a/pr-preview/pr-186/img/best-practices.svg b/pr-preview/pr-186/img/best-practices.svg new file mode 100644 index 000000000..12bc408de --- /dev/null +++ b/pr-preview/pr-186/img/best-practices.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/blueprints.svg b/pr-preview/pr-186/img/blueprints.svg new file mode 100644 index 000000000..9b48b362e --- /dev/null +++ b/pr-preview/pr-186/img/blueprints.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/caf.svg b/pr-preview/pr-186/img/caf.svg new file mode 100644 index 000000000..505f7766f --- /dev/null +++ b/pr-preview/pr-186/img/caf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/configure_gh_pages.png b/pr-preview/pr-186/img/configure_gh_pages.png new file mode 100644 index 000000000..411438d57 Binary files /dev/null and b/pr-preview/pr-186/img/configure_gh_pages.png differ diff --git a/pr-preview/pr-186/img/cross_repo_commit_token.png b/pr-preview/pr-186/img/cross_repo_commit_token.png new file mode 100644 index 000000000..10a76e95a Binary files /dev/null and b/pr-preview/pr-186/img/cross_repo_commit_token.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002072891388 (1).png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002072891388 (1).png new file mode 100644 index 000000000..0b862efc2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002072891388 (1).png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002072891388.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002072891388.png new file mode 100644 index 000000000..0b862efc2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002072891388.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051188.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051188.png new file mode 100644 index 000000000..15b8bed70 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051188.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051196.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051196.png new file mode 100644 index 000000000..719c4f204 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051196.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051228.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051228.png new file mode 100644 index 000000000..6e5d5b0ae Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002073051228.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108771009.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108771009.png new file mode 100644 index 000000000..719c4f204 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108771009.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108771013.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108771013.png new file mode 100644 index 000000000..6e5d5b0ae Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108771013.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108890949.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108890949.png new file mode 100644 index 000000000..3855ca308 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108890949.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108890953.png b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108890953.png new file mode 100644 index 000000000..236a82ad2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/api-gateway/en-us_image_0000002108890953.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/application-services/distributed-message-service/en-us_image_0000001348167557.png b/pr-preview/pr-186/img/docs/best-practices/application-services/distributed-message-service/en-us_image_0000001348167557.png new file mode 100644 index 000000000..8debeba10 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/application-services/distributed-message-service/en-us_image_0000001348167557.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001176019342.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001176019342.png new file mode 100644 index 000000000..d46c18d8c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001176019342.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212487004.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212487004.png new file mode 100644 index 000000000..4e1a0e056 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212487004.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212615152.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212615152.png new file mode 100644 index 000000000..5633f1445 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212615152.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212616602.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212616602.png new file mode 100644 index 000000000..a4bf68dd8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212616602.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212775562.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212775562.png new file mode 100644 index 000000000..7d77deefa Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212775562.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212776358.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212776358.png new file mode 100644 index 000000000..6d3b52650 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212776358.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212935148.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212935148.png new file mode 100644 index 000000000..9ff3ee76f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212935148.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212935184.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212935184.png new file mode 100644 index 000000000..f1340bed9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001212935184.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257296479.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257296479.png new file mode 100644 index 000000000..3ebe183ae Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257296479.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257296509.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257296509.png new file mode 100644 index 000000000..5230c56e0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257296509.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257326429.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257326429.png new file mode 100644 index 000000000..18ada3181 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257326429.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257415811.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257415811.png new file mode 100644 index 000000000..67a721cec Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257415811.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257496199.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257496199.png new file mode 100644 index 000000000..f86ba0f13 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257496199.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257496345.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257496345.png new file mode 100644 index 000000000..49849fe94 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0000001257496345.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926451.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926451.png new file mode 100644 index 000000000..e93b27313 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926451.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926452.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926452.png new file mode 100644 index 000000000..20616c84f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926452.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926466.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926466.png new file mode 100644 index 000000000..8593357cd Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0281926466.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681028.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681028.png new file mode 100644 index 000000000..252fafa31 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681028.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681029.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681029.png new file mode 100644 index 000000000..6cc540643 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681029.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681030.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681030.png new file mode 100644 index 000000000..062ec3ffe Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681030.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681031.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681031.png new file mode 100644 index 000000000..32b57c58d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681031.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681032.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681032.png new file mode 100644 index 000000000..2f32201d3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681032.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681033.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681033.png new file mode 100644 index 000000000..d2e59e2fa Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681033.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681034.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681034.png new file mode 100644 index 000000000..e6a7cc9a8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681034.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681035.png b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681035.png new file mode 100644 index 000000000..417750272 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/elastic-cloud-server/en-us_image_0285681035.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001138989308.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001138989308.png new file mode 100644 index 000000000..1568fc10b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001138989308.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001251619009.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001251619009.png new file mode 100644 index 000000000..0f5319f1e Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001251619009.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001251966577.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001251966577.png new file mode 100644 index 000000000..c80ebd1c3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001251966577.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001457709502.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001457709502.png new file mode 100644 index 000000000..69e3ceb60 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001457709502.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463836772.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463836772.png new file mode 100644 index 000000000..73e216aff Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463836772.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463840256.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463840256.png new file mode 100644 index 000000000..aa06091aa Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463840256.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463841764.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463841764.png new file mode 100644 index 000000000..247b0e895 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001463841764.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464002560.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464002560.png new file mode 100644 index 000000000..0659dab14 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464002560.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464031938.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464031938.png new file mode 100644 index 000000000..6bfa5a2ec Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464031938.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464149800.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464149800.png new file mode 100644 index 000000000..e18fa76c6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464149800.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464161876.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464161876.png new file mode 100644 index 000000000..aa27b99d4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001464161876.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514305585.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514305585.png new file mode 100644 index 000000000..e0128739b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514305585.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514311097.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514311097.png new file mode 100644 index 000000000..66aede2f3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514311097.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514558429.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514558429.png new file mode 100644 index 000000000..cfac9f708 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514558429.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514561077.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514561077.png new file mode 100644 index 000000000..1538e64d8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514561077.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514587325.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514587325.png new file mode 100644 index 000000000..dd7c1bd89 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514587325.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514670405.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514670405.png new file mode 100644 index 000000000..72e493205 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514670405.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514681605.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514681605.png new file mode 100644 index 000000000..30b2bf496 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001514681605.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001648507829.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001648507829.png new file mode 100644 index 000000000..40ae0fd41 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0000001648507829.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215471.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215471.png new file mode 100644 index 000000000..1a8c320f2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215471.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215473.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215473.png new file mode 100644 index 000000000..b3d44158f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215473.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215475.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215475.png new file mode 100644 index 000000000..abfa2fac0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215475.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215477.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215477.png new file mode 100644 index 000000000..859e5138d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0107215477.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0140629595.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0140629595.png new file mode 100644 index 000000000..14ec89a6f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0140629595.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0200645302.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0200645302.png new file mode 100644 index 000000000..6a9349928 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0200645302.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268280658.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268280658.png new file mode 100644 index 000000000..50aa580b4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268280658.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268284967.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268284967.png new file mode 100644 index 000000000..c5b27871d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268284967.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268287010.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268287010.png new file mode 100644 index 000000000..42c6f4588 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268287010.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268287244.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268287244.png new file mode 100644 index 000000000..84a919aa6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268287244.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268288436.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268288436.png new file mode 100644 index 000000000..1d8c61aac Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268288436.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268290676.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268290676.png new file mode 100644 index 000000000..c3c3d937b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268290676.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268337032.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268337032.png new file mode 100644 index 000000000..9e89ac89e Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268337032.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393752.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393752.png new file mode 100644 index 000000000..682794e75 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393752.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393798.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393798.png new file mode 100644 index 000000000..70cc2b9fe Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393798.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393846.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393846.png new file mode 100644 index 000000000..4c9f796e9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0268393846.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295094264.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295094264.png new file mode 100644 index 000000000..c5d0c1a8f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295094264.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295099813.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295099813.png new file mode 100644 index 000000000..396a66b0b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295099813.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295100003.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295100003.png new file mode 100644 index 000000000..8ac58e185 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295100003.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295117864.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295117864.png new file mode 100644 index 000000000..c9a10b370 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295117864.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295125718.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295125718.png new file mode 100644 index 000000000..f455ee262 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295125718.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295125796.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295125796.png new file mode 100644 index 000000000..a27d9f95a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295125796.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295128562.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295128562.png new file mode 100644 index 000000000..5bf96a0b8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295128562.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295129442.png b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295129442.png new file mode 100644 index 000000000..0f024cff5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/computing/image-management-service/en-us_image_0295129442.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/Screenshot from 2024-09-07 11-33-33.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/Screenshot from 2024-09-07 11-33-33.png new file mode 100644 index 000000000..e6875e2a7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/Screenshot from 2024-09-07 11-33-33.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001160642449.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001160642449.png new file mode 100644 index 000000000..0e64a8959 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001160642449.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001346958352.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001346958352.png new file mode 100644 index 000000000..132c4f0b9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001346958352.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001347115504.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001347115504.png new file mode 100644 index 000000000..f2ff09a42 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001347115504.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349490578.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349490578.png new file mode 100644 index 000000000..14c88dded Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349490578.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349649242.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349649242.png new file mode 100644 index 000000000..8b0221486 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349649242.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349986824.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349986824.png new file mode 100644 index 000000000..9edac59ba Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001349986824.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001350206690.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001350206690.png new file mode 100644 index 000000000..bb4c62d67 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001350206690.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001380832974.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001380832974.png new file mode 100644 index 000000000..603c94682 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001380832974.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001380992506.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001380992506.png new file mode 100644 index 000000000..fe48c09c9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001380992506.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001381152106.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001381152106.png new file mode 100644 index 000000000..111d397a2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001381152106.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001394383746.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001394383746.png new file mode 100644 index 000000000..21e746d6d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001394383746.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001398072089.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001398072089.png new file mode 100644 index 000000000..8f70ff3ac Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001398072089.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001399673949.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001399673949.png new file mode 100644 index 000000000..5186a57f3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001399673949.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001399744097.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001399744097.png new file mode 100644 index 000000000..b42d9b38e Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001399744097.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001400577445.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001400577445.png new file mode 100644 index 000000000..a788099b7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001400577445.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001400827629.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001400827629.png new file mode 100644 index 000000000..b210b7344 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001400827629.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001402114285.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001402114285.png new file mode 100644 index 000000000..0ed0df53b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001402114285.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416038826.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416038826.png new file mode 100644 index 000000000..386cba4a7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416038826.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416065764.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416065764.png new file mode 100644 index 000000000..5aea612c6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416065764.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416249976.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416249976.png new file mode 100644 index 000000000..e098dab88 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416249976.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416537408.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416537408.png new file mode 100644 index 000000000..e36c72299 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416537408.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416735230.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416735230.png new file mode 100644 index 000000000..e1b3f8808 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416735230.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416735446.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416735446.png new file mode 100644 index 000000000..31c54cb9d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001416735446.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418569120.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418569120.png new file mode 100644 index 000000000..2dc55c428 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418569120.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418569168.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418569168.png new file mode 100644 index 000000000..6851d8d73 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418569168.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418729104.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418729104.png new file mode 100644 index 000000000..a132dc55d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418729104.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418729128.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418729128.png new file mode 100644 index 000000000..4d57a0d81 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001418729128.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001431432309.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001431432309.png new file mode 100644 index 000000000..320c8c928 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001431432309.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001465972145.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001465972145.png new file mode 100644 index 000000000..cb7fbdf08 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001465972145.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001465973233.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001465973233.png new file mode 100644 index 000000000..303547f4f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001465973233.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001466618025.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001466618025.png new file mode 100644 index 000000000..1fd5560d0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001466618025.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001466646017.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001466646017.png new file mode 100644 index 000000000..6a2375f5f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001466646017.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468605617.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468605617.png new file mode 100644 index 000000000..f5da59a92 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468605617.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468885853.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468885853.png new file mode 100644 index 000000000..d2ea735f2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468885853.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468885889.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468885889.png new file mode 100644 index 000000000..a132dc55d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001468885889.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001469005601.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001469005601.png new file mode 100644 index 000000000..d2ea735f2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001469005601.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001471430697.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001471430697.png new file mode 100644 index 000000000..f465002cc Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001471430697.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001474360185.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001474360185.png new file mode 100644 index 000000000..7fe6b416c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001474360185.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001480191270.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001480191270.png new file mode 100644 index 000000000..290b94f19 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001480191270.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001606845825.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001606845825.png new file mode 100644 index 000000000..dc8f6a30f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001606845825.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001606847653.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001606847653.png new file mode 100644 index 000000000..da3aaefad Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0000001606847653.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817733.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817733.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817733.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817737.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817737.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817737.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817741.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817741.png new file mode 100644 index 000000000..b83dc3ea1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0261817741.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264587870.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264587870.png new file mode 100644 index 000000000..cd5c1d3d4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264587870.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264587871.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264587871.png new file mode 100644 index 000000000..fceb742c6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264587871.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264642164.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264642164.png new file mode 100644 index 000000000..87963dcbd Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0264642164.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402291.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402291.png new file mode 100644 index 000000000..9d2695e40 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402291.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402292.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402292.png new file mode 100644 index 000000000..efa537ae8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402292.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402293.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402293.png new file mode 100644 index 000000000..014453cac Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266402293.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266405132.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266405132.png new file mode 100644 index 000000000..abb9bf230 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266405132.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266405133.png b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266405133.png new file mode 100644 index 000000000..4ef32bb11 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/containers/cloud-container-engine/en-us_image_0266405133.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001109406512.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001109406512.png new file mode 100644 index 000000000..856d06d35 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001109406512.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001110063992.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001110063992.png new file mode 100644 index 000000000..55d101cf0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001110063992.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001110225672.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001110225672.png new file mode 100644 index 000000000..9a9c37981 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001110225672.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001156281773.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001156281773.png new file mode 100644 index 000000000..f2f21401a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001156281773.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001156308977.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001156308977.png new file mode 100644 index 000000000..161f18c10 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001156308977.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001183928408.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001183928408.png new file mode 100644 index 000000000..8818ef368 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001183928408.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001184243456.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001184243456.png new file mode 100644 index 000000000..974bafbfd Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001184243456.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229563929.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229563929.png new file mode 100644 index 000000000..2ba57cea6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229563929.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229643735.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229643735.png new file mode 100644 index 000000000..5ac97ff76 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229643735.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229645007.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229645007.png new file mode 100644 index 000000000..c105cfebf Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229645007.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229765759.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229765759.png new file mode 100644 index 000000000..86bb2ab33 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229765759.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229765989.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229765989.png new file mode 100644 index 000000000..e19e1370c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001229765989.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001231321333.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001231321333.png new file mode 100644 index 000000000..8e1653a4f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001231321333.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001260455881.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001260455881.png new file mode 100644 index 000000000..93afc373e Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001260455881.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001275281529.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001275281529.png new file mode 100644 index 000000000..a7a7664f8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001275281529.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001275484437.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001275484437.png new file mode 100644 index 000000000..5eaa3c180 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001275484437.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425667664.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425667664.png new file mode 100644 index 000000000..db853e177 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425667664.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425685956.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425685956.png new file mode 100644 index 000000000..cf2c68ba1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425685956.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425794174.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425794174.png new file mode 100644 index 000000000..27a214003 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425794174.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425958670.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425958670.png new file mode 100644 index 000000000..12f56adb2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001425958670.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426108974.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426108974.png new file mode 100644 index 000000000..f41aad1c8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426108974.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426121394.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426121394.png new file mode 100644 index 000000000..90fcade47 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426121394.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426145908.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426145908.png new file mode 100644 index 000000000..ac26089c2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426145908.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426146644.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426146644.png new file mode 100644 index 000000000..b4246e16d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426146644.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426658306.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426658306.png new file mode 100644 index 000000000..8efc3f7db Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001426658306.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001427434044.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001427434044.png new file mode 100644 index 000000000..5d1b57d7c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001427434044.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476188661.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476188661.png new file mode 100644 index 000000000..a017ed337 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476188661.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476217873.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476217873.png new file mode 100644 index 000000000..8b58a572b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476217873.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476223097.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476223097.png new file mode 100644 index 000000000..a928fa45a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476223097.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476227677.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476227677.png new file mode 100644 index 000000000..5e4c8b4bf Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001476227677.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001479114773.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001479114773.png new file mode 100644 index 000000000..7b448776c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001479114773.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001565366900.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001565366900.png new file mode 100644 index 000000000..7be82e12c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001565366900.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001616102745.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001616102745.png new file mode 100644 index 000000000..55038cde3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0000001616102745.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245102971.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245102971.png new file mode 100644 index 000000000..04d73e593 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245102971.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245105425.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245105425.png new file mode 100644 index 000000000..37ca2a61a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245105425.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245110151.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245110151.png new file mode 100644 index 000000000..f50c339fa Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245110151.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245112233.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245112233.png new file mode 100644 index 000000000..d7a686f52 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245112233.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245112317.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245112317.png new file mode 100644 index 000000000..626976d92 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245112317.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245116251.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245116251.png new file mode 100644 index 000000000..ed3724ff9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0245116251.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0254645094.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0254645094.png new file mode 100644 index 000000000..cf98aa5fa Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0254645094.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0267127015.png b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0267127015.png new file mode 100644 index 000000000..acdf83711 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/distributed-cache-service/en-us_image_0267127015.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001117852888.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001117852888.png new file mode 100644 index 000000000..29f20f55c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001117852888.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001151977634.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001151977634.png new file mode 100644 index 000000000..80d35a308 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001151977634.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001151977946.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001151977946.png new file mode 100644 index 000000000..9de4b8631 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001151977946.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001152137438.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001152137438.png new file mode 100644 index 000000000..a6da90146 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001152137438.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001166068694.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001166068694.png new file mode 100644 index 000000000..106fc060c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001166068694.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001198097269.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001198097269.png new file mode 100644 index 000000000..7e65cbab2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001198097269.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001198097583.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001198097583.png new file mode 100644 index 000000000..8478e0e4a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001198097583.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001199158158.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001199158158.png new file mode 100644 index 000000000..d4a6da189 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001199158158.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001210912526.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001210912526.png new file mode 100644 index 000000000..afd348839 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001210912526.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001211264689.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001211264689.png new file mode 100644 index 000000000..71ac88a7d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001211264689.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001213070166.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001213070166.png new file mode 100644 index 000000000..4fca619f0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001213070166.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001213229532.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001213229532.png new file mode 100644 index 000000000..6f6a91ab9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001213229532.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001243756137.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001243756137.png new file mode 100644 index 000000000..88346ee74 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001243756137.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001244078029.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001244078029.png new file mode 100644 index 000000000..a279f1ed7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001244078029.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001493711038.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001493711038.png new file mode 100644 index 000000000..3555df137 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0000001493711038.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0180865321.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0180865321.png new file mode 100644 index 000000000..caa2f575b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0180865321.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0232589882.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0232589882.png new file mode 100644 index 000000000..963568f0b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0232589882.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0232605869.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0232605869.png new file mode 100644 index 000000000..a84d17798 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0232605869.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0234000688.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0234000688.png new file mode 100644 index 000000000..9a5fa7210 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0234000688.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762499.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762499.png new file mode 100644 index 000000000..c25c68a25 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762499.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762649.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762649.png new file mode 100644 index 000000000..4af014f4f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762649.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762692.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762692.png new file mode 100644 index 000000000..b4701dfc8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762692.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762707.png b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762707.png new file mode 100644 index 000000000..19bd47153 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/databases/document-database-service/en-us_image_0295762707.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987443.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987443.png new file mode 100644 index 000000000..6f408d1d8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987443.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987653.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987653.png new file mode 100644 index 000000000..52198338a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987653.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987913.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987913.png new file mode 100644 index 000000000..b2ee27d61 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0229987913.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230389993.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230389993.png new file mode 100644 index 000000000..7a3a667b4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230389993.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230390003.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230390003.png new file mode 100644 index 000000000..37d8e348a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230390003.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230391072.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230391072.png new file mode 100644 index 000000000..2b25ed86f Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-eye/en-us_image_0230391072.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001264392960.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001264392960.png new file mode 100644 index 000000000..b795f157a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001264392960.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001264679162.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001264679162.png new file mode 100644 index 000000000..e09cd6b68 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001264679162.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001312436037.png b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001312436037.png new file mode 100644 index 000000000..799f18093 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraph/en-us_image_0000001312436037.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0000001343763404.png b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0000001343763404.png new file mode 100644 index 000000000..1909444d2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0000001343763404.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0000001394829705.png b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0000001394829705.png new file mode 100644 index 000000000..ba9e3dad4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0000001394829705.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0131021386.png b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0131021386.png new file mode 100644 index 000000000..e75f40c7e Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0131021386.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0173959206.png b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0173959206.png new file mode 100644 index 000000000..69fbb0a01 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/domain-name-service/en-us_image_0173959206.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001220740254.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001220740254.png new file mode 100644 index 000000000..93406b9fc Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001220740254.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221220190.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221220190.png new file mode 100644 index 000000000..d05d3b7fc Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221220190.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221308334.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221308334.png new file mode 100644 index 000000000..459f7c496 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221308334.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221328134.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221328134.png new file mode 100644 index 000000000..bee6663b2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001221328134.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265145841.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265145841.png new file mode 100644 index 000000000..78bda19e8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265145841.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265465929.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265465929.png new file mode 100644 index 000000000..5c983cf27 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265465929.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265488349.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265488349.png new file mode 100644 index 000000000..ade30d3e8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265488349.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265579817.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265579817.png new file mode 100644 index 000000000..2a64e73ca Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265579817.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265646757.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265646757.png new file mode 100644 index 000000000..a302fd733 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265646757.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265648321.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265648321.png new file mode 100644 index 000000000..caed2401b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265648321.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265745537.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265745537.png new file mode 100644 index 000000000..a65723cf4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265745537.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265924809.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265924809.png new file mode 100644 index 000000000..5251dce2c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265924809.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265928345.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265928345.png new file mode 100644 index 000000000..850967418 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001265928345.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299482.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299482.png new file mode 100644 index 000000000..15fa99665 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299482.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299490.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299490.png new file mode 100644 index 000000000..042faad10 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299490.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299518.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299518.png new file mode 100644 index 000000000..dcbae0298 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625299518.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459302.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459302.png new file mode 100644 index 000000000..2c0a00818 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459302.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459306.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459306.png new file mode 100644 index 000000000..125be107b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459306.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459326.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459326.png new file mode 100644 index 000000000..305dea35a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459326.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459334.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459334.png new file mode 100644 index 000000000..471ed8027 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625459334.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619210.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619210.png new file mode 100644 index 000000000..624e6815b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619210.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619214.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619214.png new file mode 100644 index 000000000..75463b45d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619214.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619218.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619218.png new file mode 100644 index 000000000..6eda9dbb9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619218.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619246.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619246.png new file mode 100644 index 000000000..1d1cd4db5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625619246.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779198.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779198.png new file mode 100644 index 000000000..2e86ad241 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779198.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779202.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779202.png new file mode 100644 index 000000000..916825eb9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779202.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779218.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779218.png new file mode 100644 index 000000000..3fded7917 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001625779218.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939077.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939077.png new file mode 100644 index 000000000..5614331a8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939077.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939081.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939081.png new file mode 100644 index 000000000..ece7cca16 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939081.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939093.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939093.png new file mode 100644 index 000000000..916825eb9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001673939093.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059065.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059065.png new file mode 100644 index 000000000..da9c98136 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059065.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059069.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059069.png new file mode 100644 index 000000000..8c29385ea Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059069.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059073.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059073.png new file mode 100644 index 000000000..75aeeed8a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059073.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059081.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059081.png new file mode 100644 index 000000000..2eb61807c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674059081.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139185.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139185.png new file mode 100644 index 000000000..985089c80 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139185.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139189.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139189.png new file mode 100644 index 000000000..eadb83f9a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139189.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139197.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139197.png new file mode 100644 index 000000000..5156558e1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674139197.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259057.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259057.png new file mode 100644 index 000000000..fc37e3f17 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259057.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259061.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259061.png new file mode 100644 index 000000000..45498d4cd Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259061.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259073.png b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259073.png new file mode 100644 index 000000000..c4e629183 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/elastic-load-balancing/en-us_image_0000001674259073.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001089261095.png b/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001089261095.png new file mode 100644 index 000000000..e77aec726 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001089261095.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001092787311.png b/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001092787311.png new file mode 100644 index 000000000..0d620d2bf Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001092787311.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001093306041.png b/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001093306041.png new file mode 100644 index 000000000..7041e98c4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/nat-gateway/en-us_image_0000001093306041.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559429 copy.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559429 copy.png new file mode 100644 index 000000000..5dbacedcb Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559429 copy.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559429.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559429.png new file mode 100644 index 000000000..5dbacedcb Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559429.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559441 copy.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559441 copy.png new file mode 100644 index 000000000..615bd9d3b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559441 copy.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559441.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559441.png new file mode 100644 index 000000000..615bd9d3b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001124559441.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209300412.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209300412.png new file mode 100644 index 000000000..58d552913 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209300412.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209321492.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209321492.png new file mode 100644 index 000000000..76b341989 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209321492.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209777270.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209777270.png new file mode 100644 index 000000000..e6e9c709a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001209777270.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254241751.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254241751.png new file mode 100644 index 000000000..129f7385b Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254241751.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254335981.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254335981.png new file mode 100644 index 000000000..06af51042 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254335981.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254608729.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254608729.png new file mode 100644 index 000000000..476ea7c59 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001254608729.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001261140071.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001261140071.png new file mode 100644 index 000000000..455b9d121 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0000001261140071.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0141273034 copy.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0141273034 copy.png new file mode 100644 index 000000000..c6c267eb9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0141273034 copy.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0141273034.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0141273034.png new file mode 100644 index 000000000..c6c267eb9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0141273034.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0287297889 copy.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0287297889 copy.png new file mode 100644 index 000000000..4be1389ec Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0287297889 copy.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0287297889.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0287297889.png new file mode 100644 index 000000000..4be1389ec Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-cloud/en-us_image_0287297889.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub/en-us_image_0000001592878805.png b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub/en-us_image_0000001592878805.png new file mode 100644 index 000000000..0df4d74c1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hub/en-us_image_0000001592878805.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001072768952.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001072768952.png new file mode 100644 index 000000000..0fe0d8057 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001072768952.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001132757446.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001132757446.png new file mode 100644 index 000000000..6a16897ed Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001132757446.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001176153064.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001176153064.png new file mode 100644 index 000000000..41e326bad Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001176153064.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001182529643.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001182529643.png new file mode 100644 index 000000000..be77469f7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001182529643.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192108582.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192108582.png new file mode 100644 index 000000000..6afc8707e Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192108582.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192109594.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192109594.png new file mode 100644 index 000000000..bde95d815 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192109594.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192348152.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192348152.png new file mode 100644 index 000000000..93e5f7d94 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192348152.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192435242.jpg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192435242.jpg new file mode 100644 index 000000000..22c76c8e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001192435242.jpg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001221411281.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001221411281.png new file mode 100644 index 000000000..6e08b0030 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001221411281.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001236748339.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001236748339.png new file mode 100644 index 000000000..b674ec472 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001236748339.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001237195219.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001237195219.png new file mode 100644 index 000000000..6443d563d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001237195219.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369344100.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369344100.png new file mode 100644 index 000000000..68c8d9da7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369344100.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369483086.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369483086.png new file mode 100644 index 000000000..4a89d0cf0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369483086.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369501992.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369501992.png new file mode 100644 index 000000000..2f6c553f9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369501992.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369643058.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369643058.png new file mode 100644 index 000000000..6443d563d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369643058.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369661940.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369661940.png new file mode 100644 index 000000000..28807ed30 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369661940.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369683888.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369683888.png new file mode 100644 index 000000000..cd481112a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001369683888.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001420363093.jpg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001420363093.jpg new file mode 100644 index 000000000..22c76c8e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001420363093.jpg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001420502081.jpg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001420502081.jpg new file mode 100644 index 000000000..22c76c8e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001420502081.jpg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001423609253.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001423609253.png new file mode 100644 index 000000000..814a41103 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001423609253.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001481001694.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001481001694.png new file mode 100644 index 000000000..1136ef62d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001481001694.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001483021752.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001483021752.png new file mode 100644 index 000000000..6443d563d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001483021752.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001490687826.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001490687826.png new file mode 100644 index 000000000..3d32103dd Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001490687826.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533036717.jpg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533036717.jpg new file mode 100644 index 000000000..22c76c8e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533036717.jpg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533157169.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533157169.png new file mode 100644 index 000000000..6443d563d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533157169.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533182113.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533182113.png new file mode 100644 index 000000000..6443d563d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533182113.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533461761.jpg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533461761.jpg new file mode 100644 index 000000000..22c76c8e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533461761.jpg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533701661.jpg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533701661.jpg new file mode 100644 index 000000000..22c76c8e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001533701661.jpg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001698121802.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001698121802.png new file mode 100644 index 000000000..d0399af32 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001698121802.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001716153600.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001716153600.png new file mode 100644 index 000000000..7e0b20620 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001716153600.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001716169956.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001716169956.png new file mode 100644 index 000000000..ac11d242a Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001716169956.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763942269.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763942269.png new file mode 100644 index 000000000..b520e336d Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763942269.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763942269.png.jpeg b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763942269.png.jpeg new file mode 100644 index 000000000..cb71a2ab7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763942269.png.jpeg differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763970041.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763970041.png new file mode 100644 index 000000000..34e1a72d8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001763970041.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001764240765.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001764240765.png new file mode 100644 index 000000000..a272d68b4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001764240765.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001764480001.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001764480001.png new file mode 100644 index 000000000..dfe822bb7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001764480001.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001811225769.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001811225769.png new file mode 100644 index 000000000..3c76f61fe Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0000001811225769.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0234013368.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0234013368.png new file mode 100644 index 000000000..19b0e9bb0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0234013368.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0234013391.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0234013391.png new file mode 100644 index 000000000..34e1a72d8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0234013391.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0293910230.png b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0293910230.png new file mode 100644 index 000000000..acf70171c Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/security-services/web-application-firewall/en-us_image_0293910230.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/storage/elastic-volume-service/en-us_image_0139687404.png b/pr-preview/pr-186/img/docs/best-practices/storage/elastic-volume-service/en-us_image_0139687404.png new file mode 100644 index 000000000..a99448ff1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/storage/elastic-volume-service/en-us_image_0139687404.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/storage/elastic-volume-service/en-us_image_0139689760.png b/pr-preview/pr-186/img/docs/best-practices/storage/elastic-volume-service/en-us_image_0139689760.png new file mode 100644 index 000000000..1eb915d62 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/storage/elastic-volume-service/en-us_image_0139689760.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273792190.png b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273792190.png new file mode 100644 index 000000000..bc619fb77 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273792190.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273872842.png b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273872842.png new file mode 100644 index 000000000..50c197bba Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273872842.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273876194.png b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273876194.png new file mode 100644 index 000000000..cef44aae9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/en-us_image_0273876194.png differ diff --git a/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png new file mode 100644 index 000000000..2cbd28be3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 13-53-46.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 13-53-46.png new file mode 100644 index 000000000..9b03ad0e5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 13-53-46.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-03-16.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-03-16.png new file mode 100644 index 000000000..b81f06fa8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-03-16.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-10-01.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-10-01.png new file mode 100644 index 000000000..12fc3cc60 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-10-01.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-12-28.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-12-28.png new file mode 100644 index 000000000..a12d7c4a2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-12-28.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-16-19.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-16-19.png new file mode 100644 index 000000000..ee5dc3cc5 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-09 14-16-19.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 12-40-41.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 12-40-41.png new file mode 100644 index 000000000..855911c4d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 12-40-41.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 12-47-36.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 12-47-36.png new file mode 100644 index 000000000..b35f53ab4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 12-47-36.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 13-14-30.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 13-14-30.png new file mode 100644 index 000000000..cc7e34fa2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 13-14-30.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-32-38.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-32-38.png new file mode 100644 index 000000000..febfc2e74 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-32-38.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-38-26.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-38-26.png new file mode 100644 index 000000000..3e832d7eb Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-38-26.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-38-50.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-38-50.png new file mode 100644 index 000000000..439acacfc Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-38-50.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-09.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-09.png new file mode 100644 index 000000000..8e062e1de Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-09.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-38.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-38.png new file mode 100644 index 000000000..5ec0dba61 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-38.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-50.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-50.png new file mode 100644 index 000000000..da9aa90cc Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 14-39-50.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 15-05-13.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 15-05-13.png new file mode 100644 index 000000000..dae75d5f0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot from 2024-09-10 15-05-13.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot_from_2024-09-09_12-51-39.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot_from_2024-09-09_12-51-39.png new file mode 100644 index 000000000..cfc0987d9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot_from_2024-09-09_12-51-39.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot_from_2024-09-09_12-52-14.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot_from_2024-09-09_12-52-14.png new file mode 100644 index 000000000..68304019b Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/analytics/umami/Screenshot_from_2024-09-09_12-52-14.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce/en-us_image_A0000001348013634.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce/en-us_image_A0000001348013634.png new file mode 100644 index 000000000..2f3ae3cc3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce/en-us_image_A0000001348013634.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001160642449.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001160642449.png new file mode 100644 index 000000000..0e64a8959 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001160642449.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001346958352.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001346958352.png new file mode 100644 index 000000000..132c4f0b9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001346958352.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001347115504.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001347115504.png new file mode 100644 index 000000000..f2ff09a42 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001347115504.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001348013634.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001348013634.png new file mode 100644 index 000000000..e35626b50 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001348013634.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349490578.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349490578.png new file mode 100644 index 000000000..14c88dded Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349490578.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349649242.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349649242.png new file mode 100644 index 000000000..8b0221486 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349649242.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349986824 copy.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349986824 copy.png new file mode 100644 index 000000000..9edac59ba Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349986824 copy.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349986824.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349986824.png new file mode 100644 index 000000000..9edac59ba Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001349986824.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001350206690.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001350206690.png new file mode 100644 index 000000000..bb4c62d67 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001350206690.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001380832974.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001380832974.png new file mode 100644 index 000000000..603c94682 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001380832974.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001380992506.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001380992506.png new file mode 100644 index 000000000..fe48c09c9 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001380992506.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001381152106.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001381152106.png new file mode 100644 index 000000000..111d397a2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001381152106.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001394383746.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001394383746.png new file mode 100644 index 000000000..21e746d6d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001394383746.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001398072089.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001398072089.png new file mode 100644 index 000000000..8f70ff3ac Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001398072089.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001399673949.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001399673949.png new file mode 100644 index 000000000..5186a57f3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001399673949.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001399744097.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001399744097.png new file mode 100644 index 000000000..b42d9b38e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001399744097.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001400577445.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001400577445.png new file mode 100644 index 000000000..a788099b7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001400577445.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001400827629.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001400827629.png new file mode 100644 index 000000000..b210b7344 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001400827629.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001402114285.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001402114285.png new file mode 100644 index 000000000..0ed0df53b Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001402114285.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416038826.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416038826.png new file mode 100644 index 000000000..386cba4a7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416038826.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416065764.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416065764.png new file mode 100644 index 000000000..5aea612c6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416065764.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416249976.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416249976.png new file mode 100644 index 000000000..e098dab88 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416249976.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416531766.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416531766.png new file mode 100644 index 000000000..e894668c6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416531766.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416537408.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416537408.png new file mode 100644 index 000000000..e36c72299 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416537408.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416735230.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416735230.png new file mode 100644 index 000000000..e1b3f8808 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416735230.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416735446.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416735446.png new file mode 100644 index 000000000..31c54cb9d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001416735446.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418569120.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418569120.png new file mode 100644 index 000000000..2dc55c428 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418569120.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418569168.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418569168.png new file mode 100644 index 000000000..6851d8d73 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418569168.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418729104.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418729104.png new file mode 100644 index 000000000..a132dc55d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418729104.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418729128.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418729128.png new file mode 100644 index 000000000..4d57a0d81 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001418729128.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001431432309.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001431432309.png new file mode 100644 index 000000000..320c8c928 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001431432309.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465971797.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465971797.png new file mode 100644 index 000000000..e00ea554f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465971797.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465972145.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465972145.png new file mode 100644 index 000000000..cb7fbdf08 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465972145.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465973233.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465973233.png new file mode 100644 index 000000000..303547f4f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001465973233.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001466618025.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001466618025.png new file mode 100644 index 000000000..1fd5560d0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001466618025.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001466646017.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001466646017.png new file mode 100644 index 000000000..6a2375f5f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001466646017.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468605617.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468605617.png new file mode 100644 index 000000000..f5da59a92 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468605617.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468885853.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468885853.png new file mode 100644 index 000000000..d2ea735f2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468885853.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468885889.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468885889.png new file mode 100644 index 000000000..a132dc55d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001468885889.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001469005601.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001469005601.png new file mode 100644 index 000000000..d2ea735f2 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001469005601.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001471311349.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001471311349.png new file mode 100644 index 000000000..60dda3671 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001471311349.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001471430697.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001471430697.png new file mode 100644 index 000000000..f465002cc Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001471430697.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001474360185.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001474360185.png new file mode 100644 index 000000000..7fe6b416c Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001474360185.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001480191270.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001480191270.png new file mode 100644 index 000000000..290b94f19 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001480191270.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001606845825.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001606845825.png new file mode 100644 index 000000000..dc8f6a30f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001606845825.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001606847653.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001606847653.png new file mode 100644 index 000000000..da3aaefad Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/devops/cicd-jenkins-swr-cce/en-us_image_0000001606847653.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_-MaxuCNpIezRgFm-VQZ_ow.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_-MaxuCNpIezRgFm-VQZ_ow.webp new file mode 100644 index 000000000..d65a38e7d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_-MaxuCNpIezRgFm-VQZ_ow.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_0ILMUg1ZbO5W--NfKjkeWQ.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_0ILMUg1ZbO5W--NfKjkeWQ.webp new file mode 100644 index 000000000..34338daf1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_0ILMUg1ZbO5W--NfKjkeWQ.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_0WVdeJICkfrez73x43r1bQ.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_0WVdeJICkfrez73x43r1bQ.webp new file mode 100644 index 000000000..a303cc9a0 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_0WVdeJICkfrez73x43r1bQ.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_JhD38QI651EA3UW_LYF_qg.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_JhD38QI651EA3UW_LYF_qg.webp new file mode 100644 index 000000000..7f08338d6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_JhD38QI651EA3UW_LYF_qg.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_QQU5x7QDEmOBj95hOiAaAw.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_QQU5x7QDEmOBj95hOiAaAw.webp new file mode 100644 index 000000000..01eb82dd3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_QQU5x7QDEmOBj95hOiAaAw.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_R2CxfRgIMj9uXGzYMcA0GA.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_R2CxfRgIMj9uXGzYMcA0GA.webp new file mode 100644 index 000000000..3dbcdda9e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_R2CxfRgIMj9uXGzYMcA0GA.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_SL6Snpm9qU_ubI3DrfPskA.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_SL6Snpm9qU_ubI3DrfPskA.webp new file mode 100644 index 000000000..a34073c5b Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_SL6Snpm9qU_ubI3DrfPskA.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_bPVWpLNj1oS71KIZQI6A9Q.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_bPVWpLNj1oS71KIZQI6A9Q.webp new file mode 100644 index 000000000..047927770 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_bPVWpLNj1oS71KIZQI6A9Q.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_be63glOSUO7fwc21h1KVDA.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_be63glOSUO7fwc21h1KVDA.webp new file mode 100644 index 000000000..e3c9a20e4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_be63glOSUO7fwc21h1KVDA.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_dSCLtTxGHOeAawTkJGI0lg.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_dSCLtTxGHOeAawTkJGI0lg.webp new file mode 100644 index 000000000..551a22f5c Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_dSCLtTxGHOeAawTkJGI0lg.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_dxVzmGkmFHgkuyJmW1VK3g.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_dxVzmGkmFHgkuyJmW1VK3g.webp new file mode 100644 index 000000000..7e938b7e4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_dxVzmGkmFHgkuyJmW1VK3g.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_m6H5W8D5FxdxunL0PYZjmQ.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_m6H5W8D5FxdxunL0PYZjmQ.webp new file mode 100644 index 000000000..206a2e379 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_m6H5W8D5FxdxunL0PYZjmQ.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_m8J4oWftIIhbRunvacQ9JA.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_m8J4oWftIIhbRunvacQ9JA.webp new file mode 100644 index 000000000..8e6ddcdb6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_m8J4oWftIIhbRunvacQ9JA.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_t_0OqRNB4kaMlbUpQZkshQ.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_t_0OqRNB4kaMlbUpQZkshQ.webp new file mode 100644 index 000000000..0a072258f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_t_0OqRNB4kaMlbUpQZkshQ.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_x7vfbTFPrJDX9n99xuigmw.webp b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_x7vfbTFPrJDX9n99xuigmw.webp new file mode 100644 index 000000000..a1b9d6bf7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/observability/kubernetes-logging-with-loki/1_x7vfbTFPrJDX9n99xuigmw.webp differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/Screenshot-Admin-authentik.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/Screenshot-Admin-authentik.png new file mode 100644 index 000000000..e734fbe75 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/Screenshot-Admin-authentik.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/Screenshot-chpassword-authentik.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/Screenshot-chpassword-authentik.png new file mode 100644 index 000000000..e442ab8aa Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/Screenshot-chpassword-authentik.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/authentik-idp-urls.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/authentik-idp-urls.png new file mode 100644 index 000000000..86bb69011 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/authentik-idp-urls.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/configure-groups-enrollment-stage.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/configure-groups-enrollment-stage.png new file mode 100644 index 000000000..c2debf39c Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/configure-groups-enrollment-stage.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/configure-idp-iam.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/configure-idp-iam.png new file mode 100644 index 000000000..0c90f3b1d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/configure-idp-iam.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-application.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-application.png new file mode 100644 index 000000000..bbef3e87f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-application.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-group.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-group.png new file mode 100644 index 000000000..8efa27dde Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-group.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-idp-iam.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-idp-iam.png new file mode 100644 index 000000000..d54fe61bb Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-idp-iam.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-oauth.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-oauth.png new file mode 100644 index 000000000..6a873e120 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/create-oauth.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/edit-conversion-rules.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/edit-conversion-rules.png new file mode 100644 index 000000000..6a883326b Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/edit-conversion-rules.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-New-OAuth-Application.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-New-OAuth-Application.png new file mode 100644 index 000000000..212964904 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-New-OAuth-Application.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-create-oauth-app.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-create-oauth-app.png new file mode 100644 index 000000000..831efbf76 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-create-oauth-app.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-idp-configuration.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-idp-configuration.png new file mode 100644 index 000000000..6c1c75088 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/github-idp-configuration.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/group-scope-mapping.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/group-scope-mapping.png new file mode 100644 index 000000000..fcd554eba Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/group-scope-mapping.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/modify-idp-iam.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/modify-idp-iam.png new file mode 100644 index 000000000..d001c5a5e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/authentik/modify-idp-iam.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-ezg.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-ezg.png new file mode 100644 index 000000000..e27133867 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-ezg.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-fh3.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-fh3.png new file mode 100644 index 000000000..d68488823 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-fh3.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-k2x.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-k2x.png new file mode 100644 index 000000000..c2dcb755a Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-k2x.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-k8t.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-k8t.png new file mode 100644 index 000000000..c309d707c Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-k8t.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-ka7.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-ka7.png new file mode 100644 index 000000000..4a2df80bf Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231208-ka7.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-di1.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-di1.png new file mode 100644 index 000000000..87140d688 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-di1.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-f5u.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-f5u.png new file mode 100644 index 000000000..64a079295 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-f5u.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-ffb.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-ffb.png new file mode 100644 index 000000000..66cb2965e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-ffb.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-fj8.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-fj8.png new file mode 100644 index 000000000..9f91553f4 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-fj8.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-fp6.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-fp6.png new file mode 100644 index 000000000..715d0e98e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-fp6.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-g7y.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-g7y.png new file mode 100644 index 000000000..8e6935d38 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-g7y.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-i88.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-i88.png new file mode 100644 index 000000000..1b980b486 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-i88.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-ni4.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-ni4.png new file mode 100644 index 000000000..ffaf6ced1 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231211-ni4.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-df8.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-df8.png new file mode 100644 index 000000000..ad58e7f81 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-df8.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-dfp.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-dfp.png new file mode 100644 index 000000000..1d41c0e2f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-dfp.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-dsj.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-dsj.png new file mode 100644 index 000000000..565b30020 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-dsj.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-fhq.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-fhq.png new file mode 100644 index 000000000..cd95f9168 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-fhq.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mfl.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mfl.png new file mode 100644 index 000000000..8750c9c57 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mfl.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mmx.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mmx.png new file mode 100644 index 000000000..7221942aa Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mmx.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mr5.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mr5.png new file mode 100644 index 000000000..b98f3fe52 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-mr5.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n0d.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n0d.png new file mode 100644 index 000000000..b0ee85ab6 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n0d.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n0n.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n0n.png new file mode 100644 index 000000000..13043dddd Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n0n.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n15.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n15.png new file mode 100644 index 000000000..00d884c89 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n15.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n1w.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n1w.png new file mode 100644 index 000000000..1074b2ba3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n1w.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n8b.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n8b.png new file mode 100644 index 000000000..625ec41dd Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-n8b.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-ngd.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-ngd.png new file mode 100644 index 000000000..8e3923088 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-ngd.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nj4.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nj4.png new file mode 100644 index 000000000..824e9b2a7 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nj4.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nq7.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nq7.png new file mode 100644 index 000000000..d54fe61bb Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nq7.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nw9.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nw9.png new file mode 100644 index 000000000..d001c5a5e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-nw9.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-o7i.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-o7i.png new file mode 100644 index 000000000..6de4fece8 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-o7i.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-och.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-och.png new file mode 100644 index 000000000..41a447b72 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20231212-och.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k0w.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k0w.png new file mode 100644 index 000000000..b444b1a1e Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k0w.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k1y.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k1y.png new file mode 100644 index 000000000..d8c57f557 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k1y.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k3x.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k3x.png new file mode 100644 index 000000000..fa2020eb3 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k3x.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k51.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k51.png new file mode 100644 index 000000000..ec7eb720d Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k51.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k68.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k68.png new file mode 100644 index 000000000..007661a98 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k68.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k76.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k76.png new file mode 100644 index 000000000..737241c55 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240122-k76.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240201-erg.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240201-erg.png new file mode 100644 index 000000000..489941598 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240201-erg.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240201-k76.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240201-k76.png new file mode 100644 index 000000000..41b9a7430 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/security/keycloak/SCR-20240201-k76.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild1.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild1.png new file mode 100644 index 000000000..2e1f21364 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild1.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild2.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild2.png new file mode 100644 index 000000000..4890bdd1f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild2.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild3.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild3.png new file mode 100644 index 000000000..47e28b00f Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild3.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild4.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild4.png new file mode 100644 index 000000000..aa0270671 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild4.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild5.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild5.png new file mode 100644 index 000000000..a86e15e7c Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild5.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild6.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild6.png new file mode 100644 index 000000000..fa4526fae Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/Bild6.png differ diff --git a/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/architecture.png b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/architecture.png new file mode 100644 index 000000000..c7b504201 Binary files /dev/null and b/pr-preview/pr-186/img/docs/blueprints/by-use-case/storage/zone-redundant-nfs/architecture.png differ diff --git a/pr-preview/pr-186/img/docusaurus-social-card.jpg b/pr-preview/pr-186/img/docusaurus-social-card.jpg new file mode 100644 index 000000000..ffcb44821 Binary files /dev/null and b/pr-preview/pr-186/img/docusaurus-social-card.jpg differ diff --git a/pr-preview/pr-186/img/docusaurus.png b/pr-preview/pr-186/img/docusaurus.png new file mode 100644 index 000000000..f458149e3 Binary files /dev/null and b/pr-preview/pr-186/img/docusaurus.png differ diff --git a/pr-preview/pr-186/img/en-us_image_0000001264369622.png b/pr-preview/pr-186/img/en-us_image_0000001264369622.png new file mode 100644 index 000000000..e1b3adb9c Binary files /dev/null and b/pr-preview/pr-186/img/en-us_image_0000001264369622.png differ diff --git a/pr-preview/pr-186/img/en-us_image_0000001312049497.png b/pr-preview/pr-186/img/en-us_image_0000001312049497.png new file mode 100644 index 000000000..5f4fcf03d Binary files /dev/null and b/pr-preview/pr-186/img/en-us_image_0000001312049497.png differ diff --git a/pr-preview/pr-186/img/factory-inside.svg b/pr-preview/pr-186/img/factory-inside.svg new file mode 100644 index 000000000..0e5699f94 --- /dev/null +++ b/pr-preview/pr-186/img/factory-inside.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/favicon.ico b/pr-preview/pr-186/img/favicon.ico new file mode 100644 index 000000000..7db71881d Binary files /dev/null and b/pr-preview/pr-186/img/favicon.ico differ diff --git a/pr-preview/pr-186/img/homeoffice.svg b/pr-preview/pr-186/img/homeoffice.svg new file mode 100644 index 000000000..32013c4ba --- /dev/null +++ b/pr-preview/pr-186/img/homeoffice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/logo.svg b/pr-preview/pr-186/img/logo.svg new file mode 100644 index 000000000..9db6d0d06 --- /dev/null +++ b/pr-preview/pr-186/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/logo_headline_kombination_m_s_m.png b/pr-preview/pr-186/img/logo_headline_kombination_m_s_m.png new file mode 100644 index 000000000..9d6fb7e68 Binary files /dev/null and b/pr-preview/pr-186/img/logo_headline_kombination_m_s_m.png differ diff --git a/pr-preview/pr-186/img/logo_headline_kombination_m_w_m.png b/pr-preview/pr-186/img/logo_headline_kombination_m_w_m.png new file mode 100644 index 000000000..6b4924c32 Binary files /dev/null and b/pr-preview/pr-186/img/logo_headline_kombination_m_w_m.png differ diff --git a/pr-preview/pr-186/img/open-telekom-cloud-social-card.png b/pr-preview/pr-186/img/open-telekom-cloud-social-card.png new file mode 100644 index 000000000..ea4e37553 Binary files /dev/null and b/pr-preview/pr-186/img/open-telekom-cloud-social-card.png differ diff --git a/pr-preview/pr-186/img/services/AS.svg b/pr-preview/pr-186/img/services/AS.svg new file mode 100644 index 000000000..0934d6368 --- /dev/null +++ b/pr-preview/pr-186/img/services/AS.svg @@ -0,0 +1,24 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/Anti-DDoS.svg b/pr-preview/pr-186/img/services/Anti-DDoS.svg new file mode 100644 index 000000000..ed292d356 --- /dev/null +++ b/pr-preview/pr-186/img/services/Anti-DDoS.svg @@ -0,0 +1,24 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/BMS.svg b/pr-preview/pr-186/img/services/BMS.svg new file mode 100644 index 000000000..bd105715c --- /dev/null +++ b/pr-preview/pr-186/img/services/BMS.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/CBR.svg b/pr-preview/pr-186/img/services/CBR.svg new file mode 100644 index 000000000..903f0a04f --- /dev/null +++ b/pr-preview/pr-186/img/services/CBR.svg @@ -0,0 +1 @@ +画板 1 \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/CCE.svg b/pr-preview/pr-186/img/services/CCE.svg new file mode 100644 index 000000000..6e821f427 --- /dev/null +++ b/pr-preview/pr-186/img/services/CCE.svg @@ -0,0 +1,21 @@ + + + + + + + diff --git a/pr-preview/pr-186/img/services/CES.svg b/pr-preview/pr-186/img/services/CES.svg new file mode 100644 index 000000000..5369a3b03 --- /dev/null +++ b/pr-preview/pr-186/img/services/CES.svg @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/CSBS.svg b/pr-preview/pr-186/img/services/CSBS.svg new file mode 100644 index 000000000..f9ee732ee --- /dev/null +++ b/pr-preview/pr-186/img/services/CSBS.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/CSS.svg b/pr-preview/pr-186/img/services/CSS.svg new file mode 100644 index 000000000..041cf82df --- /dev/null +++ b/pr-preview/pr-186/img/services/CSS.svg @@ -0,0 +1,20 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/CTS.svg b/pr-preview/pr-186/img/services/CTS.svg new file mode 100644 index 000000000..deea0932f --- /dev/null +++ b/pr-preview/pr-186/img/services/CTS.svg @@ -0,0 +1,26 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/Computing.svg b/pr-preview/pr-186/img/services/Computing.svg new file mode 100644 index 000000000..92345fe07 --- /dev/null +++ b/pr-preview/pr-186/img/services/Computing.svg @@ -0,0 +1,11 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/DCS-memcached.svg b/pr-preview/pr-186/img/services/DCS-memcached.svg new file mode 100644 index 000000000..bd7bde364 --- /dev/null +++ b/pr-preview/pr-186/img/services/DCS-memcached.svg @@ -0,0 +1,20 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/DCS-redis.svg b/pr-preview/pr-186/img/services/DCS-redis.svg new file mode 100644 index 000000000..32f1354d8 --- /dev/null +++ b/pr-preview/pr-186/img/services/DCS-redis.svg @@ -0,0 +1,20 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/DC_DirectConnect.svg b/pr-preview/pr-186/img/services/DC_DirectConnect.svg new file mode 100644 index 000000000..d5172b705 --- /dev/null +++ b/pr-preview/pr-186/img/services/DC_DirectConnect.svg @@ -0,0 +1,20 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/DDS.svg b/pr-preview/pr-186/img/services/DDS.svg new file mode 100644 index 000000000..0f7833c63 --- /dev/null +++ b/pr-preview/pr-186/img/services/DDS.svg @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/DIS.svg b/pr-preview/pr-186/img/services/DIS.svg new file mode 100644 index 000000000..9105d9b02 --- /dev/null +++ b/pr-preview/pr-186/img/services/DIS.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/DMS.svg b/pr-preview/pr-186/img/services/DMS.svg new file mode 100644 index 000000000..b99ff7709 --- /dev/null +++ b/pr-preview/pr-186/img/services/DMS.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/DNS.svg b/pr-preview/pr-186/img/services/DNS.svg new file mode 100644 index 000000000..777f57745 --- /dev/null +++ b/pr-preview/pr-186/img/services/DNS.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/DWS.svg b/pr-preview/pr-186/img/services/DWS.svg new file mode 100644 index 000000000..33b56a144 --- /dev/null +++ b/pr-preview/pr-186/img/services/DWS.svg @@ -0,0 +1 @@ +数据仓库服务-DWS \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/DeH.svg b/pr-preview/pr-186/img/services/DeH.svg new file mode 100644 index 000000000..84c861542 --- /dev/null +++ b/pr-preview/pr-186/img/services/DeH.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/ECS.svg b/pr-preview/pr-186/img/services/ECS.svg new file mode 100644 index 000000000..fc07b6481 --- /dev/null +++ b/pr-preview/pr-186/img/services/ECS.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/ELB.svg b/pr-preview/pr-186/img/services/ELB.svg new file mode 100644 index 000000000..e40b5e424 --- /dev/null +++ b/pr-preview/pr-186/img/services/ELB.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/EVS.svg b/pr-preview/pr-186/img/services/EVS.svg new file mode 100644 index 000000000..787ac4c0d --- /dev/null +++ b/pr-preview/pr-186/img/services/EVS.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/IAM.svg b/pr-preview/pr-186/img/services/IAM.svg new file mode 100644 index 000000000..e81823ecd --- /dev/null +++ b/pr-preview/pr-186/img/services/IAM.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/IMS.svg b/pr-preview/pr-186/img/services/IMS.svg new file mode 100644 index 000000000..87a257ea8 --- /dev/null +++ b/pr-preview/pr-186/img/services/IMS.svg @@ -0,0 +1,21 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/IP-EIP.svg b/pr-preview/pr-186/img/services/IP-EIP.svg new file mode 100644 index 000000000..241fa035f --- /dev/null +++ b/pr-preview/pr-186/img/services/IP-EIP.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/Kafka.svg b/pr-preview/pr-186/img/services/Kafka.svg new file mode 100644 index 000000000..df1e567d3 --- /dev/null +++ b/pr-preview/pr-186/img/services/Kafka.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/LTS.svg b/pr-preview/pr-186/img/services/LTS.svg new file mode 100644 index 000000000..c6b384580 --- /dev/null +++ b/pr-preview/pr-186/img/services/LTS.svg @@ -0,0 +1,11 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/Management&Deployment-RTS.svg b/pr-preview/pr-186/img/services/Management&Deployment-RTS.svg new file mode 100644 index 000000000..120a0d9de --- /dev/null +++ b/pr-preview/pr-186/img/services/Management&Deployment-RTS.svg @@ -0,0 +1,24 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/OBS.svg b/pr-preview/pr-186/img/services/OBS.svg new file mode 100644 index 000000000..944c57cc7 --- /dev/null +++ b/pr-preview/pr-186/img/services/OBS.svg @@ -0,0 +1,20 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/RDS .svg b/pr-preview/pr-186/img/services/RDS .svg new file mode 100644 index 000000000..484051539 --- /dev/null +++ b/pr-preview/pr-186/img/services/RDS .svg @@ -0,0 +1,21 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/SFS.svg b/pr-preview/pr-186/img/services/SFS.svg new file mode 100644 index 000000000..faf0a3234 --- /dev/null +++ b/pr-preview/pr-186/img/services/SFS.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/SGW.svg b/pr-preview/pr-186/img/services/SGW.svg new file mode 100644 index 000000000..cdd0d1345 --- /dev/null +++ b/pr-preview/pr-186/img/services/SGW.svg @@ -0,0 +1,32 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/SMN.svg b/pr-preview/pr-186/img/services/SMN.svg new file mode 100644 index 000000000..a3537c302 --- /dev/null +++ b/pr-preview/pr-186/img/services/SMN.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/Security-KMS.svg b/pr-preview/pr-186/img/services/Security-KMS.svg new file mode 100644 index 000000000..95b44c831 --- /dev/null +++ b/pr-preview/pr-186/img/services/Security-KMS.svg @@ -0,0 +1,23 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/TMS.svg b/pr-preview/pr-186/img/services/TMS.svg new file mode 100644 index 000000000..90154302e --- /dev/null +++ b/pr-preview/pr-186/img/services/TMS.svg @@ -0,0 +1,23 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/VBS.svg b/pr-preview/pr-186/img/services/VBS.svg new file mode 100644 index 000000000..32d5cba4b --- /dev/null +++ b/pr-preview/pr-186/img/services/VBS.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/VPC.svg b/pr-preview/pr-186/img/services/VPC.svg new file mode 100644 index 000000000..221f38a96 --- /dev/null +++ b/pr-preview/pr-186/img/services/VPC.svg @@ -0,0 +1,20 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/VPN.svg b/pr-preview/pr-186/img/services/VPN.svg new file mode 100644 index 000000000..0f19e58dd --- /dev/null +++ b/pr-preview/pr-186/img/services/VPN.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/Vpc Endpoint.svg b/pr-preview/pr-186/img/services/Vpc Endpoint.svg new file mode 100644 index 000000000..2f62a5acf --- /dev/null +++ b/pr-preview/pr-186/img/services/Vpc Endpoint.svg @@ -0,0 +1,16 @@ + + + + +Vpc Endpoint +Created with Sketch. + + diff --git a/pr-preview/pr-186/img/services/ai-Modelarts.svg b/pr-preview/pr-186/img/services/ai-Modelarts.svg new file mode 100644 index 000000000..c7dafef06 --- /dev/null +++ b/pr-preview/pr-186/img/services/ai-Modelarts.svg @@ -0,0 +1 @@ +AI资产 \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/aom.svg b/pr-preview/pr-186/img/services/aom.svg new file mode 100644 index 000000000..2cd52014d --- /dev/null +++ b/pr-preview/pr-186/img/services/aom.svg @@ -0,0 +1,18 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/apig.svg b/pr-preview/pr-186/img/services/apig.svg new file mode 100644 index 000000000..abb686326 --- /dev/null +++ b/pr-preview/pr-186/img/services/apig.svg @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/apm.svg b/pr-preview/pr-186/img/services/apm.svg new file mode 100644 index 000000000..76755ee7e --- /dev/null +++ b/pr-preview/pr-186/img/services/apm.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/asm.svg b/pr-preview/pr-186/img/services/asm.svg new file mode 100644 index 000000000..b8a82617f --- /dev/null +++ b/pr-preview/pr-186/img/services/asm.svg @@ -0,0 +1,46 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/cc.svg b/pr-preview/pr-186/img/services/cc.svg new file mode 100644 index 000000000..897067734 --- /dev/null +++ b/pr-preview/pr-186/img/services/cc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/cci.svg b/pr-preview/pr-186/img/services/cci.svg new file mode 100644 index 000000000..e3c241fa5 --- /dev/null +++ b/pr-preview/pr-186/img/services/cci.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/ces (1).svg b/pr-preview/pr-186/img/services/ces (1).svg new file mode 100644 index 000000000..df1bcac8f --- /dev/null +++ b/pr-preview/pr-186/img/services/ces (1).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/dataarts_studio.svg b/pr-preview/pr-186/img/services/dataarts_studio.svg new file mode 100644 index 000000000..b4d57eab6 --- /dev/null +++ b/pr-preview/pr-186/img/services/dataarts_studio.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/dbss.svg b/pr-preview/pr-186/img/services/dbss.svg new file mode 100644 index 000000000..c4a59fe9b --- /dev/null +++ b/pr-preview/pr-186/img/services/dbss.svg @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/ddm.svg b/pr-preview/pr-186/img/services/ddm.svg new file mode 100644 index 000000000..2a553bc55 --- /dev/null +++ b/pr-preview/pr-186/img/services/ddm.svg @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/dli.svg b/pr-preview/pr-186/img/services/dli.svg new file mode 100644 index 000000000..e4383d4dd --- /dev/null +++ b/pr-preview/pr-186/img/services/dli.svg @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/drs.svg b/pr-preview/pr-186/img/services/drs.svg new file mode 100644 index 000000000..9d7c21f47 --- /dev/null +++ b/pr-preview/pr-186/img/services/drs.svg @@ -0,0 +1,9 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/er.svg b/pr-preview/pr-186/img/services/er.svg new file mode 100644 index 000000000..f794ff32a --- /dev/null +++ b/pr-preview/pr-186/img/services/er.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/fg.svg b/pr-preview/pr-186/img/services/fg.svg new file mode 100644 index 000000000..295028dd3 --- /dev/null +++ b/pr-preview/pr-186/img/services/fg.svg @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/gaussdb_mysql.svg b/pr-preview/pr-186/img/services/gaussdb_mysql.svg new file mode 100644 index 000000000..a457c25d4 --- /dev/null +++ b/pr-preview/pr-186/img/services/gaussdb_mysql.svg @@ -0,0 +1 @@ +GaussDB nosql diff --git a/pr-preview/pr-186/img/services/gaussdb_nosql.svg b/pr-preview/pr-186/img/services/gaussdb_nosql.svg new file mode 100644 index 000000000..5459bae25 --- /dev/null +++ b/pr-preview/pr-186/img/services/gaussdb_nosql.svg @@ -0,0 +1,91 @@ + + + + + + + GaussDB nosql + + + + + + + + + + + + + + + + GaussDB nosql + + + + diff --git a/pr-preview/pr-186/img/services/hss.svg b/pr-preview/pr-186/img/services/hss.svg new file mode 100644 index 000000000..e794aca8d --- /dev/null +++ b/pr-preview/pr-186/img/services/hss.svg @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/ma.svg b/pr-preview/pr-186/img/services/ma.svg new file mode 100644 index 000000000..b3d611531 --- /dev/null +++ b/pr-preview/pr-186/img/services/ma.svg @@ -0,0 +1 @@ + diff --git a/pr-preview/pr-186/img/services/mapReduce-MRS.svg b/pr-preview/pr-186/img/services/mapReduce-MRS.svg new file mode 100644 index 000000000..669d6d8d2 --- /dev/null +++ b/pr-preview/pr-186/img/services/mapReduce-MRS.svg @@ -0,0 +1,36 @@ + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/mysql.svg b/pr-preview/pr-186/img/services/mysql.svg new file mode 100644 index 000000000..07467cacd --- /dev/null +++ b/pr-preview/pr-186/img/services/mysql.svg @@ -0,0 +1,30 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/nat-nat-gateway.svg b/pr-preview/pr-186/img/services/nat-nat-gateway.svg new file mode 100644 index 000000000..59523356f --- /dev/null +++ b/pr-preview/pr-186/img/services/nat-nat-gateway.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/ocr.svg b/pr-preview/pr-186/img/services/ocr.svg new file mode 100644 index 000000000..1df64a95a --- /dev/null +++ b/pr-preview/pr-186/img/services/ocr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/services/plas.svg b/pr-preview/pr-186/img/services/plas.svg new file mode 100644 index 000000000..5272eb3b0 --- /dev/null +++ b/pr-preview/pr-186/img/services/plas.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/pr-preview/pr-186/img/services/rms.svg b/pr-preview/pr-186/img/services/rms.svg new file mode 100644 index 000000000..45d4260d9 --- /dev/null +++ b/pr-preview/pr-186/img/services/rms.svg @@ -0,0 +1 @@ + diff --git a/pr-preview/pr-186/img/services/sdrs.svg b/pr-preview/pr-186/img/services/sdrs.svg new file mode 100644 index 000000000..31dc47a82 --- /dev/null +++ b/pr-preview/pr-186/img/services/sdrs.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/services/smg.svg b/pr-preview/pr-186/img/services/smg.svg new file mode 100644 index 000000000..5c244d81b --- /dev/null +++ b/pr-preview/pr-186/img/services/smg.svg @@ -0,0 +1,9 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/swr.svg b/pr-preview/pr-186/img/services/swr.svg new file mode 100644 index 000000000..b932b0ca8 --- /dev/null +++ b/pr-preview/pr-186/img/services/swr.svg @@ -0,0 +1,16 @@ + + + + + diff --git a/pr-preview/pr-186/img/services/web-WAF.svg b/pr-preview/pr-186/img/services/web-WAF.svg new file mode 100644 index 000000000..67a0077be --- /dev/null +++ b/pr-preview/pr-186/img/services/web-WAF.svg @@ -0,0 +1,29 @@ + + + + + + diff --git a/pr-preview/pr-186/img/telekom-logo.svg b/pr-preview/pr-186/img/telekom-logo.svg new file mode 100644 index 000000000..8fb2ff11a --- /dev/null +++ b/pr-preview/pr-186/img/telekom-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pr-preview/pr-186/img/undraw_docusaurus_mountain.svg b/pr-preview/pr-186/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..af961c49a --- /dev/null +++ b/pr-preview/pr-186/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/undraw_docusaurus_react.svg b/pr-preview/pr-186/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..94b5cf08f --- /dev/null +++ b/pr-preview/pr-186/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/undraw_docusaurus_tree.svg b/pr-preview/pr-186/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..d9161d339 --- /dev/null +++ b/pr-preview/pr-186/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pr-preview/pr-186/img/workflow_permissions.png b/pr-preview/pr-186/img/workflow_permissions.png new file mode 100644 index 000000000..318a273e6 Binary files /dev/null and b/pr-preview/pr-186/img/workflow_permissions.png differ diff --git a/pr-preview/pr-186/index.html b/pr-preview/pr-186/index.html new file mode 100644 index 000000000..c525db60c --- /dev/null +++ b/pr-preview/pr-186/index.html @@ -0,0 +1,14 @@ + + + + + +Architecture Center | Architecture Center + + + + + +

Best Practices

Explore the recommended strategies for resource management, such as efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance to ensure robust system performance.

Blueprints

Discover tailored out-of-the-box solutions and practical implementations for a range of scenarios. Explore real-world examples demonstrating the versatility and optimal application and infrastructure design using Open Telekom Cloud.

Contribute

Share with our vibrant community all that cool staff you've built with Open Telekom Cloud.

Join us on GitHub

Ask a Technical Question

Connect with people sharing the same passion for Open Telekom Cloud. Discover our exciting upcoming Events and Webinars!

Join our Community Forum
+ + \ No newline at end of file diff --git a/pr-preview/pr-186/markdown-page/index.html b/pr-preview/pr-186/markdown-page/index.html new file mode 100644 index 000000000..3dc54eb8e --- /dev/null +++ b/pr-preview/pr-186/markdown-page/index.html @@ -0,0 +1,15 @@ + + + + + +Markdown page example | Architecture Center + + + + + + + + \ No newline at end of file diff --git a/pr-preview/pr-186/sitemap.xml b/pr-preview/pr-186/sitemap.xml new file mode 100644 index 000000000..4ced561c3 --- /dev/null +++ b/pr-preview/pr-186/sitemap.xml @@ -0,0 +1 @@ +https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/markdown-pageweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/tagsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/application-services/api-gateway/selectively-exposing-cce-workloads-with-a-dedicated-gatewayweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/application-services/distributed-message-service/migrating-kafka-servicesweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/computing/elastic-cloud-server/building-highly-available-web-server-clusters-with-keepalivedweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/creating-a-linux-Image-using-virtualBox-and-an-iso-fileweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/computing/image-management-service/migrating-service-data-across-accounts-data-disksweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/auto-scaling-based-on-elb-monitoring-metricsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/backup-kubernetes-objectsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/debugging-and-starting-the-applicationweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/issue-an-acme-certificate-with-dns01-solver-in-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/migrating-from-other_clouds-to-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/restore-kubernetes-objectsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/cloud-container-engine/updating-resourcesweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/containers/software-repository/migrating-container-imagesweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/connecting-a-redis-client-to-dcs-through-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-elb-for-public-access-to-dcsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-nginx-for-public-access-to-single-node-master-standby-or-proxy-cluster-dcs-redis-instancesweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/distributed-cache-service/using-ssh-tunneling-for-public-access-to-a-dcs-instanceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-ecs-hosted-mongodb-to-ddsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-on-premises-mongodb-to-ddsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/from-other-cloud-mongodb-to-ddsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/databases/document-database-service/how-do-replica-sets-achieve-high-availability-and-readwrite-splittingweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/application-dynamic-subnetsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/googleweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/google-deployweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/google-cloud/multi-regionweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-create/service-catalogs/openshift-templateweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-eye/resource-group-monitoringweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/management-and-deployment/cloud-trace/auditing-and-analyzing-logins-and-logouts-with-functiongraphweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/domain-name-service/configuring-private-domain-names-for-ecssweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-different-vpcs-from-the-load-balancerweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/routing-traffic-to-backend-servers-in-the-same-vpc-as-the-load-balancerweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/elastic-load-balancing/using-advanced-forwarding-for-application-iterationweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/nat-gateway/using-a-public-nat-gateway-and-vpc-peering-to-enable-communications-between-vpcs-and-the-internetweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/unsupported-vpc-peering-configurationsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-cloud/vpc-and-subnet-planning-suggestionsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/networking/virtual-private-network/connecting-multiple-on-premises-branch-networks-through-a-vpn-hubweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/combining-waf-and-layer-7-load-balancers-to-protect-services-over-any-portsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/configuring-anti-crawler-rules-to-prevent-crawler-attacksweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/security-services/web-application-firewall/using-lts-to-quickly-query-and-analyze-waf-access-logsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/storage/elastic-volume-service/raid-array-creation-with-evs-disksweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxyweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-servicesweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-euvicweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/finance/cloud-particulateweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/government/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessengerweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-appweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloudweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/innovation/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloudweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-productionppweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/retail/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/retail/brodos-open-telekom-cloudweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-industry/telecoms/fiber-factoryweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/deploy-clickhouse-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/umamiweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-devtron-swr-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/devops/ci-jenkins-swr-cceweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/networking/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/networking/create-a-public-dns-endpoint-with-externaldnsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/observability/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/observability/kubernetes-logging-with-lokiweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentikweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/authentik-as-identity-provider-iamweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/cce-authentikweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/authentik/identity-federation-githubweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/cce-vaultweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/cce-keycloakweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/identity-federation-githubweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/security/keycloak/keycloakweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/storage/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/blueprints/by-use-case/storage/zone-redundant-nfsweekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/docs/caf/weekly0.5https://opentelekomcloud.github.io/docs-next/pr-preview/pr-186/weekly0.5 \ No newline at end of file