@gravitee/ui-components 3.24.3-migrate-codemirror-f56ff96 → 3.24.4
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.
- package/assets/css/codemirror/all.css +476 -0
- package/package.json +2 -17
- package/src/atoms/gv-autocomplete.js +132 -156
- package/src/atoms/gv-button.js +73 -256
- package/src/atoms/gv-checkbox.js +45 -103
- package/src/atoms/gv-date-picker-calendar.js +312 -393
- package/src/atoms/gv-date-picker-cell.js +57 -81
- package/src/atoms/gv-date-picker.js +180 -319
- package/src/atoms/gv-file-upload.js +85 -195
- package/src/atoms/gv-icon.js +13 -34
- package/src/atoms/gv-image.js +31 -66
- package/src/atoms/gv-input-message.js +12 -37
- package/src/atoms/gv-input.js +120 -144
- package/src/atoms/gv-link.js +47 -125
- package/src/atoms/gv-message.js +18 -69
- package/src/atoms/gv-metric.js +19 -68
- package/src/atoms/gv-relative-time.js +67 -38
- package/src/atoms/gv-select-native.js +96 -215
- package/src/atoms/gv-select.js +110 -230
- package/src/atoms/gv-spinner.js +5 -26
- package/src/atoms/gv-state.js +25 -66
- package/src/atoms/gv-switch.js +40 -160
- package/src/atoms/gv-tag.js +26 -78
- package/src/atoms/gv-text.js +22 -83
- package/src/charts/gv-chart-bar.js +22 -18
- package/src/charts/gv-chart-gauge.js +28 -31
- package/src/charts/gv-chart-histogram.js +18 -10
- package/src/charts/gv-chart-line.js +70 -59
- package/src/charts/gv-chart-map.js +44 -42
- package/src/charts/gv-chart-pie.js +18 -14
- package/src/index.js +2 -0
- package/src/lib/cron-expression.js +40 -35
- package/src/lib/date.js +10 -1
- package/src/lib/events.js +3 -1
- package/src/lib/http-client-schema-form.js +13 -12
- package/src/lib/http.js +57 -56
- package/src/lib/i18n.js +30 -22
- package/src/lib/item.js +13 -12
- package/src/lib/properties.js +77 -42
- package/src/lib/schema-form.js +4 -5
- package/src/lib/studio.js +13 -60
- package/src/lib/style.js +8 -8
- package/src/lib/text-format.js +14 -7
- package/src/lib/theme.js +8 -5
- package/src/lib/utils.js +17 -18
- package/src/mixins/chart-element.js +31 -54
- package/src/mixins/input-element.js +59 -44
- package/src/mixins/item-resource.js +34 -32
- package/src/mixins/keyboard-element.js +6 -5
- package/src/mixins/update-after-browser.js +4 -1
- package/src/mixins/with-resize-observer.js +23 -13
- package/src/mixins/with-skeleton-attribute.js +54 -48
- package/src/molecules/gv-card-full.js +26 -147
- package/src/molecules/gv-card-list.js +13 -42
- package/src/molecules/gv-card.js +17 -91
- package/src/molecules/gv-category-list.js +6 -17
- package/src/molecules/gv-category.js +23 -103
- package/src/molecules/gv-code-hint.js +49 -0
- package/src/molecules/gv-code.js +185 -392
- package/src/molecules/gv-confirm.js +41 -71
- package/src/molecules/gv-cron-editor.js +143 -389
- package/src/molecules/gv-dropdown-menu.js +14 -46
- package/src/molecules/gv-expandable.js +31 -59
- package/src/molecules/gv-expression-language.js +591 -7
- package/src/molecules/gv-identity-picture.js +42 -65
- package/src/molecules/gv-list.js +42 -134
- package/src/molecules/gv-metrics.js +37 -49
- package/src/molecules/gv-modal.js +28 -95
- package/src/molecules/gv-nav.js +49 -75
- package/src/molecules/gv-option.js +57 -130
- package/src/molecules/gv-plans.js +86 -209
- package/src/molecules/gv-popover.js +57 -177
- package/src/molecules/gv-promote.js +28 -146
- package/src/molecules/gv-rating-list.js +69 -195
- package/src/molecules/gv-rating.js +52 -105
- package/src/molecules/gv-row-expandable.js +5 -11
- package/src/molecules/gv-row.js +21 -147
- package/src/molecules/gv-stats.js +23 -48
- package/src/molecules/gv-stepper.js +43 -187
- package/src/molecules/gv-table.js +199 -309
- package/src/molecules/gv-tree.js +33 -156
- package/src/organisms/gv-documentation.js +44 -127
- package/src/organisms/gv-header.js +37 -195
- package/src/organisms/gv-http-client.js +32 -168
- package/src/organisms/gv-menu.js +37 -158
- package/src/organisms/gv-newsletter-subscription.js +48 -189
- package/src/organisms/gv-pagination.js +49 -77
- package/src/organisms/gv-properties.js +271 -492
- package/src/organisms/gv-resizable-views.js +41 -259
- package/src/organisms/gv-resources.js +168 -275
- package/src/organisms/gv-schema-form-array.js +49 -159
- package/src/organisms/gv-schema-form-control-object.js +59 -73
- package/src/organisms/gv-schema-form-control.js +107 -134
- package/src/organisms/gv-schema-form.js +195 -280
- package/src/organisms/gv-tabs.js +66 -98
- package/src/organisms/gv-user-menu.js +36 -201
- package/src/organisms/gv-vertical-menu.js +20 -61
- package/src/policy-studio/gv-flow-step.js +105 -245
- package/src/policy-studio/gv-flow.js +125 -304
- package/src/policy-studio/gv-policy-studio-menu.js +157 -471
- package/src/policy-studio/gv-policy-studio.js +688 -761
- package/src/styles/empty.js +3 -20
- package/src/styles/input.js +3 -245
- package/src/styles/link.js +3 -16
- package/src/styles/shapes.js +1 -0
- package/src/styles/skeleton.js +3 -37
- package/src/styles/zoom.js +3 -24
- package/src/theme/gv-theme.js +21 -60
- package/wc/gv-code-hint.js +1 -0
- package/CHANGELOG.md +0 -1244
- package/LICENSE.txt +0 -202
- package/README.md +0 -195
- package/src/.eslintrc.js +0 -19
- package/src/theme/definition.json +0 -1762
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
import { LitElement, html, css } from 'lit';
|
|
17
17
|
import '../atoms/gv-icon';
|
|
18
18
|
import { dispatchCustomEvent } from '../lib/events';
|
|
19
|
-
|
|
20
19
|
/**
|
|
21
20
|
* A modal that shows up on top of your page
|
|
22
21
|
*
|
|
@@ -38,28 +37,43 @@ import { dispatchCustomEvent } from '../lib/events';
|
|
|
38
37
|
* @cssprop {Length} [--gv-modal--p=1em] - Modal content padding
|
|
39
38
|
* @cssprop {Length} [--gv-modal-close-icon--s=24px] - Modal close icon size
|
|
40
39
|
*/
|
|
40
|
+
|
|
41
41
|
export class GvModal extends LitElement {
|
|
42
42
|
static get properties() {
|
|
43
43
|
return {
|
|
44
|
-
_toChange: {
|
|
44
|
+
_toChange: {
|
|
45
|
+
type: Boolean
|
|
46
|
+
},
|
|
47
|
+
|
|
45
48
|
/**
|
|
46
49
|
* If true the modal box is in opened status.
|
|
47
50
|
*/
|
|
48
|
-
opened: {
|
|
51
|
+
opened: {
|
|
52
|
+
type: Boolean
|
|
53
|
+
},
|
|
54
|
+
|
|
49
55
|
/**
|
|
50
56
|
* If true the modal box displays a close icon
|
|
51
57
|
*/
|
|
52
|
-
showCloseIcon: {
|
|
58
|
+
showCloseIcon: {
|
|
59
|
+
type: Boolean
|
|
60
|
+
},
|
|
61
|
+
|
|
53
62
|
/**
|
|
54
63
|
* The title of the modal dialog
|
|
55
64
|
*/
|
|
56
65
|
// ⚠️ it cannot be simply named `title` otherwise the browser consider it
|
|
57
66
|
// as a `title` property and use it to display a tooltip
|
|
58
|
-
modalTitle: {
|
|
67
|
+
modalTitle: {
|
|
68
|
+
type: String
|
|
69
|
+
},
|
|
70
|
+
|
|
59
71
|
/**
|
|
60
72
|
* If true the modal box blocks the screen. That is, when you click in the background layer, the modal box do not close.
|
|
61
73
|
*/
|
|
62
|
-
blocking: {
|
|
74
|
+
blocking: {
|
|
75
|
+
type: Boolean
|
|
76
|
+
}
|
|
63
77
|
};
|
|
64
78
|
}
|
|
65
79
|
|
|
@@ -72,110 +86,27 @@ export class GvModal extends LitElement {
|
|
|
72
86
|
}
|
|
73
87
|
|
|
74
88
|
static get styles() {
|
|
75
|
-
return [
|
|
76
|
-
|
|
77
|
-
css`
|
|
78
|
-
* {
|
|
79
|
-
box-sizing: border-box;
|
|
80
|
-
}
|
|
81
|
-
:host {
|
|
82
|
-
display: block;
|
|
83
|
-
}
|
|
84
|
-
section {
|
|
85
|
-
position: fixed;
|
|
86
|
-
left: 0;
|
|
87
|
-
top: 0;
|
|
88
|
-
height: 100vh;
|
|
89
|
-
width: 100vw;
|
|
90
|
-
display: none;
|
|
91
|
-
transition: opacity var(--gv-modal--anim-duration, 0.3s) ease-in;
|
|
92
|
-
-webkit-transition: opacity var(--gv-modal--anim-duration, 0.3s) ease-in;
|
|
93
|
-
align-items: center;
|
|
94
|
-
justify-content: center;
|
|
95
|
-
z-index: var(--gv-modal--z, 100);
|
|
96
|
-
background-color: var(--gv-modal--bgc, rgba(30, 30, 30, 0.6));
|
|
97
|
-
}
|
|
98
|
-
.content {
|
|
99
|
-
display: block;
|
|
100
|
-
position: relative;
|
|
101
|
-
z-index: var(--gv-modal-content--z, 101);
|
|
102
|
-
width: var(--gv-modal--w, 280px);
|
|
103
|
-
min-width: var(--gv-modal--miw, 250px);
|
|
104
|
-
max-width: var(--gv-modal--maw, 100vw);
|
|
105
|
-
height: var(--gv-modal--h, auto);
|
|
106
|
-
min-height: var(--gv-modal--mih, auto);
|
|
107
|
-
max-height: var(--gv-modal--mah, 100vh);
|
|
108
|
-
background-color: var(--gv-modal-content--bgc, var(--gv-theme-neutral-color-light, #efefef));
|
|
109
|
-
box-shadow: var(--gv-modal--bxsh, 0px 0px 16px #383e3f);
|
|
110
|
-
border-radius: var(--gv-modal--bdrs, 4px);
|
|
111
|
-
padding: var(--gv-modal--p, 1em);
|
|
112
|
-
}
|
|
113
|
-
article {
|
|
114
|
-
overflow: auto;
|
|
115
|
-
max-height: 100%;
|
|
116
|
-
height: 100%;
|
|
117
|
-
}
|
|
118
|
-
.transparent {
|
|
119
|
-
opacity: 0;
|
|
120
|
-
}
|
|
121
|
-
.opaque {
|
|
122
|
-
opacity: 1;
|
|
123
|
-
display: flex !important;
|
|
124
|
-
}
|
|
125
|
-
.opened {
|
|
126
|
-
display: flex !important;
|
|
127
|
-
}
|
|
128
|
-
.header {
|
|
129
|
-
display: flex;
|
|
130
|
-
flex-direction: row;
|
|
131
|
-
justify-content: space-between;
|
|
132
|
-
align-items: center;
|
|
133
|
-
padding-bottom: 10px;
|
|
134
|
-
}
|
|
135
|
-
.title {
|
|
136
|
-
font-weight: bold;
|
|
137
|
-
font-size: large;
|
|
138
|
-
}
|
|
139
|
-
gv-icon {
|
|
140
|
-
--gv-icon--s: var(--gv-modal-close-icon--s, 24px);
|
|
141
|
-
display: inline-block;
|
|
142
|
-
z-index: 1002;
|
|
143
|
-
cursor: pointer;
|
|
144
|
-
}
|
|
145
|
-
`,
|
|
146
|
-
];
|
|
89
|
+
return [// language=css
|
|
90
|
+
css`*{box-sizing:border-box}:host{display:block}section{position:fixed;left:0;top:0;height:100vh;width:100vw;display:none;transition:opacity var(--gv-modal--anim-duration,.3s) ease-in;-webkit-transition:opacity var(--gv-modal--anim-duration,.3s) ease-in;align-items:center;justify-content:center;z-index:var(--gv-modal--z,100);background-color:var(--gv-modal--bgc,rgba(30,30,30,.6))}.content{display:block;position:relative;z-index:var(--gv-modal-content--z,101);width:var(--gv-modal--w,280px);min-width:var(--gv-modal--miw,250px);max-width:var(--gv-modal--maw,100vw);height:var(--gv-modal--h,auto);min-height:var(--gv-modal--mih,auto);max-height:var(--gv-modal--mah,100vh);background-color:var(--gv-modal-content--bgc,var(--gv-theme-neutral-color-light,#efefef));box-shadow:var(--gv-modal--bxsh,0 0 16px #383e3f);border-radius:var(--gv-modal--bdrs,4px);padding:var(--gv-modal--p,1em)}article{overflow:auto;max-height:100%;height:100%}.transparent{opacity:0}.opaque{opacity:1;display:flex!important}.opened{display:flex!important}.header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-bottom:10px}.title{font-weight:700;font-size:large}gv-icon{--gv-icon--s:var(--gv-modal-close-icon--s, 24px);display:inline-block;z-index:1002;cursor:pointer}`];
|
|
147
91
|
}
|
|
148
92
|
|
|
149
93
|
render() {
|
|
150
|
-
return html`
|
|
151
|
-
<section
|
|
152
|
-
class="${this.getModalClass(this.opened, this._toChange)}"
|
|
153
|
-
@click="${this._backgroundModalClick}"
|
|
154
|
-
@transitionend="${this.animationEnd}"
|
|
155
|
-
>
|
|
156
|
-
<div class="content" @click="${this.contentClick}">
|
|
157
|
-
<div class="header">
|
|
158
|
-
<span class="title">${this.modalTitle}</span>
|
|
159
|
-
${this.showCloseIcon ? html`<gv-icon shape="general:close" @click="${this.close}"></gv-icon>` : ''}
|
|
160
|
-
</div>
|
|
161
|
-
<article>
|
|
162
|
-
<slot></slot>
|
|
163
|
-
</article>
|
|
164
|
-
</div>
|
|
165
|
-
</section>
|
|
166
|
-
`;
|
|
94
|
+
return html` <section class="${this.getModalClass(this.opened, this._toChange)}" @click="${this._backgroundModalClick}" @transitionend="${this.animationEnd}"> <div class="content" @click="${this.contentClick}"> <div class="header"> <span class="title">${this.modalTitle}</span> ${this.showCloseIcon ? html`<gv-icon shape="general:close" @click="${this.close}"></gv-icon>` : ''} </div> <article> <slot></slot> </article> </div> </section> `;
|
|
167
95
|
}
|
|
168
96
|
|
|
169
97
|
getModalClass(opened, _toChange) {
|
|
170
98
|
if (!opened && !_toChange) {
|
|
171
99
|
return 'transparent';
|
|
172
100
|
}
|
|
101
|
+
|
|
173
102
|
if (opened && _toChange) {
|
|
174
103
|
return 'transparent opened';
|
|
175
104
|
}
|
|
105
|
+
|
|
176
106
|
if (opened && !_toChange) {
|
|
177
107
|
return 'opaque';
|
|
178
108
|
}
|
|
109
|
+
|
|
179
110
|
if (!opened && _toChange) {
|
|
180
111
|
return 'transparent opened';
|
|
181
112
|
}
|
|
@@ -209,5 +140,7 @@ export class GvModal extends LitElement {
|
|
|
209
140
|
contentClick(e) {
|
|
210
141
|
e.stopPropagation();
|
|
211
142
|
}
|
|
143
|
+
|
|
212
144
|
}
|
|
213
145
|
window.customElements.define('gv-modal', GvModal);
|
|
146
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1tb2RhbC5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJHdk1vZGFsIiwicHJvcGVydGllcyIsIl90b0NoYW5nZSIsInR5cGUiLCJCb29sZWFuIiwib3BlbmVkIiwic2hvd0Nsb3NlSWNvbiIsIm1vZGFsVGl0bGUiLCJTdHJpbmciLCJibG9ja2luZyIsImNvbnN0cnVjdG9yIiwic3R5bGVzIiwicmVuZGVyIiwiZ2V0TW9kYWxDbGFzcyIsIl9iYWNrZ3JvdW5kTW9kYWxDbGljayIsImFuaW1hdGlvbkVuZCIsImNvbnRlbnRDbGljayIsImNsb3NlIiwib3BlbiIsInNldFRpbWVvdXQiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFVBQVQsRUFBcUJDLElBQXJCLEVBQTJCQyxHQUEzQixRQUFzQyxLQUF0QztBQUNBLE9BQU8sa0JBQVA7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE9BQU4sU0FBc0JKLFVBQXRCLENBQWlDO0FBQ2pCLGFBQVZLLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0xDLE1BQUFBLFNBQVMsRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FETjs7QUFFTDtBQUNOO0FBQ0E7QUFDTUMsTUFBQUEsTUFBTSxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUxIOztBQU1MO0FBQ047QUFDQTtBQUNNRSxNQUFBQSxhQUFhLEVBQUU7QUFBRUgsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BVFY7O0FBVUw7QUFDTjtBQUNBO0FBQ007QUFDQTtBQUNBRyxNQUFBQSxVQUFVLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFSztBQUFSLE9BZlA7O0FBZ0JMO0FBQ047QUFDQTtBQUNNQyxNQUFBQSxRQUFRLEVBQUU7QUFBRU4sUUFBQUEsSUFBSSxFQUFFQztBQUFSO0FBbkJMLEtBQVA7QUFxQkQ7O0FBRURNLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0EsU0FBS1IsU0FBTCxHQUFpQixLQUFqQjtBQUNBLFNBQUtHLE1BQUwsR0FBYyxLQUFkO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixLQUFyQjtBQUNBLFNBQUtHLFFBQUwsR0FBZ0IsS0FBaEI7QUFDRDs7QUFFZ0IsYUFBTkUsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTDtBQUNBYixJQUFBQSxHQUFHLGt3Q0FGRSxDQUFQO0FBd0VEOztBQUVEYyxFQUFBQSxNQUFNLEdBQUc7QUFDUCxXQUFPZixJQUFJLG9CQUVFLEtBQUtnQixhQUFMLENBQW1CLEtBQUtSLE1BQXhCLEVBQWdDLEtBQUtILFNBQXJDLENBRkYsYUFHRyxLQUFLWSxxQkFIUixxQkFJVyxLQUFLQyxZQUpoQixtQ0FNd0IsS0FBS0MsWUFON0IsK0NBUW1CLEtBQUtULFVBUnhCLFdBU0QsS0FBS0QsYUFBTCxHQUFxQlQsSUFBSSwwQ0FBMEMsS0FBS29CLEtBQS9DLGNBQXpCLEdBQThGLEVBVDdGLCtEQUFYO0FBaUJEOztBQUVESixFQUFBQSxhQUFhLENBQUNSLE1BQUQsRUFBU0gsU0FBVCxFQUFvQjtBQUMvQixRQUFJLENBQUNHLE1BQUQsSUFBVyxDQUFDSCxTQUFoQixFQUEyQjtBQUN6QixhQUFPLGFBQVA7QUFDRDs7QUFDRCxRQUFJRyxNQUFNLElBQUlILFNBQWQsRUFBeUI7QUFDdkIsYUFBTyxvQkFBUDtBQUNEOztBQUNELFFBQUlHLE1BQU0sSUFBSSxDQUFDSCxTQUFmLEVBQTBCO0FBQ3hCLGFBQU8sUUFBUDtBQUNEOztBQUNELFFBQUksQ0FBQ0csTUFBRCxJQUFXSCxTQUFmLEVBQTBCO0FBQ3hCLGFBQU8sb0JBQVA7QUFDRDtBQUNGOztBQUVEZ0IsRUFBQUEsSUFBSSxHQUFHO0FBQ0wsU0FBS2IsTUFBTCxHQUFjLElBQWQ7QUFDQSxTQUFLSCxTQUFMLEdBQWlCLElBQWpCO0FBQ0FpQixJQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmLFdBQUtqQixTQUFMLEdBQWlCLEtBQWpCO0FBQ0QsS0FGUyxFQUVQLEVBRk8sQ0FBVjtBQUdEOztBQUVEWSxFQUFBQSxxQkFBcUIsQ0FBQ00sQ0FBRCxFQUFJO0FBQ3ZCLFFBQUksQ0FBQyxLQUFLWCxRQUFWLEVBQW9CO0FBQ2xCLFdBQUtRLEtBQUw7QUFDQWxCLE1BQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxRQUFQLENBQW5CO0FBQ0Q7QUFDRjs7QUFFRGtCLEVBQUFBLEtBQUssR0FBRztBQUNOLFNBQUtaLE1BQUwsR0FBYyxLQUFkO0FBQ0EsU0FBS0gsU0FBTCxHQUFpQixJQUFqQjtBQUNBSCxJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxDQUFuQjtBQUNEOztBQUVEZ0IsRUFBQUEsWUFBWSxHQUFHO0FBQ2IsU0FBS2IsU0FBTCxHQUFpQixLQUFqQjtBQUNEOztBQUVEYyxFQUFBQSxZQUFZLENBQUNJLENBQUQsRUFBSTtBQUNkQSxJQUFBQSxDQUFDLENBQUNDLGVBQUY7QUFDRDs7QUExS3FDO0FBNEt4Q0MsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixVQUE3QixFQUF5Q3hCLE9BQXpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWljb24nO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuXG4vKipcbiAqIEEgbW9kYWwgdGhhdCBzaG93cyB1cCBvbiB0b3Agb2YgeW91ciBwYWdlXG4gKlxuICogQGZpcmVzIGd2LW1vZGFsOmNsb3NlZCAtIEV2ZW50IGZpcmVkIHdoZW4gbW9kYWwgaXMgY2xvc2VkLlxuICpcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LW1vZGFsLS1hbmltLWR1cmF0aW9uPTAuM3NdIC0gRHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvblxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtbW9kYWwtLXo9MTAwXSAtIHotaW5kZXggZm9yIG1vZGFsXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LW1vZGFsLS1iZ2M9cmdiYSgzMCwgMzAsIDMwLCAwLjYpXSAtIE1vZGFsIGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LW1vZGFsLWNvbnRlbnQtLXo9MTAxXSAtIHotaW5kZXggZm9yIG1vZGFsIGNvbnRlbnRcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LW1vZGFsLS13PTI4MHB4XSAtIG1vZGVsIHdpZHRoXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1tb2RhbC0tbWl3PTI1MHB4XSAtIG1vZGFsIG1pbi13aWR0aFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtbW9kYWwtLW1hdz0xMDB2d10gLSBtb2RhbCBtYXgtd2lkdGhcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LW1vZGFsLS1oPWF1dG9dIC0gbW9kYWwgaGVpZ2h0XG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1tb2RhbC0tbWloPWF1dG9dIC0gbW9kYWwgbWluIGhlaWdodFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtbW9kYWwtLW1haD0xMDB2aF0gLSBtb2RhbCBtYXggaGVpZ2h0XG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LW1vZGFsLWNvbnRlbnQtLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0LCAjZWZlZmVmKV0gLSBNb2RhbCBjb250ZW50IGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LW1vZGFsLS1ieHNoPTBweCAwcHggMTZweCAjMzgzZTNmXSAtIE1vZGFsIGJveCBzaGFkb3dcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LW1vZGFsLS1iZHJzPTRweF0gLSBNb2RhbCBib3JkZXIgcmFkaXVzXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1tb2RhbC0tcD0xZW1dIC0gTW9kYWwgY29udGVudCBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1tb2RhbC1jbG9zZS1pY29uLS1zPTI0cHhdIC0gTW9kYWwgY2xvc2UgaWNvbiBzaXplXG4gKi9cbmV4cG9ydCBjbGFzcyBHdk1vZGFsIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX3RvQ2hhbmdlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIC8qKlxuICAgICAgICogSWYgdHJ1ZSB0aGUgbW9kYWwgYm94IGlzIGluIG9wZW5lZCBzdGF0dXMuXG4gICAgICAgKi9cbiAgICAgIG9wZW5lZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICAvKipcbiAgICAgICAqIElmIHRydWUgdGhlIG1vZGFsIGJveCBkaXNwbGF5cyBhIGNsb3NlIGljb25cbiAgICAgICAqL1xuICAgICAgc2hvd0Nsb3NlSWNvbjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICAvKipcbiAgICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgbW9kYWwgZGlhbG9nXG4gICAgICAgKi9cbiAgICAgIC8vIOKaoO+4jyBpdCBjYW5ub3QgYmUgc2ltcGx5IG5hbWVkIGB0aXRsZWAgb3RoZXJ3aXNlIHRoZSBicm93c2VyIGNvbnNpZGVyIGl0XG4gICAgICAvLyBhcyBhIGB0aXRsZWAgcHJvcGVydHkgYW5kIHVzZSBpdCB0byBkaXNwbGF5IGEgdG9vbHRpcFxuICAgICAgbW9kYWxUaXRsZTogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIC8qKlxuICAgICAgICogSWYgdHJ1ZSB0aGUgbW9kYWwgYm94IGJsb2NrcyB0aGUgc2NyZWVuLiBUaGF0IGlzLCB3aGVuIHlvdSBjbGljayBpbiB0aGUgYmFja2dyb3VuZCBsYXllciwgdGhlIG1vZGFsIGJveCBkbyBub3QgY2xvc2UuXG4gICAgICAgKi9cbiAgICAgIGJsb2NraW5nOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl90b0NoYW5nZSA9IGZhbHNlO1xuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93Q2xvc2VJY29uID0gZmFsc2U7XG4gICAgdGhpcy5ibG9ja2luZyA9IGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPWNzc1xuICAgICAgY3NzYFxuICAgICAgICAqIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBzZWN0aW9uIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWd2LW1vZGFsLS1hbmltLWR1cmF0aW9uLCAwLjNzKSBlYXNlLWluO1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1ndi1tb2RhbC0tYW5pbS1kdXJhdGlvbiwgMC4zcykgZWFzZS1pbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHotaW5kZXg6IHZhcigtLWd2LW1vZGFsLS16LCAxMDApO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LW1vZGFsLS1iZ2MsIHJnYmEoMzAsIDMwLCAzMCwgMC42KSk7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB6LWluZGV4OiB2YXIoLS1ndi1tb2RhbC1jb250ZW50LS16LCAxMDEpO1xuICAgICAgICAgIHdpZHRoOiB2YXIoLS1ndi1tb2RhbC0tdywgMjgwcHgpO1xuICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tZ3YtbW9kYWwtLW1pdywgMjUwcHgpO1xuICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tZ3YtbW9kYWwtLW1hdywgMTAwdncpO1xuICAgICAgICAgIGhlaWdodDogdmFyKC0tZ3YtbW9kYWwtLWgsIGF1dG8pO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWd2LW1vZGFsLS1taWgsIGF1dG8pO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLWd2LW1vZGFsLS1tYWgsIDEwMHZoKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1tb2RhbC1jb250ZW50LS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHQsICNlZmVmZWYpKTtcbiAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1ndi1tb2RhbC0tYnhzaCwgMHB4IDBweCAxNnB4ICMzODNlM2YpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWd2LW1vZGFsLS1iZHJzLCA0cHgpO1xuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWd2LW1vZGFsLS1wLCAxZW0pO1xuICAgICAgICB9XG4gICAgICAgIGFydGljbGUge1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC50cmFuc3BhcmVudCB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgICAub3BhcXVlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAub3BlbmVkIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgZm9udC1zaXplOiBsYXJnZTtcbiAgICAgICAgfVxuICAgICAgICBndi1pY29uIHtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IHZhcigtLWd2LW1vZGFsLWNsb3NlLWljb24tLXMsIDI0cHgpO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB6LWluZGV4OiAxMDAyO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNlY3Rpb25cbiAgICAgICAgY2xhc3M9XCIke3RoaXMuZ2V0TW9kYWxDbGFzcyh0aGlzLm9wZW5lZCwgdGhpcy5fdG9DaGFuZ2UpfVwiXG4gICAgICAgIEBjbGljaz1cIiR7dGhpcy5fYmFja2dyb3VuZE1vZGFsQ2xpY2t9XCJcbiAgICAgICAgQHRyYW5zaXRpb25lbmQ9XCIke3RoaXMuYW5pbWF0aW9uRW5kfVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgQGNsaWNrPVwiJHt0aGlzLmNvbnRlbnRDbGlja31cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+JHt0aGlzLm1vZGFsVGl0bGV9PC9zcGFuPlxuICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUljb24gPyBodG1sYDxndi1pY29uIHNoYXBlPVwiZ2VuZXJhbDpjbG9zZVwiIEBjbGljaz1cIiR7dGhpcy5jbG9zZX1cIj48L2d2LWljb24+YCA6ICcnfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgYDtcbiAgfVxuXG4gIGdldE1vZGFsQ2xhc3Mob3BlbmVkLCBfdG9DaGFuZ2UpIHtcbiAgICBpZiAoIW9wZW5lZCAmJiAhX3RvQ2hhbmdlKSB7XG4gICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcbiAgICB9XG4gICAgaWYgKG9wZW5lZCAmJiBfdG9DaGFuZ2UpIHtcbiAgICAgIHJldHVybiAndHJhbnNwYXJlbnQgb3BlbmVkJztcbiAgICB9XG4gICAgaWYgKG9wZW5lZCAmJiAhX3RvQ2hhbmdlKSB7XG4gICAgICByZXR1cm4gJ29wYXF1ZSc7XG4gICAgfVxuICAgIGlmICghb3BlbmVkICYmIF90b0NoYW5nZSkge1xuICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCBvcGVuZWQnO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xuICAgIHRoaXMuX3RvQ2hhbmdlID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3RvQ2hhbmdlID0gZmFsc2U7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgX2JhY2tncm91bmRNb2RhbENsaWNrKGUpIHtcbiAgICBpZiAoIXRoaXMuYmxvY2tpbmcpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2Nsb3NlZCcpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgdGhpcy5fdG9DaGFuZ2UgPSB0cnVlO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2Nsb3NlZCcpO1xuICB9XG5cbiAgYW5pbWF0aW9uRW5kKCkge1xuICAgIHRoaXMuX3RvQ2hhbmdlID0gZmFsc2U7XG4gIH1cblxuICBjb250ZW50Q2xpY2soZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LW1vZGFsJywgR3ZNb2RhbCk7XG4iXX0=
|
package/src/molecules/gv-nav.js
CHANGED
|
@@ -20,7 +20,6 @@ import { until } from 'lit/directives/until';
|
|
|
20
20
|
import { isSameRoutes } from '../lib/utils';
|
|
21
21
|
import { dispatchCustomEvent } from '../lib/events';
|
|
22
22
|
import { classMap } from 'lit/directives/class-map';
|
|
23
|
-
|
|
24
23
|
/**
|
|
25
24
|
* A main nav
|
|
26
25
|
*
|
|
@@ -31,65 +30,52 @@ import { classMap } from 'lit/directives/class-map';
|
|
|
31
30
|
*
|
|
32
31
|
* @attr {Array<{active: Boolean, icon: String, path: String, title: Promise<String>, target: String}>} routes - definition of routes
|
|
33
32
|
*/
|
|
33
|
+
|
|
34
34
|
export class GvNav extends LitElement {
|
|
35
35
|
static get properties() {
|
|
36
36
|
return {
|
|
37
|
-
routes: {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
routes: {
|
|
38
|
+
type: Array
|
|
39
|
+
},
|
|
40
|
+
_routes: {
|
|
41
|
+
type: Array
|
|
42
|
+
},
|
|
43
|
+
small: {
|
|
44
|
+
type: Boolean
|
|
45
|
+
},
|
|
46
|
+
_compact: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
attribute: false
|
|
49
|
+
},
|
|
50
|
+
vertical: {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
reflect: true
|
|
53
|
+
}
|
|
42
54
|
};
|
|
43
55
|
}
|
|
44
56
|
|
|
45
57
|
static get styles() {
|
|
46
|
-
return [
|
|
47
|
-
|
|
48
|
-
css`
|
|
49
|
-
nav {
|
|
50
|
-
position: relative;
|
|
51
|
-
transition: all 150ms ease-in-out;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
gv-link {
|
|
55
|
-
--gv-link--ta: end;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.vertical {
|
|
59
|
-
display: flex;
|
|
60
|
-
flex-direction: column;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.vertical gv-link {
|
|
64
|
-
width: 100%;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.compact {
|
|
68
|
-
--gv-link-a--ph: 10px;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
#shadowLink {
|
|
72
|
-
position: absolute;
|
|
73
|
-
display: inline-flex;
|
|
74
|
-
opacity: 0.5;
|
|
75
|
-
top: 0;
|
|
76
|
-
left: 0;
|
|
77
|
-
transition: transform 250ms ease-in-out, width 250ms;
|
|
78
|
-
}
|
|
79
|
-
`,
|
|
80
|
-
];
|
|
58
|
+
return [// language=CSS
|
|
59
|
+
css`nav{position:relative;transition:all 150ms ease-in-out}gv-link{--gv-link--ta:end}.vertical{display:flex;flex-direction:column}.vertical gv-link{width:100%}.compact{--gv-link-a--ph:10px}#shadowLink{position:absolute;display:inline-flex;opacity:.5;top:0;left:0;transition:transform 250ms ease-in-out,width 250ms}`];
|
|
81
60
|
}
|
|
82
61
|
|
|
83
62
|
_onClick(event) {
|
|
84
63
|
event.stopPropagation();
|
|
85
|
-
const {
|
|
86
|
-
|
|
64
|
+
const {
|
|
65
|
+
detail
|
|
66
|
+
} = event;
|
|
67
|
+
const {
|
|
68
|
+
title,
|
|
69
|
+
target
|
|
70
|
+
} = detail;
|
|
71
|
+
|
|
87
72
|
if (target === '_blank') {
|
|
88
73
|
dispatchCustomEvent(this, 'click', detail);
|
|
89
74
|
} else {
|
|
90
75
|
if (!this._isLocked) {
|
|
91
76
|
this._isLocked = true;
|
|
92
77
|
let nextIndex = 0;
|
|
78
|
+
|
|
93
79
|
this._routes.forEach((route, index) => {
|
|
94
80
|
if (route.title === title) {
|
|
95
81
|
route.active = true;
|
|
@@ -97,30 +83,30 @@ export class GvNav extends LitElement {
|
|
|
97
83
|
} else {
|
|
98
84
|
delete route.active;
|
|
99
85
|
}
|
|
86
|
+
|
|
100
87
|
return route;
|
|
101
88
|
});
|
|
102
89
|
|
|
103
90
|
const activeLink = this.shadowRoot.querySelector('gv-link[active]');
|
|
104
91
|
const nextLink = this.shadowRoot.querySelectorAll('gv-link')[nextIndex];
|
|
92
|
+
|
|
105
93
|
if (activeLink) {
|
|
106
94
|
const shadowLink = activeLink.cloneNode(true);
|
|
107
|
-
const {
|
|
108
|
-
|
|
95
|
+
const {
|
|
96
|
+
height,
|
|
97
|
+
width
|
|
98
|
+
} = activeLink.getBoundingClientRect();
|
|
109
99
|
shadowLink.id = 'shadowLink';
|
|
110
100
|
shadowLink.style.top = `${activeLink.offsetTop}px`;
|
|
111
101
|
shadowLink.style.left = `${activeLink.offsetLeft}px`;
|
|
112
102
|
shadowLink.style.width = `${width}px`;
|
|
113
103
|
shadowLink.style.height = `${height}px`;
|
|
114
|
-
|
|
115
104
|
activeLink.removeAttribute('active');
|
|
116
105
|
activeLink.style.height = `${height}px`;
|
|
117
|
-
|
|
118
106
|
this.shadowRoot.querySelector('nav').prepend(shadowLink);
|
|
119
107
|
const left = nextLink.offsetLeft - activeLink.offsetLeft;
|
|
120
108
|
const top = nextLink.offsetTop - activeLink.offsetTop;
|
|
121
|
-
|
|
122
109
|
shadowLink.style.transform = `translate(${left}px,${top}px)`;
|
|
123
|
-
|
|
124
110
|
setTimeout(() => {
|
|
125
111
|
nextLink.setAttribute('active', true);
|
|
126
112
|
this.shadowRoot.querySelector('nav').removeChild(shadowLink);
|
|
@@ -139,13 +125,14 @@ export class GvNav extends LitElement {
|
|
|
139
125
|
constructor() {
|
|
140
126
|
super();
|
|
141
127
|
/** @protected */
|
|
128
|
+
|
|
142
129
|
this._routes = [];
|
|
143
130
|
this.vertical = false;
|
|
144
131
|
}
|
|
145
132
|
|
|
146
133
|
set routes(routes) {
|
|
147
134
|
if (routes) {
|
|
148
|
-
Promise.resolve(routes).then(
|
|
135
|
+
Promise.resolve(routes).then(_routes => {
|
|
149
136
|
if (!isSameRoutes(this._routes, _routes)) {
|
|
150
137
|
this._routes = _routes;
|
|
151
138
|
}
|
|
@@ -154,23 +141,11 @@ export class GvNav extends LitElement {
|
|
|
154
141
|
}
|
|
155
142
|
|
|
156
143
|
_getLink(route, index) {
|
|
157
|
-
return Promise.resolve(route)
|
|
158
|
-
.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
.icon="${_route.icon}"
|
|
163
|
-
.path="${_route.path}"
|
|
164
|
-
.target="${_route.target}"
|
|
165
|
-
?small="${this.small}"
|
|
166
|
-
.title="${_route.title}"
|
|
167
|
-
.help="${until(_route.help, null)}"
|
|
168
|
-
?vertical="${this.vertical}"
|
|
169
|
-
></gv-link>`;
|
|
170
|
-
})
|
|
171
|
-
.catch(() => {
|
|
172
|
-
delete this._routes[index];
|
|
173
|
-
});
|
|
144
|
+
return Promise.resolve(route).then(_route => {
|
|
145
|
+
return html` <gv-link @gv-link:click="${this._onClick}" .active="${_route.active}" .icon="${_route.icon}" .path="${_route.path}" .target="${_route.target}" ?small="${this.small}" .title="${_route.title}" .help="${until(_route.help, null)}" ?vertical="${this.vertical}"></gv-link>`;
|
|
146
|
+
}).catch(() => {
|
|
147
|
+
delete this._routes[index];
|
|
148
|
+
});
|
|
174
149
|
}
|
|
175
150
|
|
|
176
151
|
updated(_changedProperties) {
|
|
@@ -181,16 +156,15 @@ export class GvNav extends LitElement {
|
|
|
181
156
|
|
|
182
157
|
render() {
|
|
183
158
|
if (this._routes) {
|
|
184
|
-
return html`<nav class="${classMap({
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
(route, index) => until(this._getLink(route, index), html`<gv-link skeleton .vertical="${this.vertical}"></gv-link>`),
|
|
189
|
-
)}
|
|
190
|
-
</nav>`;
|
|
159
|
+
return html`<nav class="${classMap({
|
|
160
|
+
compact: this._compact,
|
|
161
|
+
vertical: this.vertical
|
|
162
|
+
})}"> ${repeat(this._routes, route => route, (route, index) => until(this._getLink(route, index), html`<gv-link skeleton .vertical="${this.vertical}"></gv-link>`))} </nav>`;
|
|
191
163
|
}
|
|
164
|
+
|
|
192
165
|
return html``;
|
|
193
166
|
}
|
|
194
|
-
}
|
|
195
167
|
|
|
168
|
+
}
|
|
196
169
|
window.customElements.define('gv-nav', GvNav);
|
|
170
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1uYXYuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJyZXBlYXQiLCJ1bnRpbCIsImlzU2FtZVJvdXRlcyIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsIkd2TmF2IiwicHJvcGVydGllcyIsInJvdXRlcyIsInR5cGUiLCJBcnJheSIsIl9yb3V0ZXMiLCJzbWFsbCIsIkJvb2xlYW4iLCJfY29tcGFjdCIsImF0dHJpYnV0ZSIsInZlcnRpY2FsIiwicmVmbGVjdCIsInN0eWxlcyIsIl9vbkNsaWNrIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJkZXRhaWwiLCJ0aXRsZSIsInRhcmdldCIsIl9pc0xvY2tlZCIsIm5leHRJbmRleCIsImZvckVhY2giLCJyb3V0ZSIsImluZGV4IiwiYWN0aXZlIiwiYWN0aXZlTGluayIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwibmV4dExpbmsiLCJxdWVyeVNlbGVjdG9yQWxsIiwic2hhZG93TGluayIsImNsb25lTm9kZSIsImhlaWdodCIsIndpZHRoIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaWQiLCJzdHlsZSIsInRvcCIsIm9mZnNldFRvcCIsImxlZnQiLCJvZmZzZXRMZWZ0IiwicmVtb3ZlQXR0cmlidXRlIiwicHJlcGVuZCIsInRyYW5zZm9ybSIsInNldFRpbWVvdXQiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVDaGlsZCIsImNvbnN0cnVjdG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiX2dldExpbmsiLCJfcm91dGUiLCJpY29uIiwicGF0aCIsImhlbHAiLCJjYXRjaCIsInVwZGF0ZWQiLCJfY2hhbmdlZFByb3BlcnRpZXMiLCJoYXMiLCJsZW5ndGgiLCJyZW5kZXIiLCJjb21wYWN0Iiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFw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Q0FjRSxNQUFNO0FBQ1gsYUFBTyxLQUFLbkQsT0FBTCxDQUFha0IsS0FBYixDQUFQO0FBQ0QsS0FoQkksQ0FBUDtBQWlCRDs7QUFFRGtDLEVBQUFBLE9BQU8sQ0FBQ0Msa0JBQUQsRUFBcUI7QUFDMUIsUUFBSUEsa0JBQWtCLENBQUNDLEdBQW5CLENBQXVCLFNBQXZCLENBQUosRUFBdUM7QUFDckMsV0FBS25ELFFBQUwsR0FBZ0IsS0FBS0gsT0FBTCxJQUFnQixLQUFLQSxPQUFMLENBQWF1RCxNQUFiLEdBQXNCLENBQXREO0FBQ0Q7QUFDRjs7QUFFREMsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsUUFBSSxLQUFLeEQsT0FBVCxFQUFrQjtBQUNoQixhQUFPWixJQUFJLGVBQWVNLFFBQVEsQ0FBQztBQUFFK0QsUUFBQUEsT0FBTyxFQUFFLEtBQUt0RCxRQUFoQjtBQUEwQkUsUUFBQUEsUUFBUSxFQUFFLEtBQUtBO0FBQXpDLE9BQUQsQ0FBdkIsTUFDUGYsTUFBTSxDQUNOLEtBQUtVLE9BREMsRUFFTGlCLEtBQUQsSUFBV0EsS0FGTCxFQUdOLENBQUNBLEtBQUQsRUFBUUMsS0FBUixLQUFrQjNCLEtBQUssQ0FBQyxLQUFLdUQsUUFBTCxDQUFjN0IsS0FBZCxFQUFxQkMsS0FBckIsQ0FBRCxFQUE4QjlCLElBQUksZ0NBQWdDLEtBQUtpQixRQUFyQyxjQUFsQyxDQUhqQixDQURDLFNBQVg7QUFPRDs7QUFDRCxXQUFPakIsSUFBSSxFQUFYO0FBQ0Q7O0FBL0ptQztBQWtLdENzRSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFFBQTdCLEVBQXVDakUsS0FBdkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWxpbmsnO1xuaW1wb3J0IHsgdW50aWwgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy91bnRpbCc7XG5pbXBvcnQgeyBpc1NhbWVSb3V0ZXMgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuXG4vKipcbiAqIEEgbWFpbiBuYXZcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtbmF2OmNsaWNrIC0gQ3VzdG9tIGV2ZW50IHdoZW4gbmF2IGl0ZW0gaXMgY2xpY2tlZFxuICpcbiAqIEBhdHRyIHtBcnJheTx7YWN0aXZlOiBCb29sZWFuLCBpY29uOiBTdHJpbmcsIHBhdGg6IFN0cmluZywgdGl0bGU6IFByb21pc2U8U3RyaW5nPiwgdGFyZ2V0OiBTdHJpbmd9Pn0gcm91dGVzIC0gZGVmaW5pdGlvbiBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEd2TmF2IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcm91dGVzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBfcm91dGVzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBfY29tcGFjdDogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICB2ZXJ0aWNhbDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgbmF2IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtbGluayB7XG4gICAgICAgICAgLS1ndi1saW5rLS10YTogZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLnZlcnRpY2FsIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAudmVydGljYWwgZ3YtbGluayB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29tcGFjdCB7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXBoOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgI3NoYWRvd0xpbmsge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI1MG1zIGVhc2UtaW4tb3V0LCB3aWR0aCAyNTBtcztcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgX29uQ2xpY2soZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCB7IGRldGFpbCB9ID0gZXZlbnQ7XG4gICAgY29uc3QgeyB0aXRsZSwgdGFyZ2V0IH0gPSBkZXRhaWw7XG4gICAgaWYgKHRhcmdldCA9PT0gJ19ibGFuaycpIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NsaWNrJywgZGV0YWlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLl9pc0xvY2tlZCkge1xuICAgICAgICB0aGlzLl9pc0xvY2tlZCA9IHRydWU7XG4gICAgICAgIGxldCBuZXh0SW5kZXggPSAwO1xuICAgICAgICB0aGlzLl9yb3V0ZXMuZm9yRWFjaCgocm91dGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKHJvdXRlLnRpdGxlID09PSB0aXRsZSkge1xuICAgICAgICAgICAgcm91dGUuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIG5leHRJbmRleCA9IGluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgcm91dGUuYWN0aXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUxpbmsgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtbGlua1thY3RpdmVdJyk7XG4gICAgICAgIGNvbnN0IG5leHRMaW5rID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LWxpbmsnKVtuZXh0SW5kZXhdO1xuICAgICAgICBpZiAoYWN0aXZlTGluaykge1xuICAgICAgICAgIGNvbnN0IHNoYWRvd0xpbmsgPSBhY3RpdmVMaW5rLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IGFjdGl2ZUxpbmsuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICBzaGFkb3dMaW5rLmlkID0gJ3NoYWRvd0xpbmsnO1xuICAgICAgICAgIHNoYWRvd0xpbmsuc3R5bGUudG9wID0gYCR7YWN0aXZlTGluay5vZmZzZXRUb3B9cHhgO1xuICAgICAgICAgIHNoYWRvd0xpbmsuc3R5bGUubGVmdCA9IGAke2FjdGl2ZUxpbmsub2Zmc2V0TGVmdH1weGA7XG4gICAgICAgICAgc2hhZG93TGluay5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgICBzaGFkb3dMaW5rLnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XG5cbiAgICAgICAgICBhY3RpdmVMaW5rLnJlbW92ZUF0dHJpYnV0ZSgnYWN0aXZlJyk7XG4gICAgICAgICAgYWN0aXZlTGluay5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ25hdicpLnByZXBlbmQoc2hhZG93TGluayk7XG4gICAgICAgICAgY29uc3QgbGVmdCA9IG5leHRMaW5rLm9mZnNldExlZnQgLSBhY3RpdmVMaW5rLm9mZnNldExlZnQ7XG4gICAgICAgICAgY29uc3QgdG9wID0gbmV4dExpbmsub2Zmc2V0VG9wIC0gYWN0aXZlTGluay5vZmZzZXRUb3A7XG5cbiAgICAgICAgICBzaGFkb3dMaW5rLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHtsZWZ0fXB4LCR7dG9wfXB4KWA7XG5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG5leHRMaW5rLnNldEF0dHJpYnV0ZSgnYWN0aXZlJywgdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignbmF2JykucmVtb3ZlQ2hpbGQoc2hhZG93TGluayk7XG4gICAgICAgICAgICB0aGlzLl9pc0xvY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2xpY2snLCBkZXRhaWwpO1xuICAgICAgICAgIH0sIDI1MCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dExpbmsuc2V0QXR0cmlidXRlKCdhY3RpdmUnLCB0cnVlKTtcbiAgICAgICAgICB0aGlzLl9pc0xvY2tlZCA9IGZhbHNlO1xuICAgICAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NsaWNrJywgZGV0YWlsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICB0aGlzLl9yb3V0ZXMgPSBbXTtcbiAgICB0aGlzLnZlcnRpY2FsID0gZmFsc2U7XG4gIH1cblxuICBzZXQgcm91dGVzKHJvdXRlcykge1xuICAgIGlmIChyb3V0ZXMpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZShyb3V0ZXMpLnRoZW4oKF9yb3V0ZXMpID0+IHtcbiAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBfcm91dGVzKSkge1xuICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IF9yb3V0ZXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9nZXRMaW5rKHJvdXRlLCBpbmRleCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocm91dGUpXG4gICAgICAudGhlbigoX3JvdXRlKSA9PiB7XG4gICAgICAgIHJldHVybiBodG1sYCA8Z3YtbGlua1xuICAgICAgICAgIEBndi1saW5rOmNsaWNrPSR7dGhpcy5fb25DbGlja31cbiAgICAgICAgICAuYWN0aXZlPVwiJHtfcm91dGUuYWN0aXZlfVwiXG4gICAgICAgICAgLmljb249XCIke19yb3V0ZS5pY29ufVwiXG4gICAgICAgICAgLnBhdGg9XCIke19yb3V0ZS5wYXRofVwiXG4gICAgICAgICAgLnRhcmdldD1cIiR7X3JvdXRlLnRhcmdldH1cIlxuICAgICAgICAgID9zbWFsbD1cIiR7dGhpcy5zbWFsbH1cIlxuICAgICAgICAgIC50aXRsZT1cIiR7X3JvdXRlLnRpdGxlfVwiXG4gICAgICAgICAgLmhlbHA9XCIke3VudGlsKF9yb3V0ZS5oZWxwLCBudWxsKX1cIlxuICAgICAgICAgID92ZXJ0aWNhbD1cIiR7dGhpcy52ZXJ0aWNhbH1cIlxuICAgICAgICA+PC9ndi1saW5rPmA7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX3JvdXRlc1tpbmRleF07XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgaWYgKF9jaGFuZ2VkUHJvcGVydGllcy5oYXMoJ19yb3V0ZXMnKSkge1xuICAgICAgdGhpcy5fY29tcGFjdCA9IHRoaXMuX3JvdXRlcyAmJiB0aGlzLl9yb3V0ZXMubGVuZ3RoID4gNTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX3JvdXRlcykge1xuICAgICAgcmV0dXJuIGh0bWxgPG5hdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBjb21wYWN0OiB0aGlzLl9jb21wYWN0LCB2ZXJ0aWNhbDogdGhpcy52ZXJ0aWNhbCB9KX1cIj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgdGhpcy5fcm91dGVzLFxuICAgICAgICAgIChyb3V0ZSkgPT4gcm91dGUsXG4gICAgICAgICAgKHJvdXRlLCBpbmRleCkgPT4gdW50aWwodGhpcy5fZ2V0TGluayhyb3V0ZSwgaW5kZXgpLCBodG1sYDxndi1saW5rIHNrZWxldG9uIC52ZXJ0aWNhbD1cIiR7dGhpcy52ZXJ0aWNhbH1cIj48L2d2LWxpbms+YCksXG4gICAgICAgICl9XG4gICAgICA8L25hdj5gO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LW5hdicsIEd2TmF2KTtcbiJdfQ==
|