@gravitee/ui-components 3.25.2 → 3.25.3-typescript-5a46c7d

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.
Files changed (183) hide show
  1. package/package.json +13 -4
  2. package/src/atoms/gv-autocomplete.js +1 -437
  3. package/src/atoms/gv-button.js +1 -235
  4. package/src/atoms/gv-checkbox.js +1 -129
  5. package/src/atoms/gv-date-picker-calendar.js +1 -813
  6. package/src/atoms/gv-date-picker-cell.js +1 -166
  7. package/src/atoms/gv-date-picker.js +1 -532
  8. package/src/atoms/gv-file-upload.js +1 -257
  9. package/src/atoms/gv-icon.js +1 -82
  10. package/src/atoms/gv-image.js +1 -109
  11. package/src/atoms/gv-input-message.js +1 -59
  12. package/src/atoms/gv-input.js +1 -530
  13. package/src/atoms/gv-link.js +1 -132
  14. package/src/atoms/gv-message.js +1 -77
  15. package/src/atoms/gv-metric.js +1 -68
  16. package/src/atoms/gv-relative-time.js +1 -185
  17. package/src/atoms/gv-select-native.js +1 -269
  18. package/src/atoms/gv-select.js +1 -317
  19. package/src/atoms/gv-spinner.js +1 -36
  20. package/src/atoms/gv-state.js +1 -89
  21. package/src/atoms/gv-switch.js +1 -123
  22. package/src/atoms/gv-tag.js +1 -116
  23. package/src/atoms/gv-text.js +1 -107
  24. package/src/charts/gv-chart-bar.js +1 -107
  25. package/src/charts/gv-chart-gauge.js +1 -97
  26. package/src/charts/gv-chart-histogram.js +1 -91
  27. package/src/charts/gv-chart-line.js +1 -235
  28. package/src/charts/gv-chart-map.js +1 -114
  29. package/src/charts/gv-chart-pie.js +1 -95
  30. package/src/index.js +1 -78
  31. package/src/lib/cron-expression.js +1 -210
  32. package/src/lib/date.js +1 -53
  33. package/src/lib/events.js +1 -28
  34. package/src/lib/http-client-schema-form.js +1 -68
  35. package/src/lib/http.js +1 -238
  36. package/src/lib/i18n.js +1 -111
  37. package/src/lib/item.js +1 -119
  38. package/src/lib/properties.js +1 -224
  39. package/src/lib/schema-form.js +1 -43
  40. package/src/lib/studio.js +1 -94
  41. package/src/lib/style.js +1 -41
  42. package/src/lib/text-format.js +1 -76
  43. package/src/lib/theme.js +1 -66
  44. package/src/lib/utils.js +1 -110
  45. package/src/mixins/chart-element.js +1 -142
  46. package/src/mixins/input-element.js +1 -157
  47. package/src/mixins/item-resource.js +1 -122
  48. package/src/mixins/keyboard-element.js +1 -70
  49. package/src/mixins/update-after-browser.js +1 -33
  50. package/src/mixins/with-resize-observer.js +1 -78
  51. package/src/mixins/with-skeleton-attribute.js +1 -118
  52. package/src/molecules/gv-card-full.js +1 -97
  53. package/src/molecules/gv-card-list.js +1 -84
  54. package/src/molecules/gv-card.js +1 -59
  55. package/src/molecules/gv-category-list.js +1 -49
  56. package/src/molecules/gv-category.js +1 -90
  57. package/src/molecules/gv-code.js +1 -297
  58. package/src/molecules/gv-confirm.js +1 -158
  59. package/src/molecules/gv-cron-editor.js +1 -464
  60. package/src/molecules/gv-dropdown-menu.js +1 -84
  61. package/src/molecules/gv-expandable.js +1 -94
  62. package/src/molecules/gv-expression-language.js +1 -308
  63. package/src/molecules/gv-identity-picture.js +1 -125
  64. package/src/molecules/gv-list.js +1 -135
  65. package/src/molecules/gv-metrics.js +1 -150
  66. package/src/molecules/gv-modal.js +1 -146
  67. package/src/molecules/gv-nav.js +1 -170
  68. package/src/molecules/gv-option.js +1 -169
  69. package/src/molecules/gv-plans.js +1 -306
  70. package/src/molecules/gv-popover.js +1 -231
  71. package/src/molecules/gv-promote.js +1 -91
  72. package/src/molecules/gv-rating-list.js +1 -239
  73. package/src/molecules/gv-rating.js +1 -200
  74. package/src/molecules/gv-row-expandable.js +1 -39
  75. package/src/molecules/gv-row.js +1 -84
  76. package/src/molecules/gv-stats.js +1 -96
  77. package/src/molecules/gv-stepper.js +1 -144
  78. package/src/molecules/gv-table.js +1 -575
  79. package/src/molecules/gv-tree.js +1 -127
  80. package/src/organisms/gv-documentation.js +1 -132
  81. package/src/organisms/gv-header.js +1 -130
  82. package/src/organisms/gv-http-client.js +1 -139
  83. package/src/organisms/gv-menu.js +1 -142
  84. package/src/organisms/gv-newsletter-subscription.js +1 -130
  85. package/src/organisms/gv-pagination.js +1 -170
  86. package/src/organisms/gv-properties.js +1 -699
  87. package/src/organisms/gv-resizable-views.js +1 -178
  88. package/src/organisms/gv-resources.js +1 -428
  89. package/src/organisms/gv-schema-form-array.js +1 -140
  90. package/src/organisms/gv-schema-form-control-object.js +1 -140
  91. package/src/organisms/gv-schema-form-control.js +1 -416
  92. package/src/organisms/gv-schema-form.js +1 -646
  93. package/src/organisms/gv-tabs.js +1 -178
  94. package/src/organisms/gv-user-menu.js +1 -149
  95. package/src/organisms/gv-vertical-menu.js +1 -82
  96. package/src/policy-studio/gv-flow-step.js +1 -304
  97. package/src/policy-studio/gv-flow.js +1 -442
  98. package/src/policy-studio/gv-policy-studio-menu.js +1 -436
  99. package/src/policy-studio/gv-policy-studio.js +1 -1778
  100. package/src/styles/empty.js +1 -19
  101. package/src/styles/input.js +1 -19
  102. package/src/styles/link.js +1 -19
  103. package/src/styles/shapes.js +1 -18
  104. package/src/styles/skeleton.js +1 -19
  105. package/src/styles/zoom.js +1 -19
  106. package/src/theme/gv-theme.js +1 -164
  107. package/wc/gv-autocomplete.js +1 -1
  108. package/wc/gv-button.js +1 -1
  109. package/wc/gv-card-full.js +1 -1
  110. package/wc/gv-card-list.js +1 -1
  111. package/wc/gv-card.js +1 -1
  112. package/wc/gv-category-list.js +1 -1
  113. package/wc/gv-category.js +1 -1
  114. package/wc/gv-chart-bar.js +1 -1
  115. package/wc/gv-chart-gauge.js +1 -1
  116. package/wc/gv-chart-histogram.js +1 -1
  117. package/wc/gv-chart-line.js +1 -1
  118. package/wc/gv-chart-map.js +1 -1
  119. package/wc/gv-chart-pie.js +1 -1
  120. package/wc/gv-checkbox.js +1 -1
  121. package/wc/gv-code.js +1 -1
  122. package/wc/gv-confirm.js +1 -1
  123. package/wc/gv-cron-editor.js +1 -1
  124. package/wc/gv-date-picker-calendar.js +1 -1
  125. package/wc/gv-date-picker-cell.js +1 -1
  126. package/wc/gv-date-picker.js +1 -1
  127. package/wc/gv-documentation.js +1 -1
  128. package/wc/gv-dropdown-menu.js +1 -1
  129. package/wc/gv-expandable.js +1 -1
  130. package/wc/gv-expression-language.js +1 -1
  131. package/wc/gv-file-upload.js +1 -1
  132. package/wc/gv-flow-step.js +1 -1
  133. package/wc/gv-flow.js +1 -1
  134. package/wc/gv-header.js +1 -1
  135. package/wc/gv-http-client.js +1 -1
  136. package/wc/gv-icon.js +1 -1
  137. package/wc/gv-identity-picture.js +1 -1
  138. package/wc/gv-image.js +1 -1
  139. package/wc/gv-input-message.js +1 -1
  140. package/wc/gv-input.js +1 -1
  141. package/wc/gv-link.js +1 -1
  142. package/wc/gv-list.js +1 -1
  143. package/wc/gv-menu.js +1 -1
  144. package/wc/gv-message.js +1 -1
  145. package/wc/gv-metric.js +1 -1
  146. package/wc/gv-metrics.js +1 -1
  147. package/wc/gv-modal.js +1 -1
  148. package/wc/gv-nav.js +1 -1
  149. package/wc/gv-newsletter-subscription.js +1 -1
  150. package/wc/gv-option.js +1 -1
  151. package/wc/gv-pagination.js +1 -1
  152. package/wc/gv-plans.js +1 -1
  153. package/wc/gv-policy-studio-menu.js +1 -1
  154. package/wc/gv-policy-studio.js +1 -1
  155. package/wc/gv-popover.js +1 -1
  156. package/wc/gv-promote.js +1 -1
  157. package/wc/gv-properties.js +1 -1
  158. package/wc/gv-rating-list.js +1 -1
  159. package/wc/gv-rating.js +1 -1
  160. package/wc/gv-relative-time.js +1 -1
  161. package/wc/gv-resizable-views.js +1 -1
  162. package/wc/gv-resources.js +1 -1
  163. package/wc/gv-row-expandable.js +1 -1
  164. package/wc/gv-row.js +1 -1
  165. package/wc/gv-schema-form-array.js +1 -1
  166. package/wc/gv-schema-form-control-object.js +1 -1
  167. package/wc/gv-schema-form-control.js +1 -1
  168. package/wc/gv-schema-form.js +1 -1
  169. package/wc/gv-select-native.js +1 -1
  170. package/wc/gv-select.js +1 -1
  171. package/wc/gv-spinner.js +1 -1
  172. package/wc/gv-state.js +1 -1
  173. package/wc/gv-stats.js +1 -1
  174. package/wc/gv-stepper.js +1 -1
  175. package/wc/gv-switch.js +1 -1
  176. package/wc/gv-table.js +1 -1
  177. package/wc/gv-tabs.js +1 -1
  178. package/wc/gv-tag.js +1 -1
  179. package/wc/gv-text.js +1 -1
  180. package/wc/gv-theme.js +1 -1
  181. package/wc/gv-tree.js +1 -1
  182. package/wc/gv-user-menu.js +1 -1
  183. package/wc/gv-vertical-menu.js +1 -1
@@ -1,257 +1 @@
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 { css, LitElement, html } from 'lit';
17
- import { link } from '../styles/link';
18
- import { dispatchCustomEvent } from '../lib/events';
19
- import { ifDefined } from 'lit/directives/if-defined';
20
- import { i18n } from '../lib/i18n';
21
- import { classMap } from 'lit/directives/class-map';
22
- /**
23
- * File upload
24
- *
25
- * ## Details
26
- * * has @theme facet
27
- *
28
- * @fires gv-file-upload:drop - Custom event when user drop file
29
- *
30
- * @attr {String} label - Label
31
- * @attr {String} accept - One or more file type identifiers describing the authorized file types.
32
- * @attr {String} except - One or more file type identifiers describing unauthorized file types.
33
- * @attr {Number} limit - Max size limit in bytes.
34
- * @attr {String} value - Reflected value of uploaded file
35
- **/
36
-
37
- export class GvFileUpload extends LitElement {
38
- static get properties() {
39
- return {
40
- label: {
41
- type: String
42
- },
43
- accept: {
44
- type: String
45
- },
46
- except: {
47
- type: String
48
- },
49
- limit: {
50
- type: Number
51
- },
52
- value: {
53
- type: Array,
54
- reflect: true
55
- },
56
- _preview: {
57
- type: String,
58
- attribute: false
59
- },
60
- _files: {
61
- type: Array,
62
- attribute: false
63
- },
64
- _errors: {
65
- type: Array,
66
- attribute: false
67
- }
68
- };
69
- }
70
-
71
- static get styles() {
72
- return [link, // language=CSS
73
- css`:host{box-sizing:border-box;display:block;width:100%;color:var(--gv-theme-color-dark,#28444f)}.box{font-size:1.25rem;background-color:var(--gv-theme-neutral-color-lighter,#fafafa);position:relative;padding:2rem;text-align:center;display:block;border:1px dashed #28444f;border-radius:4px;transition:outline-offset .15s ease-in-out,background-color .15s linear;height:100%}.box .box__icon{width:100%;height:80px;display:block;margin-bottom:40px;--gv-icon--s:5rem;--gv-icon--c:var(--gv-theme-color-dark, #28444f)}.box__file{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.box__file+label{max-width:80%;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden}.box.is-dragover{background-color:var(--gv-theme-color-light,#28444f);border:none;outline:1px dashed #28444f;outline-offset:-10px}.box .box__dragndrop{display:inline}.files{box-sizing:border-box;display:flex;align-items:center;--gv-icon--s:16px;padding:1rem .5rem 0}.filename{flex:1;padding:.2rem;word-break:break-all}.error{font-style:italic;--gv-icon--c:red}gv-image{position:absolute}.preview{transition:all .3s ease-in-out}.box__input{position:relative;display:flex;flex-direction:column;justify-content:center;height:100%;z-index:10}.preview .box__input{visibility:hidden}.preview:hover .box__input{visibility:visible}.preview:hover gv-image{opacity:.3}`];
74
- }
75
-
76
- constructor() {
77
- super();
78
- this.reader = new FileReader();
79
- this._files = [];
80
- this._errors = [];
81
- this._counter = 0;
82
- }
83
-
84
- _onDragOver(e) {
85
- e.preventDefault();
86
- e.stopPropagation();
87
- this._counter++;
88
- const box = this.shadowRoot.querySelector('.box');
89
- box.classList.add('is-dragover');
90
- }
91
-
92
- _onDragEnd(e) {
93
- e.preventDefault();
94
- e.stopPropagation();
95
-
96
- if (--this._counter === 0) {
97
- const box = this.shadowRoot.querySelector('.box');
98
- box.classList.remove('is-dragover');
99
- }
100
- }
101
-
102
- _onDrop(e) {
103
- e.preventDefault();
104
- e.stopPropagation();
105
- this.setFiles(e.dataTransfer.files);
106
- }
107
-
108
- _getRegex(mimeTypes) {
109
- return `(${mimeTypes.toString().replace(' ', '').replace(/,/g, '.+|').replace(/\*/g, '.+').replace('.+.+', '.+')})`;
110
- }
111
-
112
- setFiles(files) {
113
- const errors = [];
114
- this._files = [...files].filter(file => {
115
- if (this.accept && file.type.match(this._getRegex(this.accept)) == null) {
116
- errors.push({
117
- file,
118
- error: i18n('gv-file-upload.error.typeNotAllowed')
119
- });
120
- return false;
121
- }
122
-
123
- if (this.except && file.type.match(this._getRegex(this.except)) != null) {
124
- errors.push({
125
- file,
126
- error: i18n('gv-file-upload.error.typeNotAllowed')
127
- });
128
- return false;
129
- }
130
-
131
- if (this.limit && file.size > parseInt(this.limit, 10)) {
132
- errors.push({
133
- file,
134
- error: i18n('gv-file-upload.error.maxSize')
135
- });
136
- return false;
137
- }
138
-
139
- return true;
140
- });
141
- this._errors = errors;
142
-
143
- if (this._errors.length > 0) {
144
- dispatchCustomEvent(this, 'error', {
145
- errors: this._errors
146
- });
147
- this.dispatchEvent(new Event('invalid', {
148
- bubbles: true,
149
- cancelable: true
150
- }));
151
- }
152
-
153
- const box = this.shadowRoot.querySelector('.box');
154
- box.classList.remove('is-dragover');
155
-
156
- if (this._files.length > 0) {
157
- this.reader.readAsDataURL(this._files[0]);
158
-
159
- this.reader.onload = event => {
160
- if (this._files[0].type.match(this._getRegex('image/*'))) {
161
- this._preview = event.target.result;
162
- } else {
163
- this._preview = null;
164
- }
165
-
166
- this.value = event.target.result;
167
- this.dispatchEvent(new Event('input', {
168
- bubbles: true,
169
- cancelable: true
170
- }));
171
- dispatchCustomEvent(this, 'drop', {
172
- files: [this.value]
173
- });
174
- };
175
- }
176
- }
177
-
178
- _cancelEvent(e) {
179
- e.preventDefault();
180
- e.stopPropagation();
181
- }
182
-
183
- _removeFile() {
184
- this._errors = [];
185
- this._files = [];
186
- this._preview = null;
187
- this.value = null;
188
- this.shadowRoot.querySelector('#file').value = null;
189
- this.dispatchEvent(new Event('input', {
190
- bubbles: true,
191
- cancelable: true
192
- }));
193
- }
194
-
195
- _onChange(e) {
196
- this.setFiles(e.target.files);
197
- }
198
-
199
- get icon() {
200
- if (this._files.length > 0) {
201
- return 'general:clip';
202
- }
203
-
204
- return 'general:upload';
205
- }
206
-
207
- render() {
208
- const label = this._errors.length > 0 || this._files.length > 0 ? i18n('gv-file-upload.chooseAnotherFile') : i18n('gv-file-upload.chooseFile');
209
- const classes = {
210
- box: true,
211
- preview: this._preview != null
212
- };
213
- return html` <label for="file">${this.label}</label> <div class="${classMap(classes)}" @drop="${this._onDrop}" @ondrop="${this._onDrop}" @drag="${this._cancelEvent}" @dragstart="${this._cancelEvent}" @dragover="${this._onDragOver}" @dragenter="${this._onDragOver}" @dragleave="${this._onDragEnd}" @dragend="${this._onDragEnd}"> ${this._preview != null ? html`<gv-image .src="${this._preview}" @error="${this._onPreviewError}"></gv-image>` : ''} <div class="box__input"> <gv-icon class="box__icon" shape="${this.icon}"></gv-icon> <label for="file" class="link"> <strong>${label}</strong> <span class="box__dragndrop">${i18n('gv-file-upload.orDragIt')}</span> </label> <input class="box__file" type="file" name="files[]" id="file" files="${this.files}" accept="${ifDefined(this.accept)}" @change="${this._onChange}"> </div> </div> ${this._files.length > 0 ? html` <div class="files"> <gv-icon shape="general:clip"></gv-icon> <div class="filename">${this._files[0].name}</div> <gv-icon class="link" @click="${this._removeFile.bind(this, 0)}" shape="general:trash"></gv-icon> </div> ` : ''} ${this._errors.length > 0 ? html` <div class="files"> <gv-icon class="error" shape="code:stop"></gv-icon> <div class="filename">${this._errors[0].file.name} <span class="error">(${this._errors[0].error})</span></div> </div> ` : ''} ${this.value && this._files.length === 0 && this._errors.length === 0 ? html` <div class="files"> <div class="filename"></div> <gv-button link @click="${this._removeFile.bind(this, 0)}">${i18n('gv-file-upload.removePicture')}</gv-button> </div> ` : ''} `;
214
- }
215
-
216
- _onPreviewError() {
217
- this.value = null;
218
- }
219
-
220
- updated(changedProperties) {
221
- if (changedProperties.has('value')) {
222
- if (this.value) {
223
- this._preview = this.value;
224
-
225
- if (this._files && this._files[0]) {
226
- this.reader.readAsDataURL(this._files[0]);
227
-
228
- this.reader.onload = event => {
229
- if (this.value !== event.target.result) {
230
- this._files = [];
231
- }
232
- };
233
- }
234
- } else {
235
- this._preview = null;
236
- this._files = [];
237
- }
238
- }
239
-
240
- const preview = this.shadowRoot.querySelector('.preview');
241
-
242
- if (preview) {
243
- const {
244
- width,
245
- height
246
- } = preview.getBoundingClientRect();
247
- const img = this.shadowRoot.querySelector('gv-image');
248
- img.style.width = width - 20 + 'px';
249
- img.style.height = height - 20 + 'px';
250
- img.style.left = '10px';
251
- img.style.top = '10px';
252
- }
253
- }
254
-
255
- }
256
- window.customElements.define('gv-file-upload', GvFileUpload);
257
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWZpbGUtdXBsb2FkLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwibGluayIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJpZkRlZmluZWQiLCJpMThuIiwiY2xhc3NNYXAiLCJHdkZpbGVVcGxvYWQiLCJwcm9wZXJ0aWVzIiwibGFiZWwiLCJ0eXBlIiwiU3RyaW5nIiwiYWNjZXB0IiwiZXhjZXB0IiwibGltaXQiLCJOdW1iZXIiLCJ2YWx1ZSIsIkFycmF5IiwicmVmbGVjdCIsIl9wcmV2aWV3IiwiYXR0cmlidXRlIiwiX2ZpbGVzIiwiX2Vycm9ycyIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsIl9jb3VudGVyIiwiX29uRHJhZ092ZXIiLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJib3giLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImNsYXNzTGlzdCIsImFkZCIsIl9vbkRyYWdFbmQiLCJyZW1vdmUiLCJfb25Ecm9wIiwic2V0RmlsZXMiLCJkYXRhVHJhbnNmZXIiLCJmaWxlcyIsIl9nZXRSZWdleCIsIm1pbWVUeXBlcyIsInRvU3RyaW5nIiwicmVwbGFjZSIsImVycm9ycyIsImZpbHRlciIsImZpbGUiLCJtYXRjaCIsInB1c2giLCJlcnJvciIsInNpemUiLCJwYXJzZUludCIsImxlbmd0aCIsImRpc3BhdGNoRXZlbnQiLCJFdmVudCIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwicmVhZEFzRGF0YVVSTCIsIm9ubG9hZCIsImV2ZW50IiwidGFyZ2V0IiwicmVzdWx0IiwiX2NhbmNlbEV2ZW50IiwiX3JlbW92ZUZpbGUiLCJfb25DaGFuZ2UiLCJpY29uIiwicmVuZGVyIiwiY2xhc3NlcyIsInByZXZpZXciLCJfb25QcmV2aWV3RXJyb3IiLCJuYW1lIiwiYmluZCIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsIndpZHRoIiwiaGVpZ2h0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaW1nIiwic3R5bGUiLCJsZWZ0IiwidG9wIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsVUFBZCxFQUEwQkMsSUFBMUIsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQiwyQkFBMUI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsWUFBTixTQUEyQlAsVUFBM0IsQ0FBc0M7QUFDdEIsYUFBVlEsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQURGO0FBRUxDLE1BQUFBLE1BQU0sRUFBRTtBQUFFRixRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FGSDtBQUdMRSxNQUFBQSxNQUFNLEVBQUU7QUFBRUgsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BSEg7QUFJTEcsTUFBQUEsS0FBSyxFQUFFO0FBQUVKLFFBQUFBLElBQUksRUFBRUs7QUFBUixPQUpGO0FBS0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFTixRQUFBQSxJQUFJLEVBQUVPLEtBQVI7QUFBZUMsUUFBQUEsT0FBTyxFQUFFO0FBQXhCLE9BTEY7QUFNTEMsTUFBQUEsUUFBUSxFQUFFO0FBQUVULFFBQUFBLElB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RixZQUEvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgbGluayB9IGZyb20gJy4uL3N0eWxlcy9saW5rJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGlmRGVmaW5lZCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2lmLWRlZmluZWQnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcblxuLyoqXG4gKiBGaWxlIHVwbG9hZFxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1maWxlLXVwbG9hZDpkcm9wIC0gQ3VzdG9tIGV2ZW50IHdoZW4gdXNlciBkcm9wIGZpbGVcbiAqXG4gKiBAYXR0ciB7U3RyaW5nfSBsYWJlbCAtIExhYmVsXG4gKiBAYXR0ciB7U3RyaW5nfSBhY2NlcHQgLSBPbmUgb3IgbW9yZSBmaWxlIHR5cGUgaWRlbnRpZmllcnMgZGVzY3JpYmluZyB0aGUgYXV0aG9yaXplZCBmaWxlIHR5cGVzLlxuICogQGF0dHIge1N0cmluZ30gZXhjZXB0IC0gT25lIG9yIG1vcmUgZmlsZSB0eXBlIGlkZW50aWZpZXJzIGRlc2NyaWJpbmcgdW5hdXRob3JpemVkIGZpbGUgdHlwZXMuXG4gKiBAYXR0ciB7TnVtYmVyfSBsaW1pdCAtIE1heCBzaXplIGxpbWl0IGluIGJ5dGVzLlxuICogQGF0dHIge1N0cmluZ30gdmFsdWUgLSBSZWZsZWN0ZWQgdmFsdWUgb2YgdXBsb2FkZWQgZmlsZVxuICoqL1xuZXhwb3J0IGNsYXNzIEd2RmlsZVVwbG9hZCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgYWNjZXB0OiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgZXhjZXB0OiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBBcnJheSwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgX3ByZXZpZXc6IHsgdHlwZTogU3RyaW5nLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfZmlsZXM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9lcnJvcnM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGxpbmssXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWRhcmssICMyODQ0NGYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSk7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjMjg0NDRmO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLW9mZnNldCAwLjE1cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCAuYm94X19pY29uIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IDVyZW07XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3hfX2ZpbGUge1xuICAgICAgICAgIHdpZHRoOiAwLjFweDtcbiAgICAgICAgICBoZWlnaHQ6IDAuMXB4O1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94X19maWxlICsgbGFiZWwge1xuICAgICAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveC5pcy1kcmFnb3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICMyODQ0NGYpO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBvdXRsaW5lOiAxcHggZGFzaGVkICMyODQ0NGY7XG4gICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCAuYm94X19kcmFnbmRyb3Age1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWxlcyB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAxNnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZmlsZW5hbWUge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgcGFkZGluZzogMC4ycmVtO1xuICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5lcnJvciB7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogcmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaW1hZ2Uge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmV2aWV3IHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94X19pbnB1dCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIH1cblxuICAgICAgICAucHJldmlldyAuYm94X19pbnB1dCB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByZXZpZXc6aG92ZXIgLmJveF9faW5wdXQge1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJldmlldzpob3ZlciBndi1pbWFnZSB7XG4gICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICB0aGlzLl9maWxlcyA9IFtdO1xuICAgIHRoaXMuX2Vycm9ycyA9IFtdO1xuICAgIHRoaXMuX2NvdW50ZXIgPSAwO1xuICB9XG5cbiAgX29uRHJhZ092ZXIoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2NvdW50ZXIrKztcbiAgICBjb25zdCBib3ggPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmJveCcpO1xuICAgIGJveC5jbGFzc0xpc3QuYWRkKCdpcy1kcmFnb3ZlcicpO1xuICB9XG5cbiAgX29uRHJhZ0VuZChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKC0tdGhpcy5fY291bnRlciA9PT0gMCkge1xuICAgICAgY29uc3QgYm94ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5ib3gnKTtcbiAgICAgIGJveC5jbGFzc0xpc3QucmVtb3ZlKCdpcy1kcmFnb3ZlcicpO1xuICAgIH1cbiAgfVxuXG4gIF9vbkRyb3AoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2V0RmlsZXMoZS5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICB9XG5cbiAgX2dldFJlZ2V4KG1pbWVUeXBlcykge1xuICAgIHJldHVybiBgKCR7bWltZVR5cGVzLnRvU3RyaW5nKCkucmVwbGFjZSgnICcsICcnKS5yZXBsYWNlKC8sL2csICcuK3wnKS5yZXBsYWNlKC9cXCovZywgJy4rJykucmVwbGFjZSgnLisuKycsICcuKycpfSlgO1xuICB9XG5cbiAgc2V0RmlsZXMoZmlsZXMpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgICB0aGlzLl9maWxlcyA9IFsuLi5maWxlc10uZmlsdGVyKChmaWxlKSA9PiB7XG4gICAgICBpZiAodGhpcy5hY2NlcHQgJiYgZmlsZS50eXBlLm1hdGNoKHRoaXMuX2dldFJlZ2V4KHRoaXMuYWNjZXB0KSkgPT0gbnVsbCkge1xuICAgICAgICBlcnJvcnMucHVzaCh7IGZpbGUsIGVycm9yOiBpMThuKCdndi1maWxlLXVwbG9hZC5lcnJvci50eXBlTm90QWxsb3dlZCcpIH0pO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4Y2VwdCAmJiBmaWxlLnR5cGUubWF0Y2godGhpcy5fZ2V0UmVnZXgodGhpcy5leGNlcHQpKSAhPSBudWxsKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKHsgZmlsZSwgZXJyb3I6IGkxOG4oJ2d2LWZpbGUtdXBsb2FkLmVycm9yLnR5cGVOb3RBbGxvd2VkJykgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmxpbWl0ICYmIGZpbGUuc2l6ZSA+IHBhcnNlSW50KHRoaXMubGltaXQsIDEwKSkge1xuICAgICAgICBlcnJvcnMucHVzaCh7IGZpbGUsIGVycm9yOiBpMThuKCdndi1maWxlLXVwbG9hZC5lcnJvci5tYXhTaXplJykgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIHRoaXMuX2Vycm9ycyA9IGVycm9ycztcbiAgICBpZiAodGhpcy5fZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2Vycm9yJywgeyBlcnJvcnM6IHRoaXMuX2Vycm9ycyB9KTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2ludmFsaWQnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICAgIH1cbiAgICBjb25zdCBib3ggPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmJveCcpO1xuICAgIGJveC5jbGFzc0xpc3QucmVtb3ZlKCdpcy1kcmFnb3ZlcicpO1xuICAgIGlmICh0aGlzLl9maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlYWRlci5yZWFkQXNEYXRhVVJMKHRoaXMuX2ZpbGVzWzBdKTtcbiAgICAgIHRoaXMucmVhZGVyLm9ubG9hZCA9IChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fZmlsZXNbMF0udHlwZS5tYXRjaCh0aGlzLl9nZXRSZWdleCgnaW1hZ2UvKicpKSkge1xuICAgICAgICAgIHRoaXMuX3ByZXZpZXcgPSBldmVudC50YXJnZXQucmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3ByZXZpZXcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWUgPSBldmVudC50YXJnZXQucmVzdWx0O1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2Ryb3AnLCB7IGZpbGVzOiBbdGhpcy52YWx1ZV0gfSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIF9jYW5jZWxFdmVudChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBfcmVtb3ZlRmlsZSgpIHtcbiAgICB0aGlzLl9lcnJvcnMgPSBbXTtcbiAgICB0aGlzLl9maWxlcyA9IFtdO1xuICAgIHRoaXMuX3ByZXZpZXcgPSBudWxsO1xuICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjZmlsZScpLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBfb25DaGFuZ2UoZSkge1xuICAgIHRoaXMuc2V0RmlsZXMoZS50YXJnZXQuZmlsZXMpO1xuICB9XG5cbiAgZ2V0IGljb24oKSB7XG4gICAgaWYgKHRoaXMuX2ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAnZ2VuZXJhbDpjbGlwJztcbiAgICB9XG4gICAgcmV0dXJuICdnZW5lcmFsOnVwbG9hZCc7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAgdGhpcy5fZXJyb3JzLmxlbmd0aCA+IDAgfHwgdGhpcy5fZmlsZXMubGVuZ3RoID4gMCA/IGkxOG4oJ2d2LWZpbGUtdXBsb2FkLmNob29zZUFub3RoZXJGaWxlJykgOiBpMThuKCdndi1maWxlLXVwbG9hZC5jaG9vc2VGaWxlJyk7XG5cbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgYm94OiB0cnVlLFxuICAgICAgcHJldmlldzogdGhpcy5fcHJldmlldyAhPSBudWxsLFxuICAgIH07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxsYWJlbCBmb3I9XCJmaWxlXCI+JHt0aGlzLmxhYmVsfTwvbGFiZWw+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIlxuICAgICAgICBAZHJvcD1cIiR7dGhpcy5fb25Ecm9wfVwiXG4gICAgICAgIEBvbmRyb3A9XCIke3RoaXMuX29uRHJvcH1cIlxuICAgICAgICBAZHJhZz1cIiR7dGhpcy5fY2FuY2VsRXZlbnR9XCJcbiAgICAgICAgQGRyYWdzdGFydD1cIiR7dGhpcy5fY2FuY2VsRXZlbnR9XCJcbiAgICAgICAgQGRyYWdvdmVyPVwiJHt0aGlzLl9vbkRyYWdPdmVyfVwiXG4gICAgICAgIEBkcmFnZW50ZXI9XCIke3RoaXMuX29uRHJhZ092ZXJ9XCJcbiAgICAgICAgQGRyYWdsZWF2ZT1cIiR7dGhpcy5fb25EcmFnRW5kfVwiXG4gICAgICAgIEBkcmFnZW5kPVwiJHt0aGlzLl9vbkRyYWdFbmR9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9wcmV2aWV3ICE9IG51bGwgPyBodG1sYDxndi1pbWFnZSAuc3JjPVwiJHt0aGlzLl9wcmV2aWV3fVwiIEBlcnJvcj1cIiR7dGhpcy5fb25QcmV2aWV3RXJyb3J9XCI+PC9ndi1pbWFnZT5gIDogJyd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3hfX2lucHV0XCI+XG4gICAgICAgICAgPGd2LWljb24gY2xhc3M9XCJib3hfX2ljb25cIiBzaGFwZT1cIiR7dGhpcy5pY29ufVwiPjwvZ3YtaWNvbj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsZVwiIGNsYXNzPVwibGlua1wiPlxuICAgICAgICAgICAgPHN0cm9uZz4ke2xhYmVsfTwvc3Ryb25nPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3hfX2RyYWduZHJvcFwiPiR7aTE4bignZ3YtZmlsZS11cGxvYWQub3JEcmFnSXQnKX08L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiYm94X19maWxlXCJcbiAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgIG5hbWU9XCJmaWxlc1tdXCJcbiAgICAgICAgICAgIGlkPVwiZmlsZVwiXG4gICAgICAgICAgICBmaWxlcz1cIiR7dGhpcy5maWxlc31cIlxuICAgICAgICAgICAgYWNjZXB0PVwiJHtpZkRlZmluZWQodGhpcy5hY2NlcHQpfVwiXG4gICAgICAgICAgICBAY2hhbmdlPVwiJHt0aGlzLl9vbkNoYW5nZX1cIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICAke3RoaXMuX2ZpbGVzLmxlbmd0aCA+IDBcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVzXCI+XG4gICAgICAgICAgICAgIDxndi1pY29uIHNoYXBlPVwiZ2VuZXJhbDpjbGlwXCI+PC9ndi1pY29uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZW5hbWVcIj4ke3RoaXMuX2ZpbGVzWzBdLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgIDxndi1pY29uIGNsYXNzPVwibGlua1wiIEBjbGljaz1cIiR7dGhpcy5fcmVtb3ZlRmlsZS5iaW5kKHRoaXMsIDApfVwiIHNoYXBlPVwiZ2VuZXJhbDp0cmFzaFwiPjwvZ3YtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGBcbiAgICAgICAgOiAnJ31cbiAgICAgICR7dGhpcy5fZXJyb3JzLmxlbmd0aCA+IDBcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVzXCI+XG4gICAgICAgICAgICAgIDxndi1pY29uIGNsYXNzPVwiZXJyb3JcIiBzaGFwZT1cImNvZGU6c3RvcFwiPjwvZ3YtaWNvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVuYW1lXCI+JHt0aGlzLl9lcnJvcnNbMF0uZmlsZS5uYW1lfSA8c3BhbiBjbGFzcz1cImVycm9yXCI+KCR7dGhpcy5fZXJyb3JzWzBdLmVycm9yfSk8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgXG4gICAgICAgIDogJyd9XG4gICAgICAke3RoaXMudmFsdWUgJiYgdGhpcy5fZmlsZXMubGVuZ3RoID09PSAwICYmIHRoaXMuX2Vycm9ycy5sZW5ndGggPT09IDBcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlbmFtZVwiPjwvZGl2PlxuICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGxpbmsgQGNsaWNrPVwiJHt0aGlzLl9yZW1vdmVGaWxlLmJpbmQodGhpcywgMCl9XCI+JHtpMThuKCdndi1maWxlLXVwbG9hZC5yZW1vdmVQaWN0dXJlJyl9PC9ndi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgXG4gICAgICAgIDogJyd9XG4gICAgYDtcbiAgfVxuXG4gIF9vblByZXZpZXdFcnJvcigpIHtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLl9wcmV2aWV3ID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGVzICYmIHRoaXMuX2ZpbGVzWzBdKSB7XG4gICAgICAgICAgdGhpcy5yZWFkZXIucmVhZEFzRGF0YVVSTCh0aGlzLl9maWxlc1swXSk7XG4gICAgICAgICAgdGhpcy5yZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gZXZlbnQudGFyZ2V0LnJlc3VsdCkge1xuICAgICAgICAgICAgICB0aGlzLl9maWxlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3ByZXZpZXcgPSBudWxsO1xuICAgICAgICB0aGlzLl9maWxlcyA9IFtdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnByZXZpZXcnKTtcbiAgICBpZiAocHJldmlldykge1xuICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBwcmV2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaW1nID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LWltYWdlJyk7XG4gICAgICBpbWcuc3R5bGUud2lkdGggPSB3aWR0aCAtIDIwICsgJ3B4JztcbiAgICAgIGltZy5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgLSAyMCArICdweCc7XG4gICAgICBpbWcuc3R5bGUubGVmdCA9ICcxMHB4JztcbiAgICAgIGltZy5zdHlsZS50b3AgPSAnMTBweCc7XG4gICAgfVxuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWZpbGUtdXBsb2FkJywgR3ZGaWxlVXBsb2FkKTtcbiJdfQ==
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvFileUpload=void 0;const e=require("lit"),i=require("../styles/link"),t=require("../lib/events"),r=require("lit/directives/if-defined"),s=require("../lib/i18n"),l=require("lit/directives/class-map");class o extends e.LitElement{static get properties(){return{label:{type:String},accept:{type:String},except:{type:String},limit:{type:Number},value:{type:Array,reflect:!0},_preview:{type:String,attribute:!1},_files:{type:Array,attribute:!1},_errors:{type:Array,attribute:!1}}}static get styles(){return[i.link,e.css`:host{box-sizing:border-box;display:block;width:100%;color:var(--gv-theme-color-dark,#28444f)}.box{font-size:1.25rem;background-color:var(--gv-theme-neutral-color-lighter,#fafafa);position:relative;padding:2rem;text-align:center;display:block;border:1px dashed #28444f;border-radius:4px;transition:outline-offset .15s ease-in-out,background-color .15s linear;height:100%}.box .box__icon{width:100%;height:80px;display:block;margin-bottom:40px;--gv-icon--s:5rem;--gv-icon--c:var(--gv-theme-color-dark, #28444f)}.box__file{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.box__file+label{max-width:80%;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden}.box.is-dragover{background-color:var(--gv-theme-color-light,#28444f);border:none;outline:1px dashed #28444f;outline-offset:-10px}.box .box__dragndrop{display:inline}.files{box-sizing:border-box;display:flex;align-items:center;--gv-icon--s:16px;padding:1rem .5rem 0}.filename{flex:1;padding:.2rem;word-break:break-all}.error{font-style:italic;--gv-icon--c:red}gv-image{position:absolute}.preview{transition:all .3s ease-in-out}.box__input{position:relative;display:flex;flex-direction:column;justify-content:center;height:100%;z-index:10}.preview .box__input{visibility:hidden}.preview:hover .box__input{visibility:visible}.preview:hover gv-image{opacity:.3}`]}constructor(){super(),this.reader=new FileReader,this._files=[],this._errors=[],this._counter=0}_onDragOver(e){e.preventDefault(),e.stopPropagation(),this._counter++;this.shadowRoot.querySelector(".box").classList.add("is-dragover")}_onDragEnd(e){if(e.preventDefault(),e.stopPropagation(),0==--this._counter){this.shadowRoot.querySelector(".box").classList.remove("is-dragover")}}_onDrop(e){e.preventDefault(),e.stopPropagation(),this.setFiles(e.dataTransfer.files)}_getRegex(e){return`(${e.toString().replace(" ","").replace(/,/g,".+|").replace(/\*/g,".+").replace(".+.+",".+")})`}setFiles(e){const i=[];this._files=[...e].filter((e=>this.accept&&null==e.type.match(this._getRegex(this.accept))||this.except&&null!=e.type.match(this._getRegex(this.except))?(i.push({file:e,error:(0,s.i18n)("gv-file-upload.error.typeNotAllowed")}),!1):!(this.limit&&e.size>parseInt(this.limit,10))||(i.push({file:e,error:(0,s.i18n)("gv-file-upload.error.maxSize")}),!1))),this._errors=i,this._errors.length>0&&((0,t.dispatchCustomEvent)(this,"error",{errors:this._errors}),this.dispatchEvent(new Event("invalid",{bubbles:!0,cancelable:!0})));this.shadowRoot.querySelector(".box").classList.remove("is-dragover"),this._files.length>0&&(this.reader.readAsDataURL(this._files[0]),this.reader.onload=e=>{this._files[0].type.match(this._getRegex("image/*"))?this._preview=e.target.result:this._preview=null,this.value=e.target.result,this.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!0})),(0,t.dispatchCustomEvent)(this,"drop",{files:[this.value]})})}_cancelEvent(e){e.preventDefault(),e.stopPropagation()}_removeFile(){this._errors=[],this._files=[],this._preview=null,this.value=null,this.shadowRoot.querySelector("#file").value=null,this.dispatchEvent(new Event("input",{bubbles:!0,cancelable:!0}))}_onChange(e){this.setFiles(e.target.files)}get icon(){return this._files.length>0?"general:clip":"general:upload"}render(){const i=this._errors.length>0||this._files.length>0?(0,s.i18n)("gv-file-upload.chooseAnotherFile"):(0,s.i18n)("gv-file-upload.chooseFile"),t={box:!0,preview:null!=this._preview};return e.html`<label for="file">${this.label}</label><div class="${(0,l.classMap)(t)}" @drop="${this._onDrop}" @ondrop="${this._onDrop}" @drag="${this._cancelEvent}" @dragstart="${this._cancelEvent}" @dragover="${this._onDragOver}" @dragenter="${this._onDragOver}" @dragleave="${this._onDragEnd}" @dragend="${this._onDragEnd}">${null!=this._preview?e.html`<gv-image .src="${this._preview}" @error="${this._onPreviewError}"></gv-image>`:""}<div class="box__input"><gv-icon class="box__icon" shape="${this.icon}"></gv-icon><label for="file" class="link"><strong>${i}</strong> <span class="box__dragndrop">${(0,s.i18n)("gv-file-upload.orDragIt")}</span></label> <input class="box__file" type="file" name="files[]" id="file" files="${this.files}" accept="${(0,r.ifDefined)(this.accept)}" @change="${this._onChange}"></div></div>${this._files.length>0?e.html`<div class="files"><gv-icon shape="general:clip"></gv-icon><div class="filename">${this._files[0].name}</div><gv-icon class="link" @click="${this._removeFile.bind(this,0)}" shape="general:trash"></gv-icon></div>`:""} ${this._errors.length>0?e.html`<div class="files"><gv-icon class="error" shape="code:stop"></gv-icon><div class="filename">${this._errors[0].file.name} <span class="error">(${this._errors[0].error})</span></div></div>`:""} ${this.value&&0===this._files.length&&0===this._errors.length?e.html`<div class="files"><div class="filename"></div><gv-button link @click="${this._removeFile.bind(this,0)}">${(0,s.i18n)("gv-file-upload.removePicture")}</gv-button></div>`:""}`}_onPreviewError(){this.value=null}updated(e){e.has("value")&&(this.value?(this._preview=this.value,this._files&&this._files[0]&&(this.reader.readAsDataURL(this._files[0]),this.reader.onload=e=>{this.value!==e.target.result&&(this._files=[])})):(this._preview=null,this._files=[]));const i=this.shadowRoot.querySelector(".preview");if(i){const{width:e,height:t}=i.getBoundingClientRect(),r=this.shadowRoot.querySelector("gv-image");r.style.width=e-20+"px",r.style.height=t-20+"px",r.style.left="10px",r.style.top="10px"}}}exports.GvFileUpload=o,window.customElements.define("gv-file-upload",o);
@@ -1,82 +1 @@
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 { css, LitElement, html, noChange } from 'lit';
17
- import { Directive, directive } from 'lit/directive';
18
- import { classMap } from 'lit/directives/class-map';
19
-
20
- class Namespaced extends Directive {
21
- update(part, [namespace, value]) {
22
- part.element.setAttributeNS(namespace, part.name, value);
23
- return noChange;
24
- }
25
-
26
- }
27
-
28
- const namespaced = directive(Namespaced);
29
- /**
30
- * An icon
31
- *
32
- * ## Details
33
- * * has @theme facet
34
- *
35
- * @cssprop {Color} [--gv-icon--c=var(--gv-theme-font-color-dark, #262626)] - Color
36
- * @cssprop {Color} [--gv-icon-opacity--c=var(--gv-theme-font-color-dark, #262626)] - Opacity color
37
- * @cssprop {Length} [--gv-icon--s=32px] - Height and width
38
- */
39
-
40
- export class GvIcon extends LitElement {
41
- static get properties() {
42
- return {
43
- /**
44
- * This is a shape, an concatenation of category name and icon name.
45
- * @type {"{category}:{iconName}"}
46
- * @attr
47
- * @required
48
- */
49
- shape: {
50
- type: String
51
- }
52
- };
53
- }
54
-
55
- static get excludedShapes() {
56
- return ['thirdparty:google', 'thirdparty:graviteeio_am'];
57
- }
58
-
59
- canCustomize() {
60
- return !['thirdparty:google', 'thirdparty:graviteeio_am', 'thirdparty:http', 'thirdparty:jdbc', 'thirdparty:microsoft', 'thirdparty:mongodb'].includes(this.shape);
61
- }
62
-
63
- static get styles() {
64
- return [// language=CSS
65
- css`:host{box-sizing:border-box;display:inline-flex;vertical-align:middle;--color:var(--gv-icon--c, var(--gv-theme-font-color-dark, #262626));--opacity:var(--gv-icon-opacity--c, var(--gv-theme-font-color-dark, #262626));--size:var(--gv-icon--s, 32px)}svg{height:var(--size);width:var(--size);fill:var(--color)}`];
66
- }
67
-
68
- static getHref(shape) {
69
- const [category, icon] = shape.split(':');
70
- return `./icons/${category}.svg#${icon}`;
71
- }
72
-
73
- render() {
74
- const xlinkNamespace = 'http://www.w3.org/1999/xlink';
75
- return html`<svg class="${classMap({
76
- 'no-color': !this.canCustomize()
77
- })}"> <use xlink:href="${namespaced(xlinkNamespace, GvIcon.getHref(this.shape))}"/> </svg>`;
78
- }
79
-
80
- }
81
- window.customElements.define('gv-icon', GvIcon);
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWljb24uanMiXSwibmFtZXMiOlsiY3NzIiwiTGl0RWxlbWVudCIsImh0bWwiLCJub0NoYW5nZSIsIkRpcmVjdGl2ZSIsImRpcmVjdGl2ZSIsImNsYXNzTWFwIiwiTmFtZXNwYWNlZCIsInVwZGF0ZSIsInBhcnQiLCJuYW1lc3BhY2UiLCJ2YWx1ZSIsImVsZW1lbnQiLCJzZXRBdHRyaWJ1dGVOUyIsIm5hbWUiLCJuYW1lc3BhY2VkIiwiR3ZJY29uIiwicHJvcGVydGllcyIsInNoYXBlIiwidHlwZSIsIlN0cmluZyIsImV4Y2x1ZGVkU2hhcGVzIiwiY2FuQ3VzdG9taXplIiwiaW5jbHVkZXMiLCJzdHlsZXMiLCJnZXRIcmVmIiwiY2F0ZWdvcnkiLCJpY29uIiwic3BsaXQiLCJyZW5kZXIiLCJ4bGlua05hbWVzcGFjZSIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsRUFBMEJDLElBQTFCLEVBQWdDQyxRQUFoQyxRQUFnRCxLQUFoRDtBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLFNBQXBCLFFBQXFDLGVBQXJDO0FBRUEsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7O0FBRUEsTUFBTUMsVUFBTixTQUF5QkgsU0FBekIsQ0FBbUM7QUFDakNJLEVBQUFBLE1BQU0sQ0FBQ0MsSUFBRCxFQUFPLENBQUNDLFNBQUQsRUFBWUMsS0FBWixDQUFQLEVBQTJCO0FBQy9CRixJQUFBQSxJQUFJLENBQUNHLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsU0FBNUIsRUFBdUNELElBQUksQ0FBQ0ssSUFBNUMsRUFBa0RILEtBQWxEO0FBQ0EsV0FBT1IsUUFBUDtBQUNEOztBQUpnQzs7QUFPbkMsTUFBTVksVUFBVSxHQUFHVixTQUFTLENBQUNFLFVBQUQsQ0FBNUI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1TLE1BQU4sU0FBcUJmLFVBQXJCLENBQWdDO0FBQ2hCLGFBQVZnQixVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNNQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSO0FBUEYsS0FBUDtBQVNEOztBQUV3QixhQUFkQyxjQUFjLEdBQUc7QUFDMUIsV0FBTyxDQUFDLG1CQUFELEVBQXNCLDBCQUF0QixDQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sQ0FBQyxDQUNOLG1CQURNLEVBRU4sMEJBRk0sRUFHTixpQkFITSxFQUlOLGlCQUpNLEVBS04sc0JBTE0sRUFNTixvQkFOTSxFQU9OQyxRQVBNLENBT0csS0FBS0wsS0FQUixDQUFSO0FBUUQ7O0FBRWdCLGFBQU5NLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0w7QUFDQXhCLElBQUFBLEdBQUcsb1RBRkUsQ0FBUDtBQW1CRDs7QUFFYSxTQUFQeUIsT0FBTyxDQUFDUCxLQUFELEVBQVE7QUFDcEIsVUFBTSxDQUFDUSxRQUFELEVBQVdDLElBQVgsSUFBbUJULEtBQUssQ0FBQ1UsS0FBTixDQUFZLEdBQVosQ0FBekI7QUFDQSxXQUFRLFdBQVVGLFFBQVMsUUFBT0MsSUFBSyxFQUF2QztBQUNEOztBQUVERSxFQUFBQSxNQUFNLEdBQUc7QUFDUCxVQUFNQyxjQUFjLEdBQUcsOEJBQXZCO0FBQ0EsV0FBTzVCLElBQUksZUFBZUksUUFBUSxDQUFDO0FBQUUsa0JBQVksQ0FBQyxLQUFLZ0IsWUFBTDtBQUFmLEtBQUQsQ0FBdkIsdUJBQ1VQLFVBQVUsQ0FBQ2UsY0FBRCxFQUFpQmQsTUFBTSxDQUFDUyxPQUFQLENBQWUsS0FBS1AsS0FBcEIsQ0FBakIsQ0FEcEIsWUFBWDtBQUdEOztBQTVEb0M7QUErRHZDYSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFNBQTdCLEVBQXdDakIsTUFBeEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50LCBodG1sLCBub0NoYW5nZSB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGRpcmVjdGl2ZSB9IGZyb20gJ2xpdC9kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5cbmNsYXNzIE5hbWVzcGFjZWQgZXh0ZW5kcyBEaXJlY3RpdmUge1xuICB1cGRhdGUocGFydCwgW25hbWVzcGFjZSwgdmFsdWVdKSB7XG4gICAgcGFydC5lbGVtZW50LnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZSwgcGFydC5uYW1lLCB2YWx1ZSk7XG4gICAgcmV0dXJuIG5vQ2hhbmdlO1xuICB9XG59XG5cbmNvbnN0IG5hbWVzcGFjZWQgPSBkaXJlY3RpdmUoTmFtZXNwYWNlZCk7XG5cbi8qKlxuICogQW4gaWNvblxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaWNvbi0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWljb24tb3BhY2l0eS0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIE9wYWNpdHkgY29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LWljb24tLXM9MzJweF0gLSBIZWlnaHQgYW5kIHdpZHRoXG4gKi9cbmV4cG9ydCBjbGFzcyBHdkljb24gZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgaXMgYSBzaGFwZSwgYW4gY29uY2F0ZW5hdGlvbiBvZiBjYXRlZ29yeSBuYW1lIGFuZCBpY29uIG5hbWUuXG4gICAgICAgKiBAdHlwZSB7XCJ7Y2F0ZWdvcnl9OntpY29uTmFtZX1cIn1cbiAgICAgICAqIEBhdHRyXG4gICAgICAgKiBAcmVxdWlyZWRcbiAgICAgICAqL1xuICAgICAgc2hhcGU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgZXhjbHVkZWRTaGFwZXMoKSB7XG4gICAgcmV0dXJuIFsndGhpcmRwYXJ0eTpnb29nbGUnLCAndGhpcmRwYXJ0eTpncmF2aXRlZWlvX2FtJ107XG4gIH1cblxuICBjYW5DdXN0b21pemUoKSB7XG4gICAgcmV0dXJuICFbXG4gICAgICAndGhpcmRwYXJ0eTpnb29nbGUnLFxuICAgICAgJ3RoaXJkcGFydHk6Z3Jhdml0ZWVpb19hbScsXG4gICAgICAndGhpcmRwYXJ0eTpodHRwJyxcbiAgICAgICd0aGlyZHBhcnR5OmpkYmMnLFxuICAgICAgJ3RoaXJkcGFydHk6bWljcm9zb2Z0JyxcbiAgICAgICd0aGlyZHBhcnR5Om1vbmdvZGInLFxuICAgIF0uaW5jbHVkZXModGhpcy5zaGFwZSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgLS1jb2xvcjogdmFyKC0tZ3YtaWNvbi0tYywgdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KSk7XG4gICAgICAgICAgLS1vcGFjaXR5OiB2YXIoLS1ndi1pY29uLW9wYWNpdHktLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICAgIC0tc2l6ZTogdmFyKC0tZ3YtaWNvbi0tcywgMzJweCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgIGZpbGw6IHZhcigtLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEhyZWYoc2hhcGUpIHtcbiAgICBjb25zdCBbY2F0ZWdvcnksIGljb25dID0gc2hhcGUuc3BsaXQoJzonKTtcbiAgICByZXR1cm4gYC4vaWNvbnMvJHtjYXRlZ29yeX0uc3ZnIyR7aWNvbn1gO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHhsaW5rTmFtZXNwYWNlID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnO1xuICAgIHJldHVybiBodG1sYDxzdmcgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ25vLWNvbG9yJzogIXRoaXMuY2FuQ3VzdG9taXplKCkgfSl9XCI+XG4gICAgICA8dXNlIHhsaW5rOmhyZWY9XCIke25hbWVzcGFjZWQoeGxpbmtOYW1lc3BhY2UsIEd2SWNvbi5nZXRIcmVmKHRoaXMuc2hhcGUpKX1cIiAvPlxuICAgIDwvc3ZnPmA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtaWNvbicsIEd2SWNvbik7XG4iXX0=
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvIcon=void 0;const e=require("lit"),t=require("lit/directive"),r=require("lit/directives/class-map");class i extends t.Directive{update(t,[r,i]){return t.element.setAttributeNS(r,t.name,i),e.noChange}}const s=(0,t.directive)(i);class o extends e.LitElement{static get properties(){return{shape:{type:String}}}static get excludedShapes(){return["thirdparty:google","thirdparty:graviteeio_am"]}canCustomize(){return!["thirdparty:google","thirdparty:graviteeio_am","thirdparty:http","thirdparty:jdbc","thirdparty:microsoft","thirdparty:mongodb"].includes(this.shape)}static get styles(){return[e.css`:host{box-sizing:border-box;display:inline-flex;vertical-align:middle;--color:var(--gv-icon--c, var(--gv-theme-font-color-dark, #262626));--opacity:var(--gv-icon-opacity--c, var(--gv-theme-font-color-dark, #262626));--size:var(--gv-icon--s, 32px)}svg{height:var(--size);width:var(--size);fill:var(--color)}`]}static getHref(e){const[t,r]=e.split(":");return`./icons/${t}.svg#${r}`}render(){return e.html`<svg class="${(0,r.classMap)({"no-color":!this.canCustomize()})}"><use xlink:href="${s("http://www.w3.org/1999/xlink",o.getHref(this.shape))}"/></svg>`}}exports.GvIcon=o,window.customElements.define("gv-icon",o);
@@ -1,109 +1 @@
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 { LitElement, html, css } from 'lit';
17
- import { dispatchCustomEvent } from '../lib/events';
18
- import { classMap } from 'lit/directives/class-map';
19
- import { ifDefined } from 'lit/directives/if-defined';
20
- import { skeleton } from '../styles/skeleton';
21
- /**
22
- * An image
23
- *
24
- * ## Details
25
- * * has @theme facet
26
- *
27
- * @fires gv-image:loaded - When image is loaded
28
- *
29
- * @attr {String} src - Source of img
30
- * @attr {String} alt - Alternative text of img
31
- * @attr {Boolean} skeleton - enable skeleton screen UI pattern (loading hint)
32
- *
33
- * @cssprop {String} [--gv-image--of=cover] - set the object-fit of image
34
- */
35
-
36
- export class GvImage extends LitElement {
37
- static get properties() {
38
- return {
39
- src: {
40
- type: String
41
- },
42
- skeleton: {
43
- type: Boolean,
44
- reflect: true
45
- },
46
- alt: {
47
- type: String
48
- },
49
- _loaded: {
50
- type: Boolean,
51
- reflect: true
52
- },
53
- _error: {
54
- type: Boolean
55
- }
56
- };
57
- }
58
-
59
- static get styles() {
60
- return [// language=CSS
61
- css`:host{display:inline-block;overflow:hidden}.wrapper,img{height:100%;width:100%;transition:opacity .3s ease-in-out}.wrapper{align-items:center;display:flex;justify-content:center;position:relative}.wrapper.text:not('.skeleton'){background-color:var(--gv-theme-neutral-color)}img{display:block;object-fit:var(--gv-image--of,cover);object-position:center center;opacity:0;position:absolute;top:0;transition:opacity 150ms ease-in-out;left:0}.wrapper.loaded img{opacity:1}.error-msg{font-size:.9rem;overflow:hidden;padding:.25rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}`, skeleton];
62
- }
63
-
64
- constructor() {
65
- super();
66
- this.skeleton = false;
67
- this._error = false;
68
- this._loaded = false;
69
- }
70
-
71
- set src(newVal) {
72
- const oldVal = this._src;
73
- this._src = newVal;
74
- this.requestUpdate('src', oldVal);
75
- this._error = false;
76
- this._loaded = false;
77
- }
78
-
79
- get src() {
80
- return this._src;
81
- }
82
-
83
- _onLoad(e) {
84
- this._loaded = true;
85
- this.skeleton = false;
86
- dispatchCustomEvent(this, 'loaded', {
87
- src: this.src,
88
- alt: this.alt
89
- });
90
- }
91
-
92
- _onError(e) {
93
- this._error = true;
94
- this.skeleton = false;
95
- this.dispatchEvent(new Event('error'), e);
96
- }
97
-
98
- render() {
99
- const displayText = this.src == null || this._error;
100
- return html` <div class="wrapper ${classMap({
101
- skeleton: this.skeleton,
102
- loaded: this._loaded,
103
- text: displayText
104
- })}"> <img src="${ifDefined(this.src)}" @load="${this._onLoad}" @error="${this._onError}" alt=""> ${displayText ? html` <div class="error-msg">${this.alt}</div> ` : ''} </div> `;
105
- }
106
-
107
- }
108
- window.customElements.define('gv-image', GvImage);
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWltYWdlLmpzIl0sIm5hbWVzIjpbIkxpdEVsZW1lbnQiLCJodG1sIiwiY3NzIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImNsYXNzTWFwIiwiaWZEZWZpbmVkIiwic2tlbGV0b24iLCJHdkltYWdlIiwicHJvcGVydGllcyIsInNyYyIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwicmVmbGVjdCIsImFsdCIsIl9sb2FkZWQiLCJfZXJyb3IiLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsIm5ld1ZhbCIsIm9sZFZhbCIsIl9zcmMiLCJyZXF1ZXN0VXBkYXRlIiwiX29uTG9hZCIsImUiLCJfb25FcnJvciIsImRpc3BhdGNoRXZlbnQiLCJFdmVudCIsInJlbmRlciIsImRpc3BsYXlUZXh0IiwibG9hZGVkIiwidGV4dCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQiwyQkFBMUI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxPQUFOLFNBQXNCUCxVQUF0QixDQUFpQztBQUNqQixhQUFWUSxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxHQUFHLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREE7QUFFTEwsTUFBQUEsUUFBUSxFQUFFO0FBQUVJLFFBQUFBLElBQUksRUFBRUUsT0FBUjtBQUFpQkMsUUFBQUEsT0FBTyxFQUFFO0FBQTFCLE9BRkw7QUFHTEMsTUFBQUEsR0FBRyxFQUFFO0FBQUVKLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUhBO0FBSUxJLE1BQUFBLE9BQU8sRUFBRTtBQUFFTCxRQUFBQSxJQUFJLEVBQUVFLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUpKO0FBS0xHLE1BQUFBLE1BQU0sRUFBRTtBQUFFTixRQUFBQSxJQUFJLEVBQUVFO0FBQVI7QUFMSCxLQUFQO0FBT0Q7O0FBRWdCLGFBQU5LLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0w7QUFDQWYsSUFBQUEsR0FBRywya0JBRkUsRUFrRExJLFFBbERLLENBQVA7QUFvREQ7O0FBRURZLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0EsU0FBS1osUUFBTCxHQUFnQixLQUFoQjtBQUNBLFNBQUtVLE1BQUwsR0FBYyxLQUFkO0FBQ0EsU0FBS0QsT0FBTCxHQUFlLEtBQWY7QUFDRDs7QUFFTSxNQUFITixHQUFHLENBQUNVLE1BQUQsRUFBUztBQUNkLFVBQU1DLE1BQU0sR0FBRyxLQUFLQyxJQUFwQjtBQUNBLFNBQUtBLElBQUwsR0FBWUYsTUFBWjtBQUNBLFNBQUtHLGFBQUwsQ0FBbUIsS0FBbkIsRUFBMEJGLE1BQTFCO0FBQ0EsU0FBS0osTUFBTCxHQUFjLEtBQWQ7QUFDQSxTQUFLRCxPQUFMLEdBQWUsS0FBZjtBQUNEOztBQUVNLE1BQUhOLEdBQUcsR0FBRztBQUNSLFdBQU8sS0FBS1ksSUFBWjtBQUNEOztBQUVERSxFQUFBQSxPQUFPLENBQUNDLENBQUQsRUFBSTtBQUNULFNBQUtULE9BQUwsR0FBZSxJQUFmO0FBQ0EsU0FBS1QsUUFBTCxHQUFnQixLQUFoQjtBQUNBSCxJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQjtBQUFFTSxNQUFBQSxHQUFHLEVBQUUsS0FBS0EsR0FBWjtBQUFpQkssTUFBQUEsR0FBRyxFQUFFLEtBQUtBO0FBQTNCLEtBQWpCLENBQW5CO0FBQ0Q7O0FBRURXLEVBQUFBLFFBQVEsQ0FBQ0QsQ0FBRCxFQUFJO0FBQ1YsU0FBS1IsTUFBTCxHQUFjLElBQWQ7QUFDQSxTQUFLVixRQUFMLEdBQWdCLEtBQWhCO0FBQ0EsU0FBS29CLGFBQUwsQ0FBbUIsSUFBSUMsS0FBSixDQUFVLE9BQVYsQ0FBbkIsRUFBdUNILENBQXZDO0FBQ0Q7O0FBRURJLEVBQUFBLE1BQU0sR0FBRztBQUNQLFVBQU1DLFdBQVcsR0FBRyxLQUFLcEIsR0FBTCxJQUFZLElBQVosSUFBb0IsS0FBS08sTUFBN0M7QUFDQSxXQUFPZixJQUFJLHdCQUNhRyxRQUFRLENBQUM7QUFBRUUsTUFBQUEsUUFBUSxFQUFFLEtBQUtBLFFBQWpCO0FBQTJCd0IsTUFBQUEsTUFBTSxFQUFFLEtBQUtmLE9BQXhDO0FBQWlEZ0IsTUFBQUEsSUFBSSxFQUFFRjtBQUF2RCxLQUFELENBRHJCLGdCQUVJeEIsU0FBUyxDQUFDLEtBQUtJLEdBQU4sQ0FGYixZQUVpQyxLQUFLYyxPQUZ0QyxhQUV3RCxLQUFLRSxRQUY3RCxhQUdMSSxXQUFXLEdBQUc1QixJQUFJLDJCQUEyQixLQUFLYSxHQUFoQyxTQUFQLEdBQXNELEVBSDVELFVBQVg7QUFNRDs7QUF6R3FDO0FBNEd4Q2tCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUMzQixPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgaWZEZWZpbmVkIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvaWYtZGVmaW5lZCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5cbi8qKlxuICogQW4gaW1hZ2VcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtaW1hZ2U6bG9hZGVkIC0gV2hlbiBpbWFnZSBpcyBsb2FkZWRcbiAqXG4gKiBAYXR0ciB7U3RyaW5nfSBzcmMgLSBTb3VyY2Ugb2YgaW1nXG4gKiBAYXR0ciB7U3RyaW5nfSBhbHQgLSBBbHRlcm5hdGl2ZSB0ZXh0IG9mIGltZ1xuICogQGF0dHIge0Jvb2xlYW59IHNrZWxldG9uIC0gZW5hYmxlIHNrZWxldG9uIHNjcmVlbiBVSSBwYXR0ZXJuIChsb2FkaW5nIGhpbnQpXG4gKlxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtaW1hZ2UtLW9mPWNvdmVyXSAtIHNldCB0aGUgb2JqZWN0LWZpdCBvZiBpbWFnZVxuICovXG5leHBvcnQgY2xhc3MgR3ZJbWFnZSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNyYzogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGFsdDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIF9sb2FkZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgX2Vycm9yOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAud3JhcHBlcixcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLndyYXBwZXIge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAud3JhcHBlci50ZXh0Om5vdCgnLnNrZWxldG9uJykge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBvYmplY3QtZml0OiB2YXIoLS1ndi1pbWFnZS0tb2YsIGNvdmVyKTtcbiAgICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53cmFwcGVyLmxvYWRlZCBpbWcge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZXJyb3ItbXNnIHtcbiAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNrZWxldG9uID0gZmFsc2U7XG4gICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLl9sb2FkZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHNldCBzcmMobmV3VmFsKSB7XG4gICAgY29uc3Qgb2xkVmFsID0gdGhpcy5fc3JjO1xuICAgIHRoaXMuX3NyYyA9IG5ld1ZhbDtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3NyYycsIG9sZFZhbCk7XG4gICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLl9sb2FkZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGdldCBzcmMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NyYztcbiAgfVxuXG4gIF9vbkxvYWQoZSkge1xuICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5za2VsZXRvbiA9IGZhbHNlO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2xvYWRlZCcsIHsgc3JjOiB0aGlzLnNyYywgYWx0OiB0aGlzLmFsdCB9KTtcbiAgfVxuXG4gIF9vbkVycm9yKGUpIHtcbiAgICB0aGlzLl9lcnJvciA9IHRydWU7XG4gICAgdGhpcy5za2VsZXRvbiA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Vycm9yJyksIGUpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGRpc3BsYXlUZXh0ID0gdGhpcy5zcmMgPT0gbnVsbCB8fCB0aGlzLl9lcnJvcjtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyICR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5za2VsZXRvbiwgbG9hZGVkOiB0aGlzLl9sb2FkZWQsIHRleHQ6IGRpc3BsYXlUZXh0IH0pfVwiPlxuICAgICAgICA8aW1nIHNyYz0ke2lmRGVmaW5lZCh0aGlzLnNyYyl9IEBsb2FkPSR7dGhpcy5fb25Mb2FkfSBAZXJyb3I9JHt0aGlzLl9vbkVycm9yfSBhbHQ9XCJcIiAvPlxuICAgICAgICAke2Rpc3BsYXlUZXh0ID8gaHRtbGAgPGRpdiBjbGFzcz1cImVycm9yLW1zZ1wiPiR7dGhpcy5hbHR9PC9kaXY+IGAgOiAnJ31cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtaW1hZ2UnLCBHdkltYWdlKTtcbiJdfQ==
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvImage=void 0;const e=require("lit"),t=require("../lib/events"),r=require("lit/directives/class-map"),s=require("lit/directives/if-defined"),i=require("../styles/skeleton");class o extends e.LitElement{static get properties(){return{src:{type:String},skeleton:{type:Boolean,reflect:!0},alt:{type:String},_loaded:{type:Boolean,reflect:!0},_error:{type:Boolean}}}static get styles(){return[e.css`:host{display:inline-block;overflow:hidden}.wrapper,img{height:100%;width:100%;transition:opacity .3s ease-in-out}.wrapper{align-items:center;display:flex;justify-content:center;position:relative}.wrapper.text:not('.skeleton'){background-color:var(--gv-theme-neutral-color)}img{display:block;object-fit:var(--gv-image--of,cover);object-position:center center;opacity:0;position:absolute;top:0;transition:opacity 150ms ease-in-out;left:0}.wrapper.loaded img{opacity:1}.error-msg{font-size:.9rem;overflow:hidden;padding:.25rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}`,i.skeleton]}constructor(){super(),this.skeleton=!1,this._error=!1,this._loaded=!1}set src(e){const t=this._src;this._src=e,this.requestUpdate("src",t),this._error=!1,this._loaded=!1}get src(){return this._src}_onLoad(e){this._loaded=!0,this.skeleton=!1,(0,t.dispatchCustomEvent)(this,"loaded",{src:this.src,alt:this.alt})}_onError(e){this._error=!0,this.skeleton=!1,this.dispatchEvent(new Event("error"),e)}render(){const t=null==this.src||this._error;return e.html`<div class="wrapper ${(0,r.classMap)({skeleton:this.skeleton,loaded:this._loaded,text:t})}"><img src="${(0,s.ifDefined)(this.src)}" @load="${this._onLoad}" @error="${this._onError}" alt=""> ${t?e.html`<div class="error-msg">${this.alt}</div>`:""}</div>`}}exports.GvImage=o,window.customElements.define("gv-image",o);
@@ -1,59 +1 @@
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 { css, LitElement, html } from 'lit';
17
- import '../atoms/gv-icon';
18
- /**
19
- * Input message component
20
- *
21
- * @attr {String} level - level of message ['info', 'error', 'warning']
22
- */
23
-
24
- export class GvInputMessage extends LitElement {
25
- static get properties() {
26
- return {
27
- level: {
28
- type: String
29
- },
30
- _level: {
31
- type: String,
32
- attribute: false
33
- }
34
- };
35
- }
36
-
37
- constructor() {
38
- super();
39
- this._level = 'warning';
40
- }
41
-
42
- set level(level) {
43
- if (['error', 'info', 'warning'].includes(level)) {
44
- this._level = level;
45
- }
46
- }
47
-
48
- render() {
49
- return html`<div class="box"><gv-icon class="${this._level}" shape="code:${this._level}"></gv-icon><slot></slot></div>`;
50
- }
51
-
52
- static get styles() {
53
- return [// language=CSS
54
- css`:host{box-sizing:border-box;display:block;margin:.2rem}.box{display:flex;align-items:center;white-space:normal}gv-icon{margin:0 .2rem;--gv-icon--s:24px}gv-icon.warning{--gv-icon-opacity--c:var(--gv-theme-color-warning, #ff9800)}gv-icon.error{--gv-icon-opacity--c:var(--gv-theme-color-error, #f44336)}gv-icon.info{--gv-icon-opacity--c:var(--gv-theme-color-info, #2196f3)}`];
55
- }
56
-
57
- }
58
- window.customElements.define('gv-input-message', GvInputMessage);
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWlucHV0LW1lc3NhZ2UuanMiXSwibmFtZXMiOlsiY3NzIiwiTGl0RWxlbWVudCIsImh0bWwiLCJHdklucHV0TWVzc2FnZSIsInByb3BlcnRpZXMiLCJsZXZlbCIsInR5cGUiLCJTdHJpbmciLCJfbGV2ZWwiLCJhdHRyaWJ1dGUiLCJjb25zdHJ1Y3RvciIsImluY2x1ZGVzIiwicmVuZGVyIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsVUFBZCxFQUEwQkMsSUFBMUIsUUFBc0MsS0FBdEM7QUFDQSxPQUFPLGtCQUFQO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGNBQU4sU0FBNkJGLFVBQTdCLENBQXdDO0FBQ3hCLGFBQVZHLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FERjtBQUVMQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUYsUUFBQUEsSUFBSSxFQUFFQyxNQUFSO0FBQWdCRSxRQUFBQSxTQUFTLEVBQUU7QUFBM0I7QUFGSCxLQUFQO0FBSUQ7O0FBRURDLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0EsU0FBS0YsTUFBTCxHQUFjLFNBQWQ7QUFDRDs7QUFFUSxNQUFMSCxLQUFLLENBQUNBLEtBQUQsRUFBUTtBQUNmLFFBQUksQ0FBQyxPQUFELEVBQVUsTUFBVixFQUFrQixTQUFsQixFQUE2Qk0sUUFBN0IsQ0FBc0NOLEtBQXRDLENBQUosRUFBa0Q7QUFDaEQsV0FBS0csTUFBTCxHQUFjSCxLQUFkO0FBQ0Q7QUFDRjs7QUFFRE8sRUFBQUEsTUFBTSxHQUFHO0FBQ1AsV0FBT1YsSUFBSSxvQ0FBb0MsS0FBS00sTUFBekMsaUJBQWdFLEtBQUtBLE1BQXJFLGlDQUFYO0FBQ0Q7O0FBRWdCLGFBQU5LLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0w7QUFDQWIsSUFBQUEsR0FBRyxvWEFGRSxDQUFQO0FBaUNEOztBQXpENEM7QUE0RC9DYyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLGtCQUE3QixFQUFpRGIsY0FBakQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50LCBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaWNvbic7XG5cbi8qKlxuICogSW5wdXQgbWVzc2FnZSBjb21wb25lbnRcbiAqXG4gKiBAYXR0ciB7U3RyaW5nfSBsZXZlbCAtIGxldmVsIG9mIG1lc3NhZ2UgWydpbmZvJywgJ2Vycm9yJywgJ3dhcm5pbmcnXVxuICovXG5leHBvcnQgY2xhc3MgR3ZJbnB1dE1lc3NhZ2UgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsZXZlbDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIF9sZXZlbDogeyB0eXBlOiBTdHJpbmcsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9sZXZlbCA9ICd3YXJuaW5nJztcbiAgfVxuXG4gIHNldCBsZXZlbChsZXZlbCkge1xuICAgIGlmIChbJ2Vycm9yJywgJ2luZm8nLCAnd2FybmluZyddLmluY2x1ZGVzKGxldmVsKSkge1xuICAgICAgdGhpcy5fbGV2ZWwgPSBsZXZlbDtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImJveFwiPjxndi1pY29uIGNsYXNzPVwiJHt0aGlzLl9sZXZlbH1cIiBzaGFwZT1cImNvZGU6JHt0aGlzLl9sZXZlbH1cIj48L2d2LWljb24+PHNsb3Q+PC9zbG90PjwvZGl2PmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pY29uIHtcbiAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ud2FybmluZyB7XG4gICAgICAgICAgLS1ndi1pY29uLW9wYWNpdHktLWM6IHZhcigtLWd2LXRoZW1lLWNvbG9yLXdhcm5pbmcsICNmZjk4MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbi5lcnJvciB7XG4gICAgICAgICAgLS1ndi1pY29uLW9wYWNpdHktLWM6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWVycm9yLCAjZjQ0MzM2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24uaW5mbyB7XG4gICAgICAgICAgLS1ndi1pY29uLW9wYWNpdHktLWM6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWluZm8sICMyMTk2ZjMpO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtaW5wdXQtbWVzc2FnZScsIEd2SW5wdXRNZXNzYWdlKTtcbiJdfQ==
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvInputMessage=void 0;const e=require("lit");require("../atoms/gv-icon");class t extends e.LitElement{static get properties(){return{level:{type:String},_level:{type:String,attribute:!1}}}constructor(){super(),this._level="warning"}set level(e){["error","info","warning"].includes(e)&&(this._level=e)}render(){return e.html`<div class="box"><gv-icon class="${this._level}" shape="code:${this._level}"></gv-icon><slot></slot></div>`}static get styles(){return[e.css`:host{box-sizing:border-box;display:block;margin:.2rem}.box{display:flex;align-items:center;white-space:normal}gv-icon{margin:0 .2rem;--gv-icon--s:24px}gv-icon.warning{--gv-icon-opacity--c:var(--gv-theme-color-warning, #ff9800)}gv-icon.error{--gv-icon-opacity--c:var(--gv-theme-color-error, #f44336)}gv-icon.info{--gv-icon-opacity--c:var(--gv-theme-color-info, #2196f3)}`]}}exports.GvInputMessage=t,window.customElements.define("gv-input-message",t);