@gravitee/ui-components 3.25.3-typescript-fdacf14 → 3.25.3-typescript-493e1dd

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 +5 -13
  2. package/src/atoms/gv-autocomplete.js +422 -1
  3. package/src/atoms/gv-button.js +397 -1
  4. package/src/atoms/gv-checkbox.js +178 -1
  5. package/src/atoms/gv-date-picker-calendar.js +812 -1
  6. package/src/atoms/gv-date-picker-cell.js +174 -1
  7. package/src/atoms/gv-date-picker.js +638 -1
  8. package/src/atoms/gv-file-upload.js +348 -1
  9. package/src/atoms/gv-icon.js +93 -1
  10. package/src/atoms/gv-image.js +135 -1
  11. package/src/atoms/gv-input-message.js +78 -1
  12. package/src/atoms/gv-input.js +508 -1
  13. package/src/atoms/gv-link.js +204 -1
  14. package/src/atoms/gv-message.js +133 -1
  15. package/src/atoms/gv-metric.js +112 -1
  16. package/src/atoms/gv-relative-time.js +143 -1
  17. package/src/atoms/gv-select-native.js +363 -1
  18. package/src/atoms/gv-select.js +413 -1
  19. package/src/atoms/gv-spinner.js +54 -1
  20. package/src/atoms/gv-state.js +125 -1
  21. package/src/atoms/gv-switch.js +235 -1
  22. package/src/atoms/gv-tag.js +162 -1
  23. package/src/atoms/gv-text.js +160 -1
  24. package/src/charts/gv-chart-bar.js +101 -1
  25. package/src/charts/gv-chart-gauge.js +92 -1
  26. package/src/charts/gv-chart-histogram.js +78 -1
  27. package/src/charts/gv-chart-line.js +218 -1
  28. package/src/charts/gv-chart-map.js +111 -1
  29. package/src/charts/gv-chart-pie.js +89 -1
  30. package/src/index.js +77 -1
  31. package/src/lib/cron-expression.js +176 -1
  32. package/src/lib/date.js +43 -1
  33. package/src/lib/events.js +26 -1
  34. package/src/lib/http-client-schema-form.js +67 -1
  35. package/src/lib/http.js +237 -1
  36. package/src/lib/i18n.js +93 -1
  37. package/src/lib/item.js +110 -1
  38. package/src/lib/properties.js +171 -1
  39. package/src/lib/schema-form.js +39 -1
  40. package/src/lib/studio.js +144 -1
  41. package/src/lib/style.js +39 -1
  42. package/src/lib/text-format.js +65 -1
  43. package/src/lib/theme.js +60 -1
  44. package/src/lib/utils.js +106 -1
  45. package/src/mixins/chart-element.js +153 -1
  46. package/src/mixins/input-element.js +136 -1
  47. package/src/mixins/item-resource.js +102 -1
  48. package/src/mixins/keyboard-element.js +62 -1
  49. package/src/mixins/update-after-browser.js +30 -1
  50. package/src/mixins/with-resize-observer.js +62 -1
  51. package/src/mixins/with-skeleton-attribute.js +109 -1
  52. package/src/molecules/gv-card-full.js +209 -1
  53. package/src/molecules/gv-card-list.js +101 -1
  54. package/src/molecules/gv-card.js +130 -1
  55. package/src/molecules/gv-category-list.js +56 -1
  56. package/src/molecules/gv-category.js +163 -1
  57. package/src/molecules/gv-code.js +334 -1
  58. package/src/molecules/gv-confirm.js +175 -1
  59. package/src/molecules/gv-cron-editor.js +685 -1
  60. package/src/molecules/gv-dropdown-menu.js +108 -1
  61. package/src/molecules/gv-expandable.js +116 -1
  62. package/src/molecules/gv-expression-language.js +263 -1
  63. package/src/molecules/gv-identity-picture.js +139 -1
  64. package/src/molecules/gv-list.js +214 -1
  65. package/src/molecules/gv-metrics.js +147 -1
  66. package/src/molecules/gv-modal.js +203 -1
  67. package/src/molecules/gv-nav.js +180 -1
  68. package/src/molecules/gv-option.js +230 -1
  69. package/src/molecules/gv-plans.js +400 -1
  70. package/src/molecules/gv-popover.js +323 -1
  71. package/src/molecules/gv-promote.js +203 -1
  72. package/src/molecules/gv-rating-list.js +341 -1
  73. package/src/molecules/gv-rating.js +234 -1
  74. package/src/molecules/gv-row-expandable.js +42 -1
  75. package/src/molecules/gv-row.js +205 -1
  76. package/src/molecules/gv-stats.js +110 -1
  77. package/src/molecules/gv-stepper.js +274 -1
  78. package/src/molecules/gv-table.js +644 -1
  79. package/src/molecules/gv-tree.js +238 -1
  80. package/src/organisms/gv-documentation.js +205 -1
  81. package/src/organisms/gv-header.js +276 -1
  82. package/src/organisms/gv-http-client.js +258 -1
  83. package/src/organisms/gv-menu.js +258 -1
  84. package/src/organisms/gv-newsletter-subscription.js +258 -1
  85. package/src/organisms/gv-pagination.js +179 -1
  86. package/src/organisms/gv-properties.js +860 -1
  87. package/src/organisms/gv-resizable-views.js +371 -1
  88. package/src/organisms/gv-resources.js +496 -1
  89. package/src/organisms/gv-schema-form-array.js +237 -1
  90. package/src/organisms/gv-schema-form-control-object.js +141 -1
  91. package/src/organisms/gv-schema-form-control.js +419 -1
  92. package/src/organisms/gv-schema-form.js +700 -1
  93. package/src/organisms/gv-tabs.js +201 -1
  94. package/src/organisms/gv-user-menu.js +298 -1
  95. package/src/organisms/gv-vertical-menu.js +119 -1
  96. package/src/policy-studio/gv-flow-step.js +443 -1
  97. package/src/policy-studio/gv-flow.js +595 -1
  98. package/src/policy-studio/gv-policy-studio-menu.js +689 -1
  99. package/src/policy-studio/gv-policy-studio.js +1712 -1
  100. package/src/styles/empty.js +35 -1
  101. package/src/styles/input.js +262 -1
  102. package/src/styles/link.js +31 -1
  103. package/src/styles/shapes.js +17 -1
  104. package/src/styles/skeleton.js +52 -1
  105. package/src/styles/zoom.js +39 -1
  106. package/src/theme/gv-theme.js +197 -1
  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 +1,235 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvSwitch=void 0;const e=require("lit/directives/class-map"),t=require("lit/directives/if-defined"),i=require("lit"),s=require("../styles/skeleton"),l=require("../lib/events");class o extends i.LitElement{static get properties(){return{disabled:{type:Boolean,reflect:!0},skeleton:{type:Boolean},value:{type:String,reflect:!0},label:{type:String},description:{type:String},small:{type:Boolean,reflect:!0},checked:{type:Boolean,reflect:!0},readonly:{type:Boolean,reflect:!0}}}static get styles(){return[s.skeleton,i.css`:host{--off-bgc:var(--gv-switch-off--bgc, var(--gv-theme-neutral-color-dark, #bfbfbf));--on-bgc:var(--gv-switch-on--bgc, var(--gv-theme-color, #5a7684));box-sizing:border-box;margin:.2rem}.container{display:flex}.labels{display:flex;flex-direction:column;justify-content:center;flex:1;margin-right:.4rem;box-sizing:border-box;text-align:var(--gv-switch--ta,left)}.switch-title{font-weight:600}.switch-description{opacity:.6}.switch-container{display:flex;align-items:center}.switch{position:relative;width:40px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-radius:16px}:host([small]) .switch{width:25px}:host([small]) .switch-label:before{width:10px;border-radius:10px;right:10px}:host([small]) .switch-label{height:10px;line-height:10px;border-radius:10px}:host([small]) .switch-title{font-weight:400;font-size:11px}.switch input{display:none}.switch-label{display:block;overflow:hidden;cursor:pointer;height:16px;padding:0;line-height:16px;border:2px solid transparent;border-radius:16px;background-color:var(--off-bgc);transition:background-color .3s ease-in}.switch-label:before{content:'';display:block;width:16px;margin:0;background:var(--gv-switch--bgc,var(--gv-theme-neutral-color-lightest,#fff));position:absolute;top:0;bottom:0;right:20px;border:2px solid var(--off-bgc);border-radius:16px;transition:all .3s ease-in 0s}:host([checked]) .switch-label{background-color:var(--on-bgc)}:host([checked]) .switch-label,:host([checked]) .switch-label:before{border-color:var(--on-bgc)}:host([checked]) .switch-label:before{right:0}:host([disabled]) .switch-label,:host([readonly]) .switch-label{cursor:default}:host([disabled]) .switch-label{opacity:.5}`]}constructor(){super(),this._id="gv-id",this.checked=!1}_onInput(){this.disabled||this.skeleton||this.readonly||(this.value=!this.checked,(0,l.dispatchCustomEvent)(this,"input",this.value))}updated(e){super.updated(e),e.has("value")&&(null!=this.value&&"true"===this.value.toString()?this.checked=!0:this.checked=!1)}render(){const s={skeleton:this.skeleton,disabled:this.disabled,small:this.small,switch:!0};return i.html`<div class="container">${this.label||this.description?i.html`<div class="${(0,e.classMap)({labels:!0,skeleton:this.skeleton})}">${this.label?i.html`<label class="switch-title">${this.label}</label>`:""} ${this.description?i.html`<label class="switch-description" .innerHTML="${this.description}"></label>`:""}</div>`:""}<div class="switch-container"><div class="${(0,e.classMap)(s)}"><input id="${this._id}" type="checkbox" .title="${(0,t.ifDefined)(this.label||this.description)}" ?disabled="${this.disabled||this.skeleton}" ?readonly="${this.readonly}" ?checked="${this.checked}" @input="${this._onInput}"> <label class="switch-label" for="${this._id}"></label></div></div></div>`}}exports.GvSwitch=o,window.customElements.define("gv-switch",o);
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 { classMap } from 'lit/directives/class-map';
17
+ import { ifDefined } from 'lit/directives/if-defined';
18
+ import { LitElement, html, css } from 'lit';
19
+ import { skeleton } from '../styles/skeleton';
20
+ import { dispatchCustomEvent } from '../lib/events';
21
+ /**
22
+ * A wrapper of a <switch> component.
23
+ *
24
+ * ## Details
25
+ * * has @theme facet
26
+ *
27
+ * @fires gv-switch:input - mirrors native input events with the `value` on `detail`
28
+ *
29
+ * @attr {Boolean} disabled - same as native switch element `disabled` attribute
30
+ * @attr {Boolean} skeleton - enable skeleton screen UI pattern (loading hint)
31
+ * @attr {Boolean|String} value - true if the switch is checked, false otherwise
32
+ * @attr {String} label - label of the switch
33
+ * @attr {String} description - description of the switch
34
+ * @attr {Boolean} checked - same as native switch element `checked` attribute
35
+ * @attr {Boolean} readonly - true if readonly
36
+ *
37
+ * @cssprop {Color} [--gv-switch-on--bgc=var(--gv-theme-color, #5a7684)] - On background color
38
+ * @cssprop {Color} [--gv-switch-off--bgc=var(--gv-theme-neutral-color-dark, #bfbfbf)] - Off background color
39
+ * @cssprop {Color} [--gv-switch--bgc=var(--gv-theme-neutral-color-lightest, #ffffff)] - Switch background color
40
+ * @cssprop {String} [--gv-switch--ta=left] - Switch label text alignment
41
+ */
42
+ export class GvSwitch extends LitElement {
43
+ static get properties() {
44
+ return {
45
+ disabled: { type: Boolean, reflect: true },
46
+ skeleton: { type: Boolean },
47
+ value: { type: String, reflect: true },
48
+ label: { type: String },
49
+ description: { type: String },
50
+ small: { type: Boolean, reflect: true },
51
+ checked: { type: Boolean, reflect: true },
52
+ readonly: { type: Boolean, reflect: true },
53
+ };
54
+ }
55
+ static get styles() {
56
+ return [
57
+ skeleton,
58
+ // language=CSS
59
+ css `
60
+ :host {
61
+ --off-bgc: var(--gv-switch-off--bgc, var(--gv-theme-neutral-color-dark, #bfbfbf));
62
+ --on-bgc: var(--gv-switch-on--bgc, var(--gv-theme-color, #5a7684));
63
+ box-sizing: border-box;
64
+ margin: 0.2rem;
65
+ }
66
+
67
+ .container {
68
+ display: flex;
69
+ }
70
+
71
+ .labels {
72
+ display: flex;
73
+ flex-direction: column;
74
+ justify-content: center;
75
+ flex: 1;
76
+ margin-right: 0.4rem;
77
+ box-sizing: border-box;
78
+ text-align: var(--gv-switch--ta, left);
79
+ }
80
+
81
+ .switch-title {
82
+ font-weight: 600;
83
+ }
84
+
85
+ .switch-description {
86
+ opacity: 0.6;
87
+ }
88
+
89
+ .switch-container {
90
+ display: flex;
91
+ align-items: center;
92
+ }
93
+
94
+ .switch {
95
+ position: relative;
96
+ width: 40px;
97
+ -webkit-user-select: none;
98
+ -moz-user-select: none;
99
+ -ms-user-select: none;
100
+ border-radius: 16px;
101
+ }
102
+
103
+ :host([small]) .switch {
104
+ width: 25px;
105
+ }
106
+
107
+ :host([small]) .switch-label:before {
108
+ width: 10px;
109
+ border-radius: 10px;
110
+ right: 10px;
111
+ }
112
+
113
+ :host([small]) .switch-label {
114
+ height: 10px;
115
+ line-height: 10px;
116
+ border-radius: 10px;
117
+ }
118
+
119
+ :host([small]) .switch-title {
120
+ font-weight: 400;
121
+ font-size: 11px;
122
+ }
123
+
124
+ .switch input {
125
+ display: none;
126
+ }
127
+
128
+ .switch-label {
129
+ display: block;
130
+ overflow: hidden;
131
+ cursor: pointer;
132
+ height: 16px;
133
+ padding: 0;
134
+ line-height: 16px;
135
+ border: 2px solid transparent;
136
+ border-radius: 16px;
137
+ background-color: var(--off-bgc);
138
+ transition: background-color 0.3s ease-in;
139
+ }
140
+
141
+ .switch-label:before {
142
+ content: '';
143
+ display: block;
144
+ width: 16px;
145
+ margin: 0;
146
+ background: var(--gv-switch--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));
147
+ position: absolute;
148
+ top: 0;
149
+ bottom: 0;
150
+ right: 20px;
151
+ border: 2px solid var(--off-bgc);
152
+ border-radius: 16px;
153
+ transition: all 0.3s ease-in 0s;
154
+ }
155
+
156
+ :host([checked]) .switch-label {
157
+ background-color: var(--on-bgc);
158
+ }
159
+
160
+ :host([checked]) .switch-label,
161
+ :host([checked]) .switch-label:before {
162
+ border-color: var(--on-bgc);
163
+ }
164
+
165
+ :host([checked]) .switch-label:before {
166
+ right: 0;
167
+ }
168
+
169
+ :host([disabled]) .switch-label,
170
+ :host([readonly]) .switch-label {
171
+ cursor: default;
172
+ }
173
+
174
+ :host([disabled]) .switch-label {
175
+ opacity: 0.5;
176
+ }
177
+ `,
178
+ ];
179
+ }
180
+ constructor() {
181
+ super();
182
+ this._id = 'gv-id';
183
+ this.checked = false;
184
+ }
185
+ _onInput() {
186
+ if (!(this.disabled || this.skeleton || this.readonly)) {
187
+ this.value = !this.checked;
188
+ dispatchCustomEvent(this, 'input', this.value);
189
+ }
190
+ }
191
+ updated(_changedProperties) {
192
+ super.updated(_changedProperties);
193
+ if (_changedProperties.has('value')) {
194
+ if (this.value != null && this.value.toString() === 'true') {
195
+ this.checked = true;
196
+ }
197
+ else {
198
+ this.checked = false;
199
+ }
200
+ }
201
+ }
202
+ render() {
203
+ const classes = {
204
+ skeleton: this.skeleton,
205
+ disabled: this.disabled,
206
+ small: this.small,
207
+ switch: true,
208
+ };
209
+ return html `
210
+ <div class="container">
211
+ ${this.label || this.description
212
+ ? html `<div class="${classMap({ labels: true, skeleton: this.skeleton })}">
213
+ ${this.label ? html `<label class="switch-title">${this.label}</label>` : ''}
214
+ ${this.description ? html `<label class="switch-description" .innerHTML="${this.description}"></label>` : ''}
215
+ </div>`
216
+ : ''}
217
+ <div class="switch-container">
218
+ <div class=${classMap(classes)}>
219
+ <input
220
+ id=${this._id}
221
+ type="checkbox"
222
+ .title=${ifDefined(this.label || this.description)}
223
+ ?disabled=${this.disabled || this.skeleton}
224
+ ?readonly="${this.readonly}"
225
+ ?checked=${this.checked}
226
+ @input=${this._onInput}
227
+ />
228
+ <label class="switch-label" for="${this._id}"></label>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ `;
233
+ }
234
+ }
235
+ window.customElements.define('gv-switch', GvSwitch);
@@ -1 +1,162 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvTag=void 0;const r=require("lit/directives/class-map"),a=require("lit"),t=require("../styles/skeleton"),e=require("../styles/link");require("./gv-icon");const o=require("../lib/events");class i extends a.LitElement{static get properties(){return{icon:{type:String},iconRight:{type:String,attribute:"icon-right"},major:{type:Boolean},minor:{type:Boolean},skeleton:{type:Boolean},clickable:{type:Boolean}}}static get styles(){return[t.skeleton,e.link,a.css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle}div.default{--bgc:var(--gv-tag--bgc, var(--gv-theme-neutral-color-lighter, #fafafa));--bdc:var(--gv-tag--bdc, var(--gv-theme-neutral-color-dark, #d9d9d9));--bds:var(--gv-tag--bds, solid);--bdw:var(--gv-tag--bdw, 1px);--c:var(--gv-tag--c, var(--gv-theme-font-color-dark, #262626))}div.major{--bgc:var(--gv-tag-major--bgc, var(--gv-theme-color, #5a7684));--bdc:var(--gv-tag-major--bdc, var(--gv-theme-color, #5a7684));--bds:var(--gv-tag-major--bds, solid);--bdw:var(--gv-tag-major--bdw, 1px);--c:var(--gv-tag-major--c, var(--gv-theme-font-color-light, #ffffff))}div.minor{--bgc:var(--gv-tag-minor--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));--bdc:var(--gv-tag-minor--bdc, var(--gv-theme-neutral-color-dark, #d9d9d9));--bds:var(--gv-tag-minor--bds, dashed);--bdw:var(--gv-tag-minor--bdw, 1px);--c:var(--gv-tag-minor--c, var(--gv-theme-font-color-dark, #262626))}div{background-color:var(--bgc);border-color:var(--bdc);border-radius:var(--gv-tag--bdr,4px);border-style:var(--bds);border-width:var(--bdw);box-shadow:var(--gv-tag--bsw,none);color:var(--c);--fz:var(--gv-tag--fz, var(--gv-theme-font-size-s, 12px));font-size:var(--fz);line-height:var(--fz);padding:var(--gv-tag--p,4px 8px);--gv-icon--s:var(--gv-tag-icon--s, 18px);--gv-icon--c:var(--c);--gv-icon-opacity--c:var(--c);word-break:normal}div>*{vertical-align:middle;display:inline-flex}`]}_onTagClick(r){this.clickable&&(r.stopPropagation(),(0,o.dispatchCustomEvent)(this,"click",{}))}render(){const t={default:!this.major&&!this.minor,major:this.major,minor:this.minor&&!this.major,skeleton:this.skeleton,link:this.clickable};return a.html`<div class="${(0,r.classMap)(t)}" @click="${this._onTagClick}">${this.icon?a.html`<gv-icon shape="${this.icon}"></gv-icon>`:""}<slot></slot>${this.iconRight?a.html`<gv-icon shape="${this.iconRight}"></gv-icon>`:""}</div>`}}exports.GvTag=i,window.customElements.define("gv-tag",i);
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 { classMap } from 'lit/directives/class-map';
17
+ import { LitElement, html, css } from 'lit';
18
+ import { skeleton } from '../styles/skeleton';
19
+ import { link } from '../styles/link';
20
+ import './gv-icon';
21
+ import { dispatchCustomEvent } from '../lib/events';
22
+ /**
23
+ * A Tag
24
+ *
25
+ * ## Details
26
+ * * has @theme facet
27
+ *
28
+ * @fires click - Native click event
29
+ *
30
+ * @slot - The content of the tag (text or HTML)
31
+ *
32
+ * @attr {String} icon - name of shape
33
+ * @attr {String} icon-right - name of shape
34
+ * @attr {Boolean} major - set tag UI as major
35
+ * @attr {Boolean} minor - set tag UI as minor
36
+ * @attr {Boolean} skeleton - enable skeleton screen UI pattern (loading hint)
37
+ * @attr {Boolean} clickable - If true, tag has link style
38
+ *
39
+ * @cssprop {Length} [--gv-tag--fz=var(--gv-theme-font-size-s, 12px)] - Font size
40
+ * @cssprop {Length} [--gv-tag--p=4px 8px] - Padding
41
+ * @cssprop {Length} [--gv-tag--bdr=4px] - Border radius
42
+ * @cssprop {String} [--gv-tag--bsw=none] - Box shadow
43
+ *
44
+ * @cssprop {Color} [--gv-tag--bgc=var(--gv-theme-neutral-color-lighter, #fafafa)] - Background color
45
+ * @cssprop {Color} [--gv-tag-major--bgc=var(--gv-theme-color, #5a7684)] - Major background color
46
+ * @cssprop {Color} [--gv-tag-minor--bgc=var(--gv-theme-neutral-color-lightest, #ffffff)] - Minor background color
47
+ *
48
+ * @cssprop {Color} [--gv-tag--bdc=var(--gv-theme-neutral-color-dark, #d9d9d9)] - Border color
49
+ * @cssprop {Color} [--gv-tag-major--bdc=var(--gv-theme-color, #5a7684)] - Major border color
50
+ * @cssprop {Color} [--gv-tag-minor--bdc=var(--gv-theme-neutral-color-dark, #d9d9d9)] - Minor border color
51
+
52
+ * @cssprop {String} [--gv-tag--bds=solid] - Border style
53
+ * @cssprop {String} [--gv-tag-major--bds=solid] - Major border style
54
+ * @cssprop {String} [--gv-tag-minor--bds=dashed] - Minor border style
55
+ *
56
+ * @cssprop {Length} [--gv-tag--bdw=1px] - Border width
57
+ * @cssprop {Length} [--gv-tag-major--bdw=1px] - Major border width
58
+ * @cssprop {Length} [--gv-tag-minor--bdw=1px] - Minor border width
59
+ *
60
+ * @cssprop {Color} [--gv-tag--c=var(--gv-theme-font-color-dark, #262626)] - Color
61
+ * @cssprop {Color} [--gv-tag-major--c=var(--gv-theme-font-color-light, #ffffff)] - Major color
62
+ * @cssprop {Color} [--gv-tag-minor--c=var(--gv-theme-font-color-dark, #262626)] - Minor color
63
+ * @cssprop {Length} [--gv-tag-icon--s=18px] - Height and icon width
64
+ */
65
+ export class GvTag extends LitElement {
66
+ static get properties() {
67
+ return {
68
+ icon: { type: String },
69
+ iconRight: { type: String, attribute: 'icon-right' },
70
+ major: { type: Boolean },
71
+ minor: { type: Boolean },
72
+ skeleton: { type: Boolean },
73
+ clickable: { type: Boolean },
74
+ };
75
+ }
76
+ static get styles() {
77
+ return [
78
+ skeleton,
79
+ link,
80
+ // language=CSS
81
+ css `
82
+ :host {
83
+ box-sizing: border-box;
84
+ display: inline-block;
85
+ margin: 0.2rem;
86
+ vertical-align: middle;
87
+ }
88
+
89
+ div.default {
90
+ --bgc: var(--gv-tag--bgc, var(--gv-theme-neutral-color-lighter, #fafafa));
91
+ --bdc: var(--gv-tag--bdc, var(--gv-theme-neutral-color-dark, #d9d9d9));
92
+ --bds: var(--gv-tag--bds, solid);
93
+ --bdw: var(--gv-tag--bdw, 1px);
94
+ --c: var(--gv-tag--c, var(--gv-theme-font-color-dark, #262626));
95
+ }
96
+
97
+ div.major {
98
+ --bgc: var(--gv-tag-major--bgc, var(--gv-theme-color, #5a7684));
99
+ --bdc: var(--gv-tag-major--bdc, var(--gv-theme-color, #5a7684));
100
+ --bds: var(--gv-tag-major--bds, solid);
101
+ --bdw: var(--gv-tag-major--bdw, 1px);
102
+ --c: var(--gv-tag-major--c, var(--gv-theme-font-color-light, #ffffff));
103
+ }
104
+
105
+ div.minor {
106
+ --bgc: var(--gv-tag-minor--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));
107
+ --bdc: var(--gv-tag-minor--bdc, var(--gv-theme-neutral-color-dark, #d9d9d9));
108
+ --bds: var(--gv-tag-minor--bds, dashed);
109
+ --bdw: var(--gv-tag-minor--bdw, 1px);
110
+ --c: var(--gv-tag-minor--c, var(--gv-theme-font-color-dark, #262626));
111
+ }
112
+
113
+ div {
114
+ background-color: var(--bgc);
115
+ border-color: var(--bdc);
116
+ border-radius: var(--gv-tag--bdr, 4px);
117
+ border-style: var(--bds);
118
+ border-width: var(--bdw);
119
+ box-shadow: var(--gv-tag--bsw, none);
120
+ color: var(--c);
121
+ --fz: var(--gv-tag--fz, var(--gv-theme-font-size-s, 12px));
122
+ font-size: var(--fz);
123
+ line-height: var(--fz);
124
+ padding: var(--gv-tag--p, 4px 8px);
125
+ --gv-icon--s: var(--gv-tag-icon--s, 18px);
126
+ --gv-icon--c: var(--c);
127
+ --gv-icon-opacity--c: var(--c);
128
+
129
+ word-break: normal;
130
+ }
131
+
132
+ div > * {
133
+ vertical-align: middle;
134
+ display: inline-flex;
135
+ }
136
+ `,
137
+ ];
138
+ }
139
+ _onTagClick(e) {
140
+ if (this.clickable) {
141
+ e.stopPropagation();
142
+ dispatchCustomEvent(this, 'click', {});
143
+ }
144
+ }
145
+ render() {
146
+ const modes = {
147
+ default: !this.major && !this.minor,
148
+ major: this.major,
149
+ minor: this.minor && !this.major,
150
+ skeleton: this.skeleton,
151
+ link: this.clickable,
152
+ };
153
+ return html `
154
+ <div class=${classMap(modes)} @click="${this._onTagClick}">
155
+ ${this.icon ? html `<gv-icon shape="${this.icon}"></gv-icon>` : ''}<slot></slot>${this.iconRight
156
+ ? html `<gv-icon shape="${this.iconRight}"></gv-icon>`
157
+ : ''}
158
+ </div>
159
+ `;
160
+ }
161
+ }
162
+ window.customElements.define('gv-tag', GvTag);
@@ -1 +1,160 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvText=void 0;const e=require("lit/directives/class-map"),t=require("lit/directives/if-defined"),i=require("lit"),r=require("../styles/skeleton"),s=require("../lib/events"),a=require("../mixins/input-element");class l extends((0,a.InputElement)(i.LitElement)){static get properties(){return{rows:{type:Number},minlength:{type:Number},maxlength:{type:Number},autosize:{type:Boolean}}}static get styles(){return[...super.styles,r.skeleton,i.css`.box{position:relative;line-height:0}.textarea{--fz:var(--gv-text--fz, var(--gv-theme-font-size-m, 14px));--tmp:var(--gv-text--lh, var(--gv-theme-font-size-m, 14px));--lh:calc(var(--tmp) + 3px);border:1px solid var(--gv-input--bdc,var(--gv-theme-neutral-color-dark,#d9d9d9));box-sizing:border-box;border-radius:4px;outline:0;padding:10px 5px;width:100%;resize:none;font-size:var(--fz);line-height:var(--lh)}div.textarea{white-space:pre}textarea:disabled{cursor:default;opacity:.5}textarea:required{box-shadow:none}label{display:block;line-height:15px;padding:0 0 .2rem 0}textarea{font-family:inherit}`]}constructor(){super(),this.rows=10}getInputElement(){return this.shadowRoot.querySelector("textarea")}_onInput(e){this.updateState(e.target.value),this.value=e.target.value,(0,s.dispatchCustomEvent)(this,"input",this.value)}render(){const r={skeleton:this.skeleton,required:this.required,textarea:!0};if(this.readonly)return this.value||""!==this.value.trim()?i.html`${this.renderLabel()}<div class="${(0,e.classMap)(r)}" .title="${(0,t.ifDefined)(this.title||this.label)}">${(0,t.ifDefined)(this.value)}</div>`:"";const s=this.autosize&&this.value?this.value.split("\n").length:this.rows;return i.html`<div class="box">${this.renderLabel()} <textarea class="${(0,e.classMap)(r)}" id="${this._id}" .name="${(0,t.ifDefined)(this.name)}" .title="${(0,t.ifDefined)(this.title||this.label)}" .required="${this.required}" ?readonly="${this.readonly}" maxlength="${this.maxlength}" minlength="${this.minlength}" aria-required="${!!this.required}" ?disabled="${this.disabled||this.skeleton}" .placeholder="${(0,t.ifDefined)(this.placeholder)}" .value="${(0,t.ifDefined)(this.value)}" rows="${this.rows<s?s:this.rows}" @input="${this._onInput}"></textarea></div>`}}exports.GvText=l,window.customElements.define("gv-text",l);
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 { classMap } from 'lit/directives/class-map';
17
+ import { ifDefined } from 'lit/directives/if-defined';
18
+ import { LitElement, css, html } from 'lit';
19
+ import { skeleton } from '../styles/skeleton';
20
+ import { dispatchCustomEvent } from '../lib/events';
21
+ import { InputElement } from '../mixins/input-element';
22
+ /**
23
+ * A wrapper of a <text> component.
24
+ *
25
+ * ## Details
26
+ * * has @theme facet
27
+ *
28
+ * @fires gv-text:input - mirrors native textarea events with the `value` on `detail`
29
+ *
30
+ * @attr {Boolean} disabled - same as native text element `disabled` attribute
31
+ * @attr {Boolean} required - same as native text element `required` attribute
32
+ * @attr {Boolean} skeleton - enable skeleton screen UI pattern (loading hint)
33
+ * @attr {String} value - the value of the text
34
+ * @attr {String} label - label of the text
35
+ * @attr {String} title - title of the text
36
+ * @attr {String} name - name of the text
37
+ * @attr {String} placeholder - an example value to display in the text when empty
38
+ * @attr {Length} rows - number of rows of the text element
39
+ * @attr {Boolean} autofocus - true to put the focus on the input
40
+ * @attr {Boolean} [readonly=false] - true if field is readonly mode
41
+ * @attr {Boolean} [autosize=false] - true if field auto resize when content change
42
+ *
43
+ * @cssprop {Color} [--gv-input--bdc=var(--gv-theme-neutral-color-dark, #d9d9d9)] - Border color
44
+ * @cssprop {Length} [--gv-text--fz=var(--gv-theme-font-size-m, 14px)] - Font size
45
+ * @cssprop {Length} [--gv-text--lh=var(--gv-theme-font-size-m, 14px)] - Line height
46
+ */
47
+ export class GvText extends InputElement(LitElement) {
48
+ static get properties() {
49
+ return {
50
+ rows: { type: Number },
51
+ minlength: { type: Number },
52
+ maxlength: { type: Number },
53
+ autosize: { type: Boolean },
54
+ };
55
+ }
56
+ static get styles() {
57
+ return [
58
+ ...super.styles,
59
+ skeleton,
60
+ // language=CSS
61
+ css `
62
+ .box {
63
+ position: relative;
64
+ line-height: 0;
65
+ }
66
+
67
+ /* BASE */
68
+ .textarea {
69
+ --fz: var(--gv-text--fz, var(--gv-theme-font-size-m, 14px));
70
+ --tmp: var(--gv-text--lh, var(--gv-theme-font-size-m, 14px));
71
+ --lh: calc(var(--tmp) + 3px);
72
+ border: 1px solid var(--gv-input--bdc, var(--gv-theme-neutral-color-dark, #d9d9d9));
73
+ box-sizing: border-box;
74
+ border-radius: 4px;
75
+ outline: none;
76
+ padding: 10px 5px;
77
+ width: 100%;
78
+ resize: none;
79
+ font-size: var(--fz);
80
+ line-height: var(--lh);
81
+ }
82
+
83
+ div.textarea {
84
+ white-space: pre;
85
+ }
86
+
87
+ textarea:disabled {
88
+ cursor: default;
89
+ opacity: 0.5;
90
+ }
91
+
92
+ textarea:required {
93
+ box-shadow: none;
94
+ }
95
+
96
+ label {
97
+ display: block;
98
+ line-height: 15px;
99
+ padding: 0 0 0.2rem 0;
100
+ }
101
+
102
+ /* Hack for FF */
103
+ textarea {
104
+ font-family: inherit;
105
+ }
106
+ `,
107
+ ];
108
+ }
109
+ constructor() {
110
+ super();
111
+ this.rows = 10;
112
+ }
113
+ getInputElement() {
114
+ return this.shadowRoot.querySelector('textarea');
115
+ }
116
+ _onInput(e) {
117
+ this.updateState(e.target.value);
118
+ this.value = e.target.value;
119
+ dispatchCustomEvent(this, 'input', this.value);
120
+ }
121
+ render() {
122
+ const classes = {
123
+ skeleton: this.skeleton,
124
+ required: this.required,
125
+ textarea: true,
126
+ };
127
+ if (this.readonly) {
128
+ if (this.value || this.value.trim() !== '') {
129
+ return html `
130
+ ${this.renderLabel()}
131
+ <div class="${classMap(classes)}" .title=${ifDefined(this.title || this.label)}>${ifDefined(this.value)}</div>
132
+ `;
133
+ }
134
+ return '';
135
+ }
136
+ const rows = this.autosize && this.value ? this.value.split('\n').length : this.rows;
137
+ return html `
138
+ <div class="box">
139
+ ${this.renderLabel()}
140
+ <textarea
141
+ class="${classMap(classes)}"
142
+ id=${this._id}
143
+ .name=${ifDefined(this.name)}
144
+ .title=${ifDefined(this.title || this.label)}
145
+ .required=${this.required}
146
+ ?readonly="${this.readonly}"
147
+ maxlength="${this.maxlength}"
148
+ minlength="${this.minlength}"
149
+ aria-required=${!!this.required}
150
+ ?disabled=${this.disabled || this.skeleton}
151
+ .placeholder=${ifDefined(this.placeholder)}
152
+ .value=${ifDefined(this.value)}
153
+ rows="${this.rows < rows ? rows : this.rows}"
154
+ @input=${this._onInput}
155
+ ></textarea>
156
+ </div>
157
+ `;
158
+ }
159
+ }
160
+ window.customElements.define('gv-text', GvText);
@@ -1 +1,101 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvChartBar=void 0;const t=require("lit");require("../atoms/gv-button"),require("../atoms/gv-tag");const e=require("../mixins/chart-element"),s=require("../lib/events");class i extends((0,e.ChartElement)(t.LitElement)){async getOptions(){let t=0;const e=[];return this._series&&this._series.values&&(this.options.data.forEach(((t,s)=>{t.y=this._series.values[this.options.data[s].name]||0,e.push(t.name)})),this.options.data.forEach((e=>{t+=e.y}))),t||(this._empty=!0),{chart:{type:"bar"},series:0===t?[]:[this.options],xAxis:{categories:e},legend:{enabled:!1},yAxis:{allowDecimals:!1,title:{text:null},min:0},plotOptions:{bar:{dataLabels:{enabled:!0}},series:{animation:!1,events:{click:t=>{t.preventDefault(),(0,s.dispatchCustomEvent)(this,"select",t.point.options)}}}},tooltip:{pointFormat:"Nb hits: <b>{point.y}</b>"},title:{text:"Total: "+t,useHTML:!0,align:"left",verticalAlign:"bottom",y:10,style:{fontSize:"12px",fontWeight:"bold"}}}}}exports.GvChartBar=i,window.customElements.define("gv-chart-bar",i);
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 } from 'lit';
17
+ import '../atoms/gv-button';
18
+ import '../atoms/gv-tag';
19
+ import { ChartElement } from '../mixins/chart-element';
20
+ import { dispatchCustomEvent } from '../lib/events';
21
+ /**
22
+ * Bar chart component
23
+ *
24
+ * ⚠️ This component is based on `highcharts`.
25
+ * To use this component in your project be sure the dependency is installed or
26
+ * install it with: `npm install highcharts --save`
27
+ *
28
+ * @fires gv-chart-bar:select - Custom event with selected value
29
+ *
30
+ * @attr {Array} series - The series to display on the bar chart.
31
+ * @attr {Array} options - The list of options to display.
32
+ *
33
+ */
34
+ export class GvChartBar extends ChartElement(LitElement) {
35
+ async getOptions() {
36
+ let total = 0;
37
+ const categories = [];
38
+ if (this._series && this._series.values) {
39
+ this.options.data.forEach((data, i) => {
40
+ data.y = this._series.values[this.options.data[i].name] || 0;
41
+ categories.push(data.name);
42
+ });
43
+ this.options.data.forEach((d) => {
44
+ total += d.y;
45
+ });
46
+ }
47
+ if (!total) {
48
+ this._empty = true;
49
+ }
50
+ return {
51
+ chart: {
52
+ type: 'bar',
53
+ },
54
+ series: total === 0 ? [] : [this.options],
55
+ xAxis: {
56
+ categories: categories,
57
+ },
58
+ legend: {
59
+ enabled: false,
60
+ },
61
+ yAxis: {
62
+ allowDecimals: false,
63
+ title: {
64
+ text: null,
65
+ },
66
+ min: 0,
67
+ },
68
+ plotOptions: {
69
+ bar: {
70
+ dataLabels: {
71
+ enabled: true,
72
+ },
73
+ },
74
+ series: {
75
+ animation: false,
76
+ events: {
77
+ click: (event) => {
78
+ event.preventDefault();
79
+ dispatchCustomEvent(this, 'select', event.point.options);
80
+ },
81
+ },
82
+ },
83
+ },
84
+ tooltip: {
85
+ pointFormat: 'Nb hits: <b>{point.y}</b>',
86
+ },
87
+ title: {
88
+ text: 'Total: ' + total,
89
+ useHTML: true,
90
+ align: 'left',
91
+ verticalAlign: 'bottom',
92
+ y: 10,
93
+ style: {
94
+ fontSize: '12px',
95
+ fontWeight: 'bold',
96
+ },
97
+ },
98
+ };
99
+ }
100
+ }
101
+ window.customElements.define('gv-chart-bar', GvChartBar);