@gravitee/ui-particles-angular 7.17.2 → 7.17.3-policy-studio-step-8-82c2c97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,104 @@
1
+ /*
2
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { APP_ID, Component, Inject, Input, SecurityContext } from '@angular/core';
17
+ import { takeUntil } from 'rxjs/operators';
18
+ import { ReplaySubject, Subject, forkJoin } from 'rxjs';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "./gio-asciidoctor.service";
21
+ import * as i2 from "../gio-prismjs/gio-prismjs.service";
22
+ import * as i3 from "@angular/platform-browser";
23
+ import * as i4 from "@angular/common/http";
24
+ export class GioAsciidoctorComponent {
25
+ constructor(gioAsciidoctorService, gioPrismJsService, sanitizer, elementRef, httpClient, appId) {
26
+ this.gioAsciidoctorService = gioAsciidoctorService;
27
+ this.gioPrismJsService = gioPrismJsService;
28
+ this.sanitizer = sanitizer;
29
+ this.elementRef = elementRef;
30
+ this.httpClient = httpClient;
31
+ this.appId = appId;
32
+ this.options = {
33
+ header_footer: false,
34
+ attributes: {
35
+ showtitle: true,
36
+ },
37
+ safe: 'secure',
38
+ };
39
+ this.asciidoctor$ = new ReplaySubject(1);
40
+ this.unsubscribe$ = new Subject();
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ this._uniqueId = this.constructor['ɵcmp'].id;
43
+ // Asynchronously load asciidoctor.js and prism.js
44
+ forkJoin([this.gioAsciidoctorService.load(), this.gioPrismJsService.loadPrismJs()])
45
+ .pipe(takeUntil(this.unsubscribe$))
46
+ .subscribe(([asciidoctor]) => {
47
+ this.asciidoctor$.next(asciidoctor);
48
+ });
49
+ }
50
+ ngOnChanges(changes) {
51
+ if (changes.content && this.content) {
52
+ this.render(this.content);
53
+ }
54
+ if (changes.src && this.src) {
55
+ this.httpClient
56
+ .get(this.src, { responseType: 'text' })
57
+ .pipe(takeUntil(this.unsubscribe$))
58
+ .subscribe(content => {
59
+ this.render(content);
60
+ });
61
+ }
62
+ }
63
+ ngOnDestroy() {
64
+ this.unsubscribe$.next();
65
+ this.unsubscribe$.complete();
66
+ }
67
+ render(content) {
68
+ if (!content) {
69
+ return;
70
+ }
71
+ // When asciidoctor is not loaded yet, wait for it
72
+ this.asciidoctor$.pipe(takeUntil(this.unsubscribe$)).subscribe(asciidoctor => {
73
+ const html = asciidoctor.convert(content, this.options);
74
+ this.elementRef.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, html);
75
+ // Highlight all code blocks with PrismJs
76
+ const highlights = this.elementRef.nativeElement.querySelectorAll('pre.highlight');
77
+ for (const element of highlights) {
78
+ element.setAttribute('class', 'prismjs highlight');
79
+ if (window.Prism) {
80
+ window.Prism.highlightAllUnder(element);
81
+ }
82
+ }
83
+ // Manually add Angular encapsulation attribute to all elements at the end
84
+ const descandants = this.elementRef.nativeElement.querySelectorAll('*');
85
+ for (const element of descandants) {
86
+ element.setAttribute(`_ngcontent-${this.appId}-${this._uniqueId}`, '');
87
+ }
88
+ });
89
+ }
90
+ }
91
+ GioAsciidoctorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorComponent, deps: [{ token: i1.GioAsciidoctorService }, { token: i2.GioPrismJsService }, { token: i3.DomSanitizer }, { token: i0.ElementRef }, { token: i4.HttpClient }, { token: APP_ID }], target: i0.ɵɵFactoryTarget.Component });
92
+ GioAsciidoctorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioAsciidoctorComponent, selector: "gio-asciidoctor", inputs: { content: "content", src: "src" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: ["@charset \"UTF-8\";/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */html{font-family:sans-serif;-webkit-text-size-adjust:100%}a{background:none}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}b,strong{font-weight:700}abbr{font-size:.9em}abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}dfn{font-style:italic}hr{height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace;font-size:1em}pre{white-space:pre-wrap}q{quotes:\"\\201c\" \"\\201d\" \"\\2018\" \"\\2019\"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:before,:after{box-sizing:border-box}html,body{font-size:100%}body{background:#fff;color:#000c;padding:0;margin:0;font-family:\"Noto Serif\",\"DejaVu Serif\",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}a:hover{cursor:pointer}img,object,embed{max-width:100%;height:auto}object,embed{height:100%}img{-ms-interpolation-mode:bicubic}.left{float:left!important}.right{float:right!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.text-justify{text-align:justify!important}.hide{display:none}img,object,svg{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#2156a5;text-decoration:underline;line-height:inherit}a:hover,a:focus{color:#1d4b8f}a img{border:0}p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}p aside{font-size:.875em;line-height:1.35;font-style:italic}h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:Open Sans,DejaVu Sans,sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}h1{font-size:2.125em}h2{font-size:1.6875em}h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}h4,h5{font-size:1.125em}h6{font-size:1em}hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:700;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;font-weight:400;color:#000000e6}ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}ul,ol{margin-left:1.5em}ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square}ul.circle{list-style-type:circle}ul.disc{list-style-type:disc}ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}dl dt{margin-bottom:.3125em;font-weight:700}dl dd{margin-bottom:1.25em}blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}blockquote,blockquote p{line-height:1.6;color:#000000d9}@media screen and (min-width: 768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}h1{font-size:2.75em}h2{font-size:2.3125em}h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}table thead,table tfoot{background:#f7f8f7}table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:#000c;text-align:left}table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:#000c}table tr.even,table tr.alt{background:#f8f8f7}table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}.center{margin-left:auto;margin-right:auto}.stretch{width:100%}.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:\" \";display:table}.clearfix:after,.float-group:after{clear:both}:not(pre).nobreak{word-wrap:normal}:not(pre).nowrap{white-space:nowrap}:not(pre).pre-wrap{white-space:pre-wrap}:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}pre{color:#000000e6;font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;line-height:1.45;text-rendering:optimizeSpeed}pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}pre>code{display:block}pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}em em{font-style:normal}strong strong{font-weight:400}.keyseq{color:#333c}kbd{font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;display:inline-block;color:#000c;font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px #0003,inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}.keyseq kbd:first-child{margin-left:0}.keyseq kbd:last-child{margin-right:0}.menuseq,.menuref{color:#000}.menuseq b:not(.caret),.menuref{font-weight:inherit}.menuseq{word-spacing:-.02em}.menuseq b.caret{font-size:1.25em;line-height:.8}.menuseq i.caret{font-weight:700;text-align:center;width:.45em}b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}b.button:before{content:\"[\";padding:0 3px 0 2px}b.button:after{content:\"]\";padding:0 2px 0 3px}p a>code:hover{color:#000000e6}#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom: 1;position:relative;padding-left:.9375em;padding-right:.9375em}#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:\" \";display:table}#header:after,#content:after,#footnotes:after,#footer:after{clear:both}#content{margin-top:1.25em}#content:before{content:none}#header>h1:first-child{color:#000000d9;margin-top:2.25rem;margin-bottom:0}#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:#0009;display:flex;flex-flow:row wrap}#header .details span:first-child{margin-left:-.125em}#header .details span.email a{color:#000000d9}#header .details br{display:none}#header .details br+span:before{content:\"\\a0\\2013\\a0\"}#header .details br+span.author:before{content:\"\\a0\\22c5\\a0\";color:#000000d9}#header .details br+span#revremark:before{content:\"\\a0|\\a0\"}#header #revnumber{text-transform:capitalize}#header #revnumber:after{content:\"\\a0\"}#content>h1:first-child:not([class]){color:#000000d9;border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}#toc>ul{margin-left:.125em}#toc ul.sectlevel0>li>a{font-style:italic}#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}#toc ul{font-family:Open Sans,DejaVu Sans,sans-serif;list-style-type:none}#toc li{line-height:1.3334;margin-top:.3334em}#toc a{text-decoration:none}#toc a:active{text-decoration:underline}#toctitle{color:#7a2518;font-size:1.2em}@media screen and (min-width: 768px){#toctitle{font-size:1.375em}body.toc2{padding-left:15em;padding-right:0}#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}#toc.toc2>ul{font-size:.9em;margin-bottom:0}#toc.toc2 ul ul{margin-left:0;padding-left:1em}#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}body.toc2.toc-right{padding-left:0;padding-right:15em}body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}@media screen and (min-width: 1280px){body.toc2{padding-left:20em;padding-right:0}#toc.toc2{width:20em}#toc.toc2 #toctitle{font-size:1.375em}#toc.toc2>ul{font-size:.95em}#toc.toc2 ul ul{padding-left:1.25em}body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}#content #toc>:first-child{margin-top:0}#content #toc>:last-child{margin-bottom:0}#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}#footer-text{color:#fffc;line-height:1.44}#content{margin-bottom:.625em}.sect1{padding-bottom:.625em}@media screen and (min-width: 768px){#content{margin-bottom:1.25em}.sect1{padding-bottom:1.25em}}.sect1:last-child{padding-bottom:0}.sect1+.sect1{border-top:1px solid #e7e7e9}#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:\"\\a7\";font-size:.85em;display:block;padding-top:.1em}#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}details{margin-left:1.25rem}details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent}details>summary:before{content:\"\";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translate(15%)}details[open]>summary:before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}details>summary:after{content:\"\";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:\"Noto Serif\",\"DejaVu Serif\",serif;font-size:1rem;font-style:italic}table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:#000000d9}.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}.admonitionblock>table td.icon{text-align:center;width:80px}.admonitionblock>table td.icon img{max-width:none}.admonitionblock>table td.icon .title{font-weight:700;font-family:Open Sans,DejaVu Sans,sans-serif;text-transform:uppercase}.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:#0009;word-wrap:anywhere}.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}.exampleblock>.content>:first-child{margin-top:0}.exampleblock>.content>:last-child{margin-bottom:0}.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}.sidebarblock>:first-child{margin-top:0}.sidebarblock>:last-child{margin-bottom:0}.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}@media screen and (min-width: 768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}@media screen and (min-width: 1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^=\"highlight \"]{background:#f7f7f8}.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}.listingblock>.content{position:relative}.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}.listingblock:hover code[data-lang]:before{display:block}.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}.listingblock.terminal pre .command:not([data-prompt]):before{content:\"$\"}.listingblock pre.highlightjs{padding:0}.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}.listingblock pre.prettyprint{border-width:0}.prettyprint{background:#f7f7f8}pre.prettyprint .linenums{line-height:1.45;margin-left:2em}pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}pre.prettyprint li code[data-lang]:before{opacity:1}pre.prettyprint li:not(:first-child) code[data-lang]:before{display:none}table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}table.linenotable td.code{padding-left:.75em}table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}pre.pygments .lineno:before{content:\"\";margin-right:-.125em}.quoteblock{margin:0 1em 1.25em 1.5em;display:table}.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}.quoteblock blockquote,.quoteblock p{color:#000000d9;font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}.quoteblock blockquote{margin:0;padding:0;border:0}.quoteblock blockquote:before{content:\"\\201c\";float:left;font-size:2.75em;font-weight:700;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}.verseblock{margin:0 1em 1.25em}.verseblock pre{font-family:Open Sans,DejaVu Sans,sans-serif;font-size:1.15rem;color:#000000d9;font-weight:300;text-rendering:optimizeLegibility}.verseblock pre strong{font-weight:400}.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}.quoteblock .attribution br,.verseblock .attribution br{display:none}.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:#0009}.quoteblock.abstract blockquote:before,.quoteblock.excerpt blockquote:before,.quoteblock .quoteblock blockquote:before{display:none}.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}.quoteblock.abstract{margin:0 1em 1.25em;display:block}.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}p.tableblock:last-child{margin-bottom:0}td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}td.tableblock>.content>:last-child{margin-bottom:-1.25em}table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}table.grid-all>*>tr>*{border-width:1px}table.grid-cols>*>tr>*{border-width:0 1px}table.grid-rows>*>tr>*{border-width:1px 0}table.frame-all{border-width:1px}table.frame-ends{border-width:1px 0}table.frame-sides{border-width:0 1px}table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}th.halign-left,td.halign-left{text-align:left}th.halign-right,td.halign-right{text-align:right}th.halign-center,td.halign-center{text-align:center}th.valign-top,td.valign-top{vertical-align:top}th.valign-bottom,td.valign-bottom{vertical-align:bottom}th.valign-middle,td.valign-middle{vertical-align:middle}table thead th,table tfoot th{font-weight:700}tbody tr th{background:#f7f8f7}tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:#000c;font-weight:700}p.tableblock>code:only-child{background:none;padding:0}p.tableblock{font-size:1em}ol{margin-left:1.75em}ul li ol{margin-left:1.5em}dl dd{margin-left:1.125em}dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}ul.unstyled,ol.unstyled{margin-left:0}ul.checklist>li>p:first-child{margin-left:-1em}ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}ul.inline>li{margin-left:1.25em}.unstyled dl dt{font-weight:400;font-style:normal}ol.arabic{list-style-type:decimal}ol.decimal{list-style-type:decimal-leading-zero}ol.loweralpha{list-style-type:lower-alpha}ol.upperalpha{list-style-type:upper-alpha}ol.lowerroman{list-style-type:lower-roman}ol.upperroman{list-style-type:upper-roman}ol.lowergreek{list-style-type:lower-greek}.hdlist>table,.colist>table{border:0;background:none}.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}td.hdlist1{font-weight:700;padding-bottom:1.25em}td.hdlist2{word-wrap:anywhere}.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}.colist td:not([class]):first-child img{max-width:none}.colist td:not([class]):last-child{padding:.25em 0}.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}.imageblock.left{margin:.25em .625em 1.25em 0}.imageblock.right{margin:.25em 0 1.25em .625em}.imageblock>.title{margin-bottom:0}.imageblock.thumb,.imageblock.th{border-width:6px}.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}.image.left{margin-right:.625em}.image.right{margin-left:.625em}a.image{text-decoration:none;display:inline-block}a.image object{pointer-events:none}sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}sup.footnote a,sup.footnoteref a{text-decoration:none}sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}#footnotes .footnote a:first-of-type{font-weight:700;text-decoration:none;margin-left:-1.05em}#footnotes .footnote:last-of-type{margin-bottom:0}#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}.gist .file-data>table td.line-data{width:99%}div.unbreakable{page-break-inside:avoid}.big{font-size:larger}.small{font-size:smaller}.underline{text-decoration:underline}.overline{text-decoration:overline}.line-through{text-decoration:line-through}.aqua{color:#00bfbf}.aqua-background{background:#00fafa}.black{color:#000}.black-background{background:#000}.blue{color:#0000bf}.blue-background{background:#0000fa}.fuchsia{color:#bf00bf}.fuchsia-background{background:#fa00fa}.gray{color:#606060}.gray-background{background:#7d7d7d}.green{color:#006000}.green-background{background:#007d00}.lime{color:#00bf00}.lime-background{background:#00fa00}.maroon{color:#600000}.maroon-background{background:#7d0000}.navy{color:#000060}.navy-background{background:#00007d}.olive{color:#606000}.olive-background{background:#7d7d00}.purple{color:#600060}.purple-background{background:#7d007d}.red{color:#bf0000}.red-background{background:#fa0000}.silver{color:#909090}.silver-background{background:#bcbcbc}.teal{color:#006060}.teal-background{background:#007d7d}.white{color:#bfbfbf}.white-background{background:#fafafa}.yellow{color:#bfbf00}.yellow-background{background:#fafa00}span.icon>.fa{cursor:default}a span.icon>.fa{cursor:inherit}.admonitionblock td.icon [class^=\"fa icon-\"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}.admonitionblock td.icon .icon-note:before{content:\"\\f05a\";color:#19407c}.admonitionblock td.icon .icon-tip:before{content:\"\\f0eb\";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}.admonitionblock td.icon .icon-warning:before{content:\"\\f071\";color:#bf6900}.admonitionblock td.icon .icon-caution:before{content:\"\\f06d\";color:#bf3400}.admonitionblock td.icon .icon-important:before{content:\"\\f06a\";color:#bf0000}.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:Open Sans,DejaVu Sans,sans-serif;font-style:normal;font-weight:700}.conum[data-value] *{color:#fff!important}.conum[data-value]+b{display:none}.conum[data-value]:after{content:attr(data-value)}pre .conum[data-value]{position:relative;top:-.125em}b.conum *{color:inherit!important}.conum:not([data-value]):empty{display:none}dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}p{margin-bottom:1.25rem}.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}.print-only{display:none!important}@page{margin:1.25cm .75cm}@media print{*{box-shadow:none!important;text-shadow:none!important}html{font-size:80%}a{color:inherit!important;text-decoration:underline!important}a.bare,a[href^=\"#\"],a[href^=\"mailto:\"]{text-decoration:none!important}a[href^=\"http:\"]:not(.bare):after,a[href^=\"https:\"]:not(.bare):after{content:\"(\" attr(href) \")\";display:inline-block;font-size:.875em;padding-left:.25em}abbr[title]{border-bottom:1px dotted}abbr[title]:after{content:\" (\" attr(title) \")\"}pre,blockquote,tr,img,object,svg{page-break-inside:avoid}thead{display:table-header-group}svg{max-width:100%}p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}#header,#content,#footnotes,#footer{max-width:none}#toc,.sidebarblock,.exampleblock>.content{background:none!important}#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}body.book #header{text-align:center}body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}body.book #header .details{border:0!important;display:block;padding:0!important}body.book #header .details span:first-child{margin-left:0!important}body.book #header .details br{display:block}body.book #header .details br+span:before{content:none!important}body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}.listingblock code[data-lang]:before{display:block}#footer{padding:0 .9375em}.hide-on-print{display:none!important}.print-only{display:block!important}.hide-for-print{display:none!important}.show-for-print{display:inherit!important}}@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}.sect1{padding:0!important}.sect1+.sect1{border:0}#footer{background:none}#footer-text{color:#0009;font-size:.9em}}@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a6e22e}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#e6db74}.token.keyword{color:#66d9ef}.token.regex,.token.important{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}h1,h2,h3,h4,h5,h6,.title,#toctitle,.listingblock>.title,.sidebarblock>.content>.title{color:#100c27;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif}h1{font:600 42px/52px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}h1:first-of-type{margin-top:0}h2{font:600 26px/36px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}h3{font:600 18px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}h4{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}h5,h6{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px}p{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"] });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorComponent, decorators: [{
94
+ type: Component,
95
+ args: [{ selector: 'gio-asciidoctor', template: '', styles: ["@charset \"UTF-8\";/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */html{font-family:sans-serif;-webkit-text-size-adjust:100%}a{background:none}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}b,strong{font-weight:700}abbr{font-size:.9em}abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}dfn{font-style:italic}hr{height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace;font-size:1em}pre{white-space:pre-wrap}q{quotes:\"\\201c\" \"\\201d\" \"\\2018\" \"\\2019\"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,:before,:after{box-sizing:border-box}html,body{font-size:100%}body{background:#fff;color:#000c;padding:0;margin:0;font-family:\"Noto Serif\",\"DejaVu Serif\",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}a:hover{cursor:pointer}img,object,embed{max-width:100%;height:auto}object,embed{height:100%}img{-ms-interpolation-mode:bicubic}.left{float:left!important}.right{float:right!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.text-justify{text-align:justify!important}.hide{display:none}img,object,svg{display:inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}select{width:100%}.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}a{color:#2156a5;text-decoration:underline;line-height:inherit}a:hover,a:focus{color:#1d4b8f}a img{border:0}p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}p aside{font-size:.875em;line-height:1.35;font-style:italic}h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:Open Sans,DejaVu Sans,sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}h1{font-size:2.125em}h2{font-size:1.6875em}h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}h4,h5{font-size:1.125em}h6{font-size:1em}hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:700;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;font-weight:400;color:#000000e6}ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}ul,ol{margin-left:1.5em}ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square}ul.circle{list-style-type:circle}ul.disc{list-style-type:disc}ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}dl dt{margin-bottom:.3125em;font-weight:700}dl dd{margin-bottom:1.25em}blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}blockquote,blockquote p{line-height:1.6;color:#000000d9}@media screen and (min-width: 768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}h1{font-size:2.75em}h2{font-size:2.3125em}h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}table thead,table tfoot{background:#f7f8f7}table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:#000c;text-align:left}table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:#000c}table tr.even,table tr.alt{background:#f8f8f7}table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}.center{margin-left:auto;margin-right:auto}.stretch{width:100%}.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:\" \";display:table}.clearfix:after,.float-group:after{clear:both}:not(pre).nobreak{word-wrap:normal}:not(pre).nowrap{white-space:nowrap}:not(pre).pre-wrap{white-space:pre-wrap}:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}pre{color:#000000e6;font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;line-height:1.45;text-rendering:optimizeSpeed}pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}pre>code{display:block}pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}em em{font-style:normal}strong strong{font-weight:400}.keyseq{color:#333c}kbd{font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;display:inline-block;color:#000c;font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px #0003,inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}.keyseq kbd:first-child{margin-left:0}.keyseq kbd:last-child{margin-right:0}.menuseq,.menuref{color:#000}.menuseq b:not(.caret),.menuref{font-weight:inherit}.menuseq{word-spacing:-.02em}.menuseq b.caret{font-size:1.25em;line-height:.8}.menuseq i.caret{font-weight:700;text-align:center;width:.45em}b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}b.button:before{content:\"[\";padding:0 3px 0 2px}b.button:after{content:\"]\";padding:0 2px 0 3px}p a>code:hover{color:#000000e6}#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom: 1;position:relative;padding-left:.9375em;padding-right:.9375em}#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:\" \";display:table}#header:after,#content:after,#footnotes:after,#footer:after{clear:both}#content{margin-top:1.25em}#content:before{content:none}#header>h1:first-child{color:#000000d9;margin-top:2.25rem;margin-bottom:0}#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:#0009;display:flex;flex-flow:row wrap}#header .details span:first-child{margin-left:-.125em}#header .details span.email a{color:#000000d9}#header .details br{display:none}#header .details br+span:before{content:\"\\a0\\2013\\a0\"}#header .details br+span.author:before{content:\"\\a0\\22c5\\a0\";color:#000000d9}#header .details br+span#revremark:before{content:\"\\a0|\\a0\"}#header #revnumber{text-transform:capitalize}#header #revnumber:after{content:\"\\a0\"}#content>h1:first-child:not([class]){color:#000000d9;border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}#toc>ul{margin-left:.125em}#toc ul.sectlevel0>li>a{font-style:italic}#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}#toc ul{font-family:Open Sans,DejaVu Sans,sans-serif;list-style-type:none}#toc li{line-height:1.3334;margin-top:.3334em}#toc a{text-decoration:none}#toc a:active{text-decoration:underline}#toctitle{color:#7a2518;font-size:1.2em}@media screen and (min-width: 768px){#toctitle{font-size:1.375em}body.toc2{padding-left:15em;padding-right:0}#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}#toc.toc2>ul{font-size:.9em;margin-bottom:0}#toc.toc2 ul ul{margin-left:0;padding-left:1em}#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}body.toc2.toc-right{padding-left:0;padding-right:15em}body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}@media screen and (min-width: 1280px){body.toc2{padding-left:20em;padding-right:0}#toc.toc2{width:20em}#toc.toc2 #toctitle{font-size:1.375em}#toc.toc2>ul{font-size:.95em}#toc.toc2 ul ul{padding-left:1.25em}body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}#content #toc>:first-child{margin-top:0}#content #toc>:last-child{margin-bottom:0}#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}#footer-text{color:#fffc;line-height:1.44}#content{margin-bottom:.625em}.sect1{padding-bottom:.625em}@media screen and (min-width: 768px){#content{margin-bottom:1.25em}.sect1{padding-bottom:1.25em}}.sect1:last-child{padding-bottom:0}.sect1+.sect1{border-top:1px solid #e7e7e9}#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:\"\\a7\";font-size:.85em;display:block;padding-top:.1em}#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}details{margin-left:1.25rem}details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent}details>summary:before{content:\"\";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translate(15%)}details[open]>summary:before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}details>summary:after{content:\"\";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:\"Noto Serif\",\"DejaVu Serif\",serif;font-size:1rem;font-style:italic}table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:#000000d9}.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}.admonitionblock>table td.icon{text-align:center;width:80px}.admonitionblock>table td.icon img{max-width:none}.admonitionblock>table td.icon .title{font-weight:700;font-family:Open Sans,DejaVu Sans,sans-serif;text-transform:uppercase}.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:#0009;word-wrap:anywhere}.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}.exampleblock>.content>:first-child{margin-top:0}.exampleblock>.content>:last-child{margin-bottom:0}.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}.sidebarblock>:first-child{margin-top:0}.sidebarblock>:last-child{margin-bottom:0}.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}@media screen and (min-width: 768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}@media screen and (min-width: 1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^=\"highlight \"]{background:#f7f7f8}.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}.listingblock>.content{position:relative}.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}.listingblock:hover code[data-lang]:before{display:block}.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}.listingblock.terminal pre .command:not([data-prompt]):before{content:\"$\"}.listingblock pre.highlightjs{padding:0}.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}.listingblock pre.prettyprint{border-width:0}.prettyprint{background:#f7f7f8}pre.prettyprint .linenums{line-height:1.45;margin-left:2em}pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}pre.prettyprint li code[data-lang]:before{opacity:1}pre.prettyprint li:not(:first-child) code[data-lang]:before{display:none}table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}table.linenotable td.code{padding-left:.75em}table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}pre.pygments .lineno:before{content:\"\";margin-right:-.125em}.quoteblock{margin:0 1em 1.25em 1.5em;display:table}.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}.quoteblock blockquote,.quoteblock p{color:#000000d9;font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}.quoteblock blockquote{margin:0;padding:0;border:0}.quoteblock blockquote:before{content:\"\\201c\";float:left;font-size:2.75em;font-weight:700;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}.verseblock{margin:0 1em 1.25em}.verseblock pre{font-family:Open Sans,DejaVu Sans,sans-serif;font-size:1.15rem;color:#000000d9;font-weight:300;text-rendering:optimizeLegibility}.verseblock pre strong{font-weight:400}.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}.quoteblock .attribution br,.verseblock .attribution br{display:none}.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:#0009}.quoteblock.abstract blockquote:before,.quoteblock.excerpt blockquote:before,.quoteblock .quoteblock blockquote:before{display:none}.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}.quoteblock.abstract{margin:0 1em 1.25em;display:block}.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}p.tableblock:last-child{margin-bottom:0}td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}td.tableblock>.content>:last-child{margin-bottom:-1.25em}table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}table.grid-all>*>tr>*{border-width:1px}table.grid-cols>*>tr>*{border-width:0 1px}table.grid-rows>*>tr>*{border-width:1px 0}table.frame-all{border-width:1px}table.frame-ends{border-width:1px 0}table.frame-sides{border-width:0 1px}table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}th.halign-left,td.halign-left{text-align:left}th.halign-right,td.halign-right{text-align:right}th.halign-center,td.halign-center{text-align:center}th.valign-top,td.valign-top{vertical-align:top}th.valign-bottom,td.valign-bottom{vertical-align:bottom}th.valign-middle,td.valign-middle{vertical-align:middle}table thead th,table tfoot th{font-weight:700}tbody tr th{background:#f7f8f7}tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:#000c;font-weight:700}p.tableblock>code:only-child{background:none;padding:0}p.tableblock{font-size:1em}ol{margin-left:1.75em}ul li ol{margin-left:1.5em}dl dd{margin-left:1.125em}dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}ul.unstyled,ol.unstyled{margin-left:0}ul.checklist>li>p:first-child{margin-left:-1em}ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}ul.inline>li{margin-left:1.25em}.unstyled dl dt{font-weight:400;font-style:normal}ol.arabic{list-style-type:decimal}ol.decimal{list-style-type:decimal-leading-zero}ol.loweralpha{list-style-type:lower-alpha}ol.upperalpha{list-style-type:upper-alpha}ol.lowerroman{list-style-type:lower-roman}ol.upperroman{list-style-type:upper-roman}ol.lowergreek{list-style-type:lower-greek}.hdlist>table,.colist>table{border:0;background:none}.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}td.hdlist1{font-weight:700;padding-bottom:1.25em}td.hdlist2{word-wrap:anywhere}.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}.colist td:not([class]):first-child img{max-width:none}.colist td:not([class]):last-child{padding:.25em 0}.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}.imageblock.left{margin:.25em .625em 1.25em 0}.imageblock.right{margin:.25em 0 1.25em .625em}.imageblock>.title{margin-bottom:0}.imageblock.thumb,.imageblock.th{border-width:6px}.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}.image.left{margin-right:.625em}.image.right{margin-left:.625em}a.image{text-decoration:none;display:inline-block}a.image object{pointer-events:none}sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}sup.footnote a,sup.footnoteref a{text-decoration:none}sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}#footnotes .footnote a:first-of-type{font-weight:700;text-decoration:none;margin-left:-1.05em}#footnotes .footnote:last-of-type{margin-bottom:0}#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}.gist .file-data>table td.line-data{width:99%}div.unbreakable{page-break-inside:avoid}.big{font-size:larger}.small{font-size:smaller}.underline{text-decoration:underline}.overline{text-decoration:overline}.line-through{text-decoration:line-through}.aqua{color:#00bfbf}.aqua-background{background:#00fafa}.black{color:#000}.black-background{background:#000}.blue{color:#0000bf}.blue-background{background:#0000fa}.fuchsia{color:#bf00bf}.fuchsia-background{background:#fa00fa}.gray{color:#606060}.gray-background{background:#7d7d7d}.green{color:#006000}.green-background{background:#007d00}.lime{color:#00bf00}.lime-background{background:#00fa00}.maroon{color:#600000}.maroon-background{background:#7d0000}.navy{color:#000060}.navy-background{background:#00007d}.olive{color:#606000}.olive-background{background:#7d7d00}.purple{color:#600060}.purple-background{background:#7d007d}.red{color:#bf0000}.red-background{background:#fa0000}.silver{color:#909090}.silver-background{background:#bcbcbc}.teal{color:#006060}.teal-background{background:#007d7d}.white{color:#bfbfbf}.white-background{background:#fafafa}.yellow{color:#bfbf00}.yellow-background{background:#fafa00}span.icon>.fa{cursor:default}a span.icon>.fa{cursor:inherit}.admonitionblock td.icon [class^=\"fa icon-\"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}.admonitionblock td.icon .icon-note:before{content:\"\\f05a\";color:#19407c}.admonitionblock td.icon .icon-tip:before{content:\"\\f0eb\";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}.admonitionblock td.icon .icon-warning:before{content:\"\\f071\";color:#bf6900}.admonitionblock td.icon .icon-caution:before{content:\"\\f06d\";color:#bf3400}.admonitionblock td.icon .icon-important:before{content:\"\\f06a\";color:#bf0000}.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:Open Sans,DejaVu Sans,sans-serif;font-style:normal;font-weight:700}.conum[data-value] *{color:#fff!important}.conum[data-value]+b{display:none}.conum[data-value]:after{content:attr(data-value)}pre .conum[data-value]{position:relative;top:-.125em}b.conum *{color:inherit!important}.conum:not([data-value]):empty{display:none}dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}p{margin-bottom:1.25rem}.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}.print-only{display:none!important}@page{margin:1.25cm .75cm}@media print{*{box-shadow:none!important;text-shadow:none!important}html{font-size:80%}a{color:inherit!important;text-decoration:underline!important}a.bare,a[href^=\"#\"],a[href^=\"mailto:\"]{text-decoration:none!important}a[href^=\"http:\"]:not(.bare):after,a[href^=\"https:\"]:not(.bare):after{content:\"(\" attr(href) \")\";display:inline-block;font-size:.875em;padding-left:.25em}abbr[title]{border-bottom:1px dotted}abbr[title]:after{content:\" (\" attr(title) \")\"}pre,blockquote,tr,img,object,svg{page-break-inside:avoid}thead{display:table-header-group}svg{max-width:100%}p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}#header,#content,#footnotes,#footer{max-width:none}#toc,.sidebarblock,.exampleblock>.content{background:none!important}#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}body.book #header{text-align:center}body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}body.book #header .details{border:0!important;display:block;padding:0!important}body.book #header .details span:first-child{margin-left:0!important}body.book #header .details br{display:block}body.book #header .details br+span:before{content:none!important}body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}.listingblock code[data-lang]:before{display:block}#footer{padding:0 .9375em}.hide-on-print{display:none!important}.print-only{display:block!important}.hide-for-print{display:none!important}.show-for-print{display:inherit!important}}@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}.sect1{padding:0!important}.sect1+.sect1{border:0}#footer{background:none}#footer-text{color:#0009;font-size:.9em}}@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a6e22e}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#e6db74}.token.keyword{color:#66d9ef}.token.regex,.token.important{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}h1,h2,h3,h4,h5,h6,.title,#toctitle,.listingblock>.title,.sidebarblock>.content>.title{color:#100c27;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif}h1{font:600 42px/52px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}h1:first-of-type{margin-top:0}h2{font:600 26px/36px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}h3{font:600 18px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}h4{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}h5,h6{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px}p{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"] }]
96
+ }], ctorParameters: function () { return [{ type: i1.GioAsciidoctorService }, { type: i2.GioPrismJsService }, { type: i3.DomSanitizer }, { type: i0.ElementRef }, { type: i4.HttpClient }, { type: undefined, decorators: [{
97
+ type: Inject,
98
+ args: [APP_ID]
99
+ }] }]; }, propDecorators: { content: [{
100
+ type: Input
101
+ }], src: [{
102
+ type: Input
103
+ }] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWFzY2lpZG9jdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWFzY2lpZG9jdG9yL2dpby1hc2NpaWRvY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUF3QixlQUFlLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRW5JLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQWF4RCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJsQyxZQUNtQixxQkFBNEMsRUFDNUMsaUJBQW9DLEVBQ3BDLFNBQXVCLEVBQ3ZCLFVBQXNCLEVBQ3RCLFVBQXNCLEVBQ04sS0FBYTtRQUw3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDTixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBcEJ4QyxZQUFPLEdBQXdCO1lBQ3JDLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsSUFBSTthQUNoQjtZQUNELElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQztRQUVNLGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTNDLDhEQUE4RDtRQUN0RCxj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O3lHQTNCTCx1QkFBdUIsd0hBSHhCLEVBQUU7NEZBR0QsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGlCQUFpQixZQUNqQixFQUFFOzswQkE4QlQsTUFBTTsyQkFBQyxNQUFNOzRDQXpCVCxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEFQUF9JRCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2VjdXJpdHlDb250ZXh0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBc2NpaWRvY3RvciB9IGZyb20gJ2FzY2lpZG9jdG9yJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEdpb1ByaXNtSnNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2lvLXByaXNtanMvZ2lvLXByaXNtanMuc2VydmljZSc7XG5cbmltcG9ydCB7IEdpb0FzY2lpZG9jdG9yU2VydmljZSB9IGZyb20gJy4vZ2lvLWFzY2lpZG9jdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tYXNjaWlkb2N0b3InLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWycuL2dpby1hc2NpaWRvY3Rvci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Bc2NpaWRvY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbnRlbnQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNyYz86IHN0cmluZztcblxuICBwcml2YXRlIG9wdGlvbnM6IEFzY2lpZG9jdG9yLk9wdGlvbnMgPSB7XG4gICAgaGVhZGVyX2Zvb3RlcjogZmFsc2UsXG4gICAgYXR0cmlidXRlczoge1xuICAgICAgc2hvd3RpdGxlOiB0cnVlLFxuICAgIH0sXG4gICAgc2FmZTogJ3NlY3VyZScsXG4gIH07XG5cbiAgcHJpdmF0ZSBhc2NpaWRvY3RvciQgPSBuZXcgUmVwbGF5U3ViamVjdDxBc2NpaWRvY3Rvcj4oMSk7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcml2YXRlIF91bmlxdWVJZDogc3RyaW5nID0gKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KVsnybVjbXAnXS5pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdpb0FzY2lpZG9jdG9yU2VydmljZTogR2lvQXNjaWlkb2N0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2lvUHJpc21Kc1NlcnZpY2U6IEdpb1ByaXNtSnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KEFQUF9JRCkgcHJpdmF0ZSByZWFkb25seSBhcHBJZDogc3RyaW5nLFxuICApIHtcbiAgICAvLyBBc3luY2hyb25vdXNseSBsb2FkIGFzY2lpZG9jdG9yLmpzIGFuZCBwcmlzbS5qc1xuICAgIGZvcmtKb2luKFt0aGlzLmdpb0FzY2lpZG9jdG9yU2VydmljZS5sb2FkKCksIHRoaXMuZ2lvUHJpc21Kc1NlcnZpY2UubG9hZFByaXNtSnMoKV0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoW2FzY2lpZG9jdG9yXSkgPT4ge1xuICAgICAgICB0aGlzLmFzY2lpZG9jdG9yJC5uZXh0KGFzY2lpZG9jdG9yKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb250ZW50ICYmIHRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5yZW5kZXIodGhpcy5jb250ZW50KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuc3JjICYmIHRoaXMuc3JjKSB7XG4gICAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldCh0aGlzLnNyYywgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgICAuc3Vic2NyaWJlKGNvbnRlbnQgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyKGNvbnRlbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcihjb250ZW50Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gV2hlbiBhc2NpaWRvY3RvciBpcyBub3QgbG9hZGVkIHlldCwgd2FpdCBmb3IgaXRcbiAgICB0aGlzLmFzY2lpZG9jdG9yJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZShhc2NpaWRvY3RvciA9PiB7XG4gICAgICBjb25zdCBodG1sID0gYXNjaWlkb2N0b3IuY29udmVydChjb250ZW50LCB0aGlzLm9wdGlvbnMpO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5zYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIGh0bWwpO1xuXG4gICAgICAvLyBIaWdobGlnaHQgYWxsIGNvZGUgYmxvY2tzIHdpdGggUHJpc21Kc1xuICAgICAgY29uc3QgaGlnaGxpZ2h0cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3ByZS5oaWdobGlnaHQnKTtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBoaWdobGlnaHRzKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdjbGFzcycsICdwcmlzbWpzIGhpZ2hsaWdodCcpO1xuICAgICAgICBpZiAod2luZG93LlByaXNtKSB7XG4gICAgICAgICAgd2luZG93LlByaXNtLmhpZ2hsaWdodEFsbFVuZGVyKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE1hbnVhbGx5IGFkZCBBbmd1bGFyIGVuY2Fwc3VsYXRpb24gYXR0cmlidXRlIHRvIGFsbCBlbGVtZW50cyBhdCB0aGUgZW5kXG4gICAgICBjb25zdCBkZXNjYW5kYW50cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyonKTtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBkZXNjYW5kYW50cykge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShgX25nY29udGVudC0ke3RoaXMuYXBwSWR9LSR7dGhpcy5fdW5pcXVlSWR9YCwgJycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { CommonModule } from '@angular/common';
17
+ import { NgModule } from '@angular/core';
18
+ import { HttpClientModule } from '@angular/common/http';
19
+ import { GioAsciidoctorComponent } from './gio-asciidoctor.component';
20
+ import * as i0 from "@angular/core";
21
+ export class GioAsciidoctorModule {
22
+ }
23
+ GioAsciidoctorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ GioAsciidoctorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorModule, declarations: [GioAsciidoctorComponent], imports: [CommonModule, HttpClientModule], exports: [GioAsciidoctorComponent] });
25
+ GioAsciidoctorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorModule, imports: [[CommonModule, HttpClientModule]] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ imports: [CommonModule, HttpClientModule],
30
+ declarations: [GioAsciidoctorComponent],
31
+ exports: [GioAsciidoctorComponent],
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWFzY2lpZG9jdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWFzY2lpZG9jdG9yL2dpby1hc2NpaWRvY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPdEUsTUFBTSxPQUFPLG9CQUFvQjs7a0hBQXBCLG9CQUFvQjttSEFBcEIsb0JBQW9CLGlCQUhoQix1QkFBdUIsYUFENUIsWUFBWSxFQUFFLGdCQUFnQixhQUU5Qix1QkFBdUI7bUhBRXRCLG9CQUFvQixZQUp0QixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzs0RkFJOUIsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IEdpb0FzY2lpZG9jdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9naW8tYXNjaWlkb2N0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSHR0cENsaWVudE1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0dpb0FzY2lpZG9jdG9yQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0dpb0FzY2lpZG9jdG9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvQXNjaWlkb2N0b3JNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ /*
2
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Injectable } from '@angular/core';
17
+ import { Observable } from 'rxjs';
18
+ import { shareReplay } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ export class GioAsciidoctorService {
21
+ load() {
22
+ return this.loadAsciidoctor().pipe(
23
+ // If already loaded, we don't want to load it again
24
+ shareReplay(1));
25
+ }
26
+ loadAsciidoctor() {
27
+ return new Observable(observer => {
28
+ const onGotAsciidoctor = () => {
29
+ observer.next(window.Asciidoctor());
30
+ observer.complete();
31
+ };
32
+ if (!window.Asciidoctor) {
33
+ const loaderScript = document.createElement('script');
34
+ loaderScript.type = 'text/javascript';
35
+ loaderScript.src = 'assets/asciidoctor/asciidoctor.js';
36
+ loaderScript.addEventListener('load', onGotAsciidoctor);
37
+ loaderScript.addEventListener('error', err => observer.error(err));
38
+ document.body.appendChild(loaderScript);
39
+ }
40
+ else {
41
+ onGotAsciidoctor();
42
+ }
43
+ });
44
+ }
45
+ }
46
+ GioAsciidoctorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
+ GioAsciidoctorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorService, providedIn: 'root' });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioAsciidoctorService, decorators: [{
49
+ type: Injectable,
50
+ args: [{
51
+ providedIn: 'root',
52
+ }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWFzY2lpZG9jdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1hc2NpaWRvY3Rvci9naW8tYXNjaWlkb2N0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZTdDLE1BQU0sT0FBTyxxQkFBcUI7SUFDekIsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUk7UUFDaEMsb0RBQW9EO1FBQ3BELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLFVBQVUsQ0FBYyxRQUFRLENBQUMsRUFBRTtZQUM1QyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtnQkFDNUIsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQztZQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUN2QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RCxZQUFZLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO2dCQUN0QyxZQUFZLENBQUMsR0FBRyxHQUFHLG1DQUFtQyxDQUFDO2dCQUN2RCxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3hELFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNMLGdCQUFnQixFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQTFCVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXNjaWlkb2N0b3IgfSBmcm9tICdhc2NpaWRvY3Rvcic7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHR5cGUgQXNjaWlkb2N0b3JQcm9jZXNzb3IgZnJvbSAnYXNjaWlkb2N0b3InO1xuXG50eXBlIEFzY2lpZG9jdG9yUHJvY2Vzc29yID0gdHlwZW9mIEFzY2lpZG9jdG9yUHJvY2Vzc29yO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIEFzY2lpZG9jdG9yOiBBc2NpaWRvY3RvclByb2Nlc3NvcjtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2lvQXNjaWlkb2N0b3JTZXJ2aWNlIHtcbiAgcHVibGljIGxvYWQoKTogT2JzZXJ2YWJsZTxBc2NpaWRvY3Rvcj4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRBc2NpaWRvY3RvcigpLnBpcGUoXG4gICAgICAvLyBJZiBhbHJlYWR5IGxvYWRlZCwgd2UgZG9uJ3Qgd2FudCB0byBsb2FkIGl0IGFnYWluXG4gICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQXNjaWlkb2N0b3IoKTogT2JzZXJ2YWJsZTxBc2NpaWRvY3Rvcj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxBc2NpaWRvY3Rvcj4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgY29uc3Qgb25Hb3RBc2NpaWRvY3RvciA9ICgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh3aW5kb3cuQXNjaWlkb2N0b3IoKSk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9O1xuXG4gICAgICBpZiAoIXdpbmRvdy5Bc2NpaWRvY3Rvcikge1xuICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9ICdhc3NldHMvYXNjaWlkb2N0b3IvYXNjaWlkb2N0b3IuanMnO1xuICAgICAgICBsb2FkZXJTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uR290QXNjaWlkb2N0b3IpO1xuICAgICAgICBsb2FkZXJTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uR290QXNjaWlkb2N0b3IoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -16,7 +16,7 @@
16
16
  import { Component, Host, HostBinding, Input, Optional, } from '@angular/core';
17
17
  import { FormGroup } from '@angular/forms';
18
18
  import { cloneDeep, isEmpty, isObject } from 'lodash';
19
- import { debounceTime, distinctUntilChanged, filter, map, take, takeUntil } from 'rxjs/operators';
19
+ import { debounceTime, delay, distinctUntilChanged, filter, map, take, takeUntil, tap } from 'rxjs/operators';
20
20
  import { merge, ReplaySubject, Subject } from 'rxjs';
21
21
  import { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR } from '../gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive';
22
22
  import * as i0 from "@angular/core";
@@ -82,32 +82,22 @@ export class GioFormJsonSchemaComponent {
82
82
  this.formGroup.markAllAsTouched();
83
83
  this.stateChanges$.next();
84
84
  });
85
- // Group all valueChanges events emit by formly in a single one
86
- merge(this.formGroup.statusChanges, this.formGroup.valueChanges)
87
- .pipe(takeUntil(this.unsubscribe$), debounceTime(100))
88
- .subscribe(() => {
89
- this.stateChanges$.next();
90
- });
91
- }
92
- ngAfterViewInit() {
93
85
  // Add async validator to the parent
94
86
  this.ngControl?.control?.addAsyncValidators(() => {
95
87
  return this.isValid$.pipe(takeUntil(this.unsubscribe$), take(1), map(isValid => (isValid ? null : { invalid: true })));
96
88
  });
97
- this.ngControl?.control?.updateValueAndValidity({ emitEvent: false });
98
89
  // Subscribe to state changes to manage touches, status and value
99
- this.stateChanges$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
90
+ this.stateChanges$
91
+ .pipe(tap(() => {
100
92
  const { status, value, touched } = this.formGroup;
101
93
  if (this.isDisabled) {
102
94
  return;
103
95
  }
104
96
  if (status === 'VALID') {
105
97
  this.isValid$.next(true);
106
- this.ngControl?.control?.setErrors(null);
107
98
  }
108
99
  if (status === 'INVALID') {
109
100
  this.isValid$.next(false);
110
- this.ngControl?.control?.setErrors({ invalid: true });
111
101
  }
112
102
  if (touched && !this.touched) {
113
103
  this._onTouched();
@@ -116,8 +106,21 @@ export class GioFormJsonSchemaComponent {
116
106
  if (this.touched) {
117
107
  this._onChange(value);
118
108
  }
119
- this.ngControl?.control?.updateValueAndValidity({ emitEvent: false });
109
+ }), delay(0),
110
+ // Keep at the end
111
+ takeUntil(this.unsubscribe$))
112
+ .subscribe(() => {
113
+ this.changeDetectorRef.markForCheck();
120
114
  this.changeDetectorRef.detectChanges();
115
+ this.ngControl?.control?.updateValueAndValidity();
116
+ });
117
+ }
118
+ ngAfterViewInit() {
119
+ // Group all valueChanges events emit by formly in a single one
120
+ merge(this.formGroup.statusChanges, this.formGroup.valueChanges)
121
+ .pipe(takeUntil(this.unsubscribe$), debounceTime(100))
122
+ .subscribe(() => {
123
+ this.stateChanges$.next();
121
124
  });
122
125
  this.stateChanges$.next();
123
126
  }
@@ -172,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
172
175
  }], options: [{
173
176
  type: Input
174
177
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBR0wsU0FBUyxFQUVULElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQzs7Ozs7OztBQVV2SSxNQUFNLE9BQU8sMEJBQTBCO0lBeUNyQyxZQUNtQixtQkFBK0MsRUFDL0MsS0FBaUIsRUFDakIsRUFBZ0IsRUFDaEIsaUJBQW9DLEVBQ2pCLFNBQXFCO1FBSnhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNEI7UUFDL0MsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQXhDbkQsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEs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QUNyQixnQkFBZ0IsQ0FBQyxFQUFtQztRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLGlCQUFpQixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELDRCQUE0QjtJQUNyQixnQkFBZ0IsQ0FBRSxVQUFtQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsU0FBUyxFQUFFO2dCQUNULEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsVUFBVTthQUNyQjtTQUNGLENBQUM7UUFFRixVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEEvS1UsMEJBQTBCOzRHQUExQiwwQkFBMEIsb05BSDNCLHdIQUF3SDs0RkFHdkgsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qix3SEFBd0g7OzBCQWlEL0gsSUFBSTs7MEJBQUksUUFBUTs0Q0FyQ1gseUJBQXlCO3NCQURoQyxXQUFXO3VCQUFDLFFBQVEsc0NBQXNDLEVBQUU7Z0JBSWxELFVBQVU7c0JBRHBCLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3QsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5LCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgR0lPX0ZPUk1fRk9DVVNfSU5WQUxJRF9JR05PUkVfU0VMRUNUT1IgfSBmcm9tICcuLi9naW8tZm9ybS1mb2N1cy1maXJzdC1pbnZhbGlkL2dpby1mb3JtLWZvY3VzLWZpcnN0LWludmFsaWQtaWdub3JlLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEdpb0pzb25TY2hlbWEgfSBmcm9tICcuL21vZGVsL0dpb0pzb25TY2hlbWEnO1xuaW1wb3J0IHsgR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UgfSBmcm9tICcuL2dpby1mb3JtbHktanNvbi1zY2hlbWEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1mb3JtLWpzb24tc2NoZW1hJyxcbiAgdGVtcGxhdGU6IGA8Zm9ybWx5LWZvcm0gKm5nSWY9XCJmb3JtR3JvdXBcIiBbZmllbGRzXT1cImZpZWxkc1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZm9ybV09XCJmb3JtR3JvdXBcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPmAsXG4gIHN0eWxlVXJsczogWycuL2dpby1mb3JtLWpzb24tc2NoZW1hLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1Kc29uU2NoZW1hQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyBpc0Rpc3BsYXlhYmxlKGpzb25TY2hlbWE6IEdpb0pzb25TY2hlbWEpOiBib29sZWFuIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gWydwcm9wZXJ0aWVzJywgJ29uZU9mJywgJ2FueU9mJywgJ2FsbE9mJywgJyRyZWYnLCAnaXRlbXMnXSBhcyBjb25zdDtcblxuICAgIHJldHVybiBpc09iamVjdChqc29uU2NoZW1hKSAmJiBwcm9wZXJ0aWVzLnNvbWUocHJvcGVydHkgPT4gIWlzRW1wdHkoanNvblNjaGVtYVtwcm9wZXJ0eV0pKTtcbiAgfVxuICBwcml2YXRlIHVuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKGBhdHRyLiR7R0lPX0ZPUk1fRk9DVVNfSU5WQUxJRF9JR05PUkVfU0VMRUNUT1J9YClcbiAgcHJpdmF0ZSBnaW9Gb3JtRm9jdXNJbnZhbGlkSWdub3JlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGpzb25TY2hlbWEoanNvblNjaGVtYTogR2lvSnNvblNjaGVtYSkge1xuICAgIGlmIChpc09iamVjdChqc29uU2NoZW1hKSkge1xuICAgICAgdGhpcy5maWVsZHMgPSBbdGhpcy5naW9Gb3JtbHlKc29uU2NoZW1hLnRvRm9ybWx5RmllbGRDb25maWcoanNvblNjaGVtYSldO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xuXG4gIHB1YmxpYyBtb2RlbDogdW5rbm93biA9IHt9O1xuXG4gIHB1YmxpYyBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcblxuICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XG5cbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgX29uQ2hhbmdlOiAodmFsdWU6IHVua25vd24gfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwdWJsaWMgX29uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpOyAvLyBXYWl0IEpzb25TY2hlbWEgdG8gYmUgbG9hZGVkIHRvIGNoZWNrIGlmIGl0J3MgdmFsaWRcblxuICBwcml2YXRlIHN0YXRlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2lvRm9ybWx5SnNvblNjaGVtYTogR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sPzogTmdDb250cm9sLFxuICApIHtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSBhY2Nlc3NvciBkaXJlY3RseSAoaW5zdGVhZCBvZiB1c2luZ1xuICAgICAgLy8gdGhlIHByb3ZpZGVycyBgTkdfVkFMVUVfQUNDRVNTT1JgKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgdXNlciBpbnRlcmFjdCB3aXRoIHRoZSBmb3JtLCBtYXJrIGl0IGFzIHRvdWNoZWRcbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXaGVuIHRoZSBwYXJlbnQgZm9ybSBpcyB0b3VjaGVkLCBtYXJrIGFsbCB0aGUgc3ViIGZvcm1Hcm91cCBhcyB0b3VjaGVkIGlmIG5vdCBhbHJlYWR5IHRvdWNoZWRcbiAgICBjb25zdCBwYXJlbnRDb250cm9sID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnBhcmVudDtcbiAgICBwYXJlbnRDb250cm9sPy5zdGF0dXNDaGFuZ2VzXG4gICAgICA/LnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIG1hcCgoKSA9PiBwYXJlbnRDb250cm9sPy50b3VjaGVkKSxcbiAgICAgICAgZmlsdGVyKHRvdWNoZWQgPT4gdG91Y2hlZCA9PT0gdHJ1ZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIC8vIEdyb3VwIGFsbCB2YWx1ZUNoYW5nZXMgZXZlbnRzIGVtaXQgYnkgZm9ybWx5IGluIGEgc2luZ2xlIG9uZVxuICAgIG1lcmdlKHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXMsIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRlYm91bmNlVGltZSgxMDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gQWRkIGFzeW5jIHZhbGlkYXRvciB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmFkZEFzeW5jVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkJC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoaXNWYWxpZCA9PiAoaXNWYWxpZCA/IG51bGwgOiB7IGludmFsaWQ6IHRydWUgfSkpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gc3RhdGUgY2hhbmdlcyB0byBtYW5hZ2UgdG91Y2hlcywgc3RhdHVzIGFuZCB2YWx1ZVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB7IHN0YXR1cywgdmFsdWUsIHRvdWNoZWQgfSA9IHRoaXMuZm9ybUdyb3VwO1xuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0dXMgPT09ICdWQUxJRCcpIHtcbiAgICAgICAgdGhpcy5pc1ZhbGlkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0RXJyb3JzKG51bGwpO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXR1cyA9PT0gJ0lOVkFMSUQnKSB7XG4gICAgICAgIHRoaXMuaXNWYWxpZCQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkOiB0cnVlIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodG91Y2hlZCAmJiAhdGhpcy50b3VjaGVkKSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50b3VjaGVkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcyQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm0uc3RvcE1vbml0b3JpbmcodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsID0gY2xvbmVEZWVwKHZhbHVlKSA/PyB7fTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogdW5rbm93biB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZm9ybVN0YXRlLFxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcblxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBR0wsU0FBUyxFQUVULElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUcsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLCtFQUErRSxDQUFDOzs7Ozs7O0FBVXZJLE1BQU0sT0FBTywwQkFBMEI7SUF5Q3JDLFlBQ21CLG1CQUErQyxFQUMvQyxLQUFpQixFQUNqQixFQUFnQixFQUNoQixpQkFBb0MsRUFDakIsU0FBcUI7UUFKeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE0QjtRQUMvQyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBeENuRCxpQkFBWSxH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Q0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCw0QkFBNEI7SUFDckIsZ0JBQWdCLENBQUUsVUFBbUI7UUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLFNBQVMsRUFBRTtnQkFDVCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDekIsUUFBUSxFQUFFLFVBQVU7YUFDckI7U0FDRixDQUFDO1FBRUYsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWhFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7d0hBbkxVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLG9OQUgzQix3SEFBd0g7NEZBR3ZILDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxzQkFBc0IsWUFDdEIsd0hBQXdIOzswQkFpRC9ILElBQUk7OzBCQUFJLFFBQVE7NENBckNYLHlCQUF5QjtzQkFEaEMsV0FBVzt1QkFBQyxRQUFRLHNDQUFzQyxFQUFFO2dCQUlsRCxVQUFVO3NCQURwQixLQUFLO2dCQVVDLE9BQU87c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUdyb3VwLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFbXB0eSwgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IEdJT19GT1JNX0ZPQ1VTX0lOVkFMSURfSUdOT1JFX1NFTEVDVE9SIH0gZnJvbSAnLi4vZ2lvLWZvcm0tZm9jdXMtZmlyc3QtaW52YWxpZC9naW8tZm9ybS1mb2N1cy1maXJzdC1pbnZhbGlkLWlnbm9yZS5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBHaW9Kc29uU2NoZW1hIH0gZnJvbSAnLi9tb2RlbC9HaW9Kc29uU2NoZW1hJztcbmltcG9ydCB7IEdpb0Zvcm1seUpzb25TY2hlbWFTZXJ2aWNlIH0gZnJvbSAnLi9naW8tZm9ybWx5LWpzb24tc2NoZW1hLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tZm9ybS1qc29uLXNjaGVtYScsXG4gIHRlbXBsYXRlOiBgPGZvcm1seS1mb3JtICpuZ0lmPVwiZm9ybUdyb3VwXCIgW2ZpZWxkc109XCJmaWVsZHNcIiBbb3B0aW9uc109XCJvcHRpb25zXCIgW2Zvcm1dPVwiZm9ybUdyb3VwXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5gLFxuICBzdHlsZVVybHM6IFsnLi9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNEaXNwbGF5YWJsZShqc29uU2NoZW1hOiBHaW9Kc29uU2NoZW1hKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFsncHJvcGVydGllcycsICdvbmVPZicsICdhbnlPZicsICdhbGxPZicsICckcmVmJywgJ2l0ZW1zJ10gYXMgY29uc3Q7XG5cbiAgICByZXR1cm4gaXNPYmplY3QoanNvblNjaGVtYSkgJiYgcHJvcGVydGllcy5zb21lKHByb3BlcnR5ID0+ICFpc0VtcHR5KGpzb25TY2hlbWFbcHJvcGVydHldKSk7XG4gIH1cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZyhgYXR0ci4ke0dJT19GT1JNX0ZPQ1VTX0lOVkFMSURfSUdOT1JFX1NFTEVDVE9SfWApXG4gIHByaXZhdGUgZ2lvRm9ybUZvY3VzSW52YWxpZElnbm9yZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBqc29uU2NoZW1hKGpzb25TY2hlbWE6IEdpb0pzb25TY2hlbWEpIHtcbiAgICBpZiAoaXNPYmplY3QoanNvblNjaGVtYSkpIHtcbiAgICAgIHRoaXMuZmllbGRzID0gW3RoaXMuZ2lvRm9ybWx5SnNvblNjaGVtYS50b0Zvcm1seUZpZWxkQ29uZmlnKGpzb25TY2hlbWEpXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcblxuICBwdWJsaWMgbW9kZWw6IHVua25vd24gPSB7fTtcblxuICBwdWJsaWMgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XG5cbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIF9vbkNoYW5nZTogKHZhbHVlOiB1bmtub3duIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHVibGljIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgaXNWYWxpZCQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTsgLy8gV2FpdCBKc29uU2NoZW1hIHRvIGJlIGxvYWRlZCB0byBjaGVjayBpZiBpdCdzIHZhbGlkXG5cbiAgcHJpdmF0ZSBzdGF0ZUNoYW5nZXMkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdpb0Zvcm1seUpzb25TY2hlbWE6IEdpb0Zvcm1seUpzb25TY2hlbWFTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmbTogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgcHVibGljIHJlYWRvbmx5IG5nQ29udHJvbD86IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgYWNjZXNzb3IgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmdcbiAgICAgIC8vIHRoZSBwcm92aWRlcnMgYE5HX1ZBTFVFX0FDQ0VTU09SYCkgdG8gYXZvaWQgcnVubmluZyBpbnRvIGEgY2lyY3VsYXIgaW1wb3J0LlxuICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIHVzZXIgaW50ZXJhY3Qgd2l0aCB0aGUgZm9ybSwgbWFyayBpdCBhcyB0b3VjaGVkXG4gICAgZm0ubW9uaXRvcihlbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gV2hlbiB0aGUgcGFyZW50IGZvcm0gaXMgdG91Y2hlZCwgbWFyayBhbGwgdGhlIHN1YiBmb3JtR3JvdXAgYXMgdG91Y2hlZCBpZiBub3QgYWxyZWFkeSB0b3VjaGVkXG4gICAgY29uc3QgcGFyZW50Q29udHJvbCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy5wYXJlbnQ7XG4gICAgcGFyZW50Q29udHJvbD8uc3RhdHVzQ2hhbmdlc1xuICAgICAgPy5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBtYXAoKCkgPT4gcGFyZW50Q29udHJvbD8udG91Y2hlZCksXG4gICAgICAgIGZpbHRlcih0b3VjaGVkID0+IHRvdWNoZWQgPT09IHRydWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcyQubmV4dCgpO1xuICAgICAgfSk7XG5cbiAgICAvLyBBZGQgYXN5bmMgdmFsaWRhdG9yIHRvIHRoZSBwYXJlbnRcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uYWRkQXN5bmNWYWxpZGF0b3JzKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQkLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcChpc1ZhbGlkID0+IChpc1ZhbGlkID8gbnVsbCA6IHsgaW52YWxpZDogdHJ1ZSB9KSksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHN0YXRlIGNoYW5nZXMgdG8gbWFuYWdlIHRvdWNoZXMsIHN0YXR1cyBhbmQgdmFsdWVcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgc3RhdHVzLCB2YWx1ZSwgdG91Y2hlZCB9ID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdWQUxJRCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ0lOVkFMSUQnKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0b3VjaGVkICYmICF0aGlzLnRvdWNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy50b3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIC8vIEtlZXAgYXQgdGhlIGVuZFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIEdyb3VwIGFsbCB2YWx1ZUNoYW5nZXMgZXZlbnRzIGVtaXQgYnkgZm9ybWx5IGluIGEgc2luZ2xlIG9uZVxuICAgIG1lcmdlKHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXMsIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRlYm91bmNlVGltZSgxMDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcyQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm0uc3RvcE1vbml0b3JpbmcodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsID0gY2xvbmVEZWVwKHZhbHVlKSA/PyB7fTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogdW5rbm93biB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGZvcm1TdGF0ZToge1xuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZm9ybVN0YXRlLFxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcblxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Injectable } from '@angular/core';
17
+ import { Observable, of } from 'rxjs';
18
+ import { catchError, shareReplay, switchMap } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ export class GioPrismJsService {
21
+ loadPrismJs() {
22
+ // First load PrismJs
23
+ return this.loadPrimeJsCore().pipe(
24
+ // Then load PrismJs components
25
+ switchMap(() => this.loadPrismJsComponent('json')),
26
+ // If already loaded, we don't want to load it again
27
+ shareReplay(1),
28
+ // Ignore error
29
+ catchError(() => of(undefined)));
30
+ }
31
+ loadPrimeJsCore() {
32
+ return new Observable(observer => {
33
+ const onGotPrismJs = () => {
34
+ observer.next();
35
+ observer.complete();
36
+ };
37
+ if (!window.Prism) {
38
+ const loaderPrismjs = document.createElement('script');
39
+ loaderPrismjs.type = 'text/javascript';
40
+ loaderPrismjs.src = 'assets/prismjs/prism.js';
41
+ loaderPrismjs.addEventListener('load', onGotPrismJs);
42
+ loaderPrismjs.addEventListener('error', err => observer.error(err));
43
+ document.body.appendChild(loaderPrismjs);
44
+ }
45
+ else {
46
+ onGotPrismJs();
47
+ }
48
+ });
49
+ }
50
+ loadPrismJsComponent(name) {
51
+ return new Observable(observer => {
52
+ const onGotPrismJsComponent = () => {
53
+ observer.next();
54
+ observer.complete();
55
+ };
56
+ if (!window.Prism.languages[name]) {
57
+ const loaderPrismjsJson = document.createElement('script');
58
+ loaderPrismjsJson.type = 'text/javascript';
59
+ loaderPrismjsJson.src = `assets/prismjs/components/prism-${name}.js`;
60
+ loaderPrismjsJson.addEventListener('load', onGotPrismJsComponent);
61
+ loaderPrismjsJson.addEventListener('error', err => observer.error(err));
62
+ document.body.appendChild(loaderPrismjsJson);
63
+ }
64
+ else {
65
+ onGotPrismJsComponent();
66
+ }
67
+ });
68
+ }
69
+ }
70
+ GioPrismJsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPrismJsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
71
+ GioPrismJsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPrismJsService, providedIn: 'root' });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPrismJsService, decorators: [{
73
+ type: Injectable,
74
+ args: [{
75
+ providedIn: 'root',
76
+ }]
77
+ }] });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXByaXNtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLXByaXNtanMvZ2lvLXByaXNtanMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXBFLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsV0FBVztRQUNoQixxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSTtRQUNoQywrQkFBK0I7UUFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRCxvREFBb0Q7UUFDcEQsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNkLGVBQWU7UUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksVUFBVSxDQUFPLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtnQkFDeEIsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZELGFBQWEsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ3ZDLGFBQWEsQ0FBQyxHQUFHLEdBQUcseUJBQXlCLENBQUM7Z0JBQzlDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ3JELGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzFDO2lCQUFNO2dCQUNMLFlBQVksRUFBRSxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBWTtRQUN2QyxPQUFPLElBQUksVUFBVSxDQUFPLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFO2dCQUNqQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUM7WUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0QsaUJBQWlCLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO2dCQUMzQyxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsbUNBQW1DLElBQUksS0FBSyxDQUFDO2dCQUNyRSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsQ0FBQztnQkFDbEUsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4RSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzlDO2lCQUFNO2dCQUNMLHFCQUFxQixFQUFFLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQW5EVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBQcmlzbTogYW55IHwgdW5kZWZpbmVkO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9QcmlzbUpzU2VydmljZSB7XG4gIHB1YmxpYyBsb2FkUHJpc21KcygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBGaXJzdCBsb2FkIFByaXNtSnNcbiAgICByZXR1cm4gdGhpcy5sb2FkUHJpbWVKc0NvcmUoKS5waXBlKFxuICAgICAgLy8gVGhlbiBsb2FkIFByaXNtSnMgY29tcG9uZW50c1xuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZFByaXNtSnNDb21wb25lbnQoJ2pzb24nKSksXG4gICAgICAvLyBJZiBhbHJlYWR5IGxvYWRlZCwgd2UgZG9uJ3Qgd2FudCB0byBsb2FkIGl0IGFnYWluXG4gICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgIC8vIElnbm9yZSBlcnJvclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih1bmRlZmluZWQpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJpbWVKc0NvcmUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHZvaWQ+KG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IG9uR290UHJpc21KcyA9ICgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfTtcblxuICAgICAgaWYgKCF3aW5kb3cuUHJpc20pIHtcbiAgICAgICAgY29uc3QgbG9hZGVyUHJpc21qcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBsb2FkZXJQcmlzbWpzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgbG9hZGVyUHJpc21qcy5zcmMgPSAnYXNzZXRzL3ByaXNtanMvcHJpc20uanMnO1xuICAgICAgICBsb2FkZXJQcmlzbWpzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdFByaXNtSnMpO1xuICAgICAgICBsb2FkZXJQcmlzbWpzLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyID0+IG9ic2VydmVyLmVycm9yKGVycikpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvYWRlclByaXNtanMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25Hb3RQcmlzbUpzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQcmlzbUpzQ29tcG9uZW50KG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPihvYnNlcnZlciA9PiB7XG4gICAgICBjb25zdCBvbkdvdFByaXNtSnNDb21wb25lbnQgPSAoKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH07XG5cbiAgICAgIGlmICghd2luZG93LlByaXNtLmxhbmd1YWdlc1tuYW1lXSkge1xuICAgICAgICBjb25zdCBsb2FkZXJQcmlzbWpzSnNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBsb2FkZXJQcmlzbWpzSnNvbi50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgIGxvYWRlclByaXNtanNKc29uLnNyYyA9IGBhc3NldHMvcHJpc21qcy9jb21wb25lbnRzL3ByaXNtLSR7bmFtZX0uanNgO1xuICAgICAgICBsb2FkZXJQcmlzbWpzSnNvbi5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Hb3RQcmlzbUpzQ29tcG9uZW50KTtcbiAgICAgICAgbG9hZGVyUHJpc21qc0pzb24uYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnIgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyKSk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyUHJpc21qc0pzb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25Hb3RQcmlzbUpzQ29tcG9uZW50KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==