@gravitee/ui-components 3.25.3-typescript-e7256ca → 3.25.3-typescript-9cbc31e

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,258 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvMenu=void 0;const t=require("lit");require("../molecules/gv-nav");const e=require("../lib/utils"),i=require("lit/directives/class-map"),s=require("../mixins/with-resize-observer");class r extends((0,s.withResizeObserver)(t.LitElement)){static get properties(){return{routes:{type:Array},sticky:{type:Boolean,reflect:!0},_small:{type:Boolean,attribute:!1},_routes:{type:Array,attribute:!1},_hasHeader:{type:Boolean,attribute:!1}}}static get styles(){return[t.css`:host{--gv-link--c:var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));--gv-link-active--c:var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));--gv-link--bgc:var(--gv-menu-link--bgc, transparent);--gv-link-active--bgc:var(--gv-menu-link-active--bgc, transparent);--gv-link-active--bdc:var(--gv-menu-link-active--bdc, var(--gv-theme-color-light, #86c3d0));--gv-link-active--bds:var(--gv-menu-link-active--bds, solid);--gv-link-active--bdw:var(--gv-menu-link-active--bdw, 0 0 3px 0);--pr:var(--gv-theme-layout--pr, 4rem);--pl:var(--gv-theme-layout--pl, 4rem);box-sizing:border-box;display:block;font-size:var(--gv-theme-font-size-s,12px)}:host([sticky]) gv-nav{line-height:14px;--gv-link-icon--s:20px}:host([sticky]) .has-header gv-nav{line-height:34px}:host([sticky]) ::slotted([slot=top]){transition:height 250ms ease-in-out}:host([w-lt-1024]){--pr:5px;--pl:5px}:host([w-lt-768]) .nav-container{width:100%;padding-left:var(--pl);--gv-link-a--pv:var(--gv-menu-link-a--pv, 0px)}:host([w-lt-580]) .nav-container{flex:auto;padding-left:0}:host([w-lt-580]) gv-nav{flex:auto}:host([w-lt-580]) .right{flex:auto}:host([w-lt-380]) .nav-container{display:flex;flex-direction:column-reverse}:host([w-lt-380]) gv-nav{align-self:flex-start;flex:1}:host([w-lt-380]) .right{align-self:flex-end;flex:1;width:100%;padding-right:0}gv-nav{display:table-cell;line-height:50px;vertical-align:middle}.nav-container{display:grid;grid-template-columns:auto auto;background-color:var(--gv-menu--bgc,var(--gv-theme-color-dark,#28444f));color:var(--gv-menu--c,var(--gv-theme-font-color-light,#fff))}.has-header .nav-container{width:calc(100% - 10rem);padding-left:10rem;--gv-link-a--pv:0}:host([sticky]) .has-header .nav-container{width:calc(100% - 5rem);padding-left:5rem;transition:all 250ms ease-in-out}.right{display:flex;padding-right:var(--pr);justify-content:center;flex-direction:column}gv-nav{padding-left:var(--pl);transition:width 250ms ease-in-out}slot[name=right-transition],slot[name=right]{display:flex;justify-content:flex-end;width:100%}.right ::slotted([slot=right-transition]),.right ::slotted([slot=right]){align-self:center}.right ::slotted([slot=right-transition]){transition:width 250ms ease 250ms;width:70%}.right:focus-within ::slotted([slot=right-transition]){animation:slide 250ms 250ms;transition:width 250ms ease-in-out 250ms;width:100%}.right ::slotted([slot=right]){--gv-button--p:7px 16px;--gv-button--fz:15px}`]}constructor(){super(),this._routes=[],this.sticky=!1,this.breakpoints={width:[380,580,768,1024]}}set routes(t){t?Promise.resolve(t).then((t=>{t?Promise.all(t).then((t=>{(0,e.isSameRoutes)(this._routes,t)||(this._routes=t)})):this._routes=[]})):this._routes=[]}onResize({width:t}){this._small=t<=1024}render(){return t.html`<div class="${(0,i.classMap)({"has-header":this._hasHeader})}"><slot name="top"></slot><div class="nav-container"><gv-nav .routes="${this._routes}" ?small="${this._small}"></gv-nav><div class="right"><slot name="right-transition"></slot><slot name="right"></slot></div></div></div>`}updated(t){super.updated(t);let e=!1;for(const t of this.childNodes)if(1===t.nodeType){const i="gv-header"===t.nodeName.toLowerCase()?t:t.querySelector("gv-header");if(i){i.sticky=this.sticky,e=!0;break}}this._hasHeader=e}}exports.GvMenu=r,window.customElements.define("gv-menu",r);
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 '../molecules/gv-nav';
18
+ import { isSameRoutes } from '../lib/utils';
19
+ import { classMap } from 'lit/directives/class-map';
20
+ import { withResizeObserver } from '../mixins/with-resize-observer';
21
+ /**
22
+ * A menu
23
+ *
24
+ * ## Details
25
+ * * has @theme facet
26
+ *
27
+ * @fires gv-link:click - Custom event when link click
28
+ *
29
+ * @slot top - The content on top of menu
30
+ * @slot right - The content at right
31
+ * @slot right-transition - The content at right with transition
32
+ *
33
+ * @attr {Array} routes - definition of routes [{active: Boolean, icon: String, path: String, title: Promise<String>]
34
+ * @cssprop {Color} [--gv-menu--c=var(--gv-theme-font-color-light, #ffffff)] - Color
35
+ * @cssprop {Color} [--gv-menu--bgc=var(--gv-theme-color-dark, #28444f)] - Background color.
36
+ * @cssprop {Color} [--gv-menu-link-active--bdc=var(--gv-theme-color-light, #86c3d0)] - Border bottom color of active link.
37
+ * @cssprop {String} [--gv-menu-link-active--bds=solid] - Border bottom style of active link.
38
+ * @cssprop {Length} [--gv-menu-link-active--bdw=0 0 3px 0] - Border bottom width of active link.
39
+ * @cssprop {Color} [--gv-menu-link-active--bgc=transparent] - Active background color
40
+ * @cssprop {Color} [--gv-menu-link--bgc=transparent] - Background color
41
+ * @cssprop {Length} [--gv-menu-link-a--pv=0px] - Link vertical padding
42
+ */
43
+ export class GvMenu extends withResizeObserver(LitElement) {
44
+ static get properties() {
45
+ return {
46
+ /** @required **/
47
+ routes: { type: Array },
48
+ sticky: { type: Boolean, reflect: true },
49
+ _small: { type: Boolean, attribute: false },
50
+ _routes: { type: Array, attribute: false },
51
+ _hasHeader: { type: Boolean, attribute: false },
52
+ };
53
+ }
54
+ static get styles() {
55
+ return [
56
+ // language=css
57
+ css `
58
+ :host {
59
+ --gv-link--c: var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));
60
+ --gv-link-active--c: var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));
61
+ --gv-link--bgc: var(--gv-menu-link--bgc, transparent);
62
+ --gv-link-active--bgc: var(--gv-menu-link-active--bgc, transparent);
63
+ --gv-link-active--bdc: var(--gv-menu-link-active--bdc, var(--gv-theme-color-light, #86c3d0));
64
+ --gv-link-active--bds: var(--gv-menu-link-active--bds, solid);
65
+ --gv-link-active--bdw: var(--gv-menu-link-active--bdw, 0 0 3px 0);
66
+ --pr: var(--gv-theme-layout--pr, 4rem);
67
+ --pl: var(--gv-theme-layout--pl, 4rem);
68
+ box-sizing: border-box;
69
+ display: block;
70
+ font-size: var(--gv-theme-font-size-s, 12px);
71
+ }
72
+
73
+ :host([sticky]) gv-nav {
74
+ line-height: 14px;
75
+ --gv-link-icon--s: 20px;
76
+ }
77
+
78
+ :host([sticky]) .has-header gv-nav {
79
+ line-height: 34px;
80
+ }
81
+
82
+ :host([sticky]) ::slotted([slot='top']) {
83
+ transition: height 250ms ease-in-out;
84
+ }
85
+
86
+ :host([w-lt-1024]) {
87
+ --pr: 5px;
88
+ --pl: 5px;
89
+ }
90
+
91
+ :host([w-lt-768]) .nav-container {
92
+ width: 100%;
93
+ padding-left: var(--pl);
94
+ --gv-link-a--pv: var(--gv-menu-link-a--pv, 0px);
95
+ }
96
+
97
+ :host([w-lt-580]) .nav-container {
98
+ flex: auto;
99
+ padding-left: 0;
100
+ }
101
+
102
+ :host([w-lt-580]) gv-nav {
103
+ flex: auto;
104
+ }
105
+
106
+ :host([w-lt-580]) .right {
107
+ flex: auto;
108
+ }
109
+
110
+ :host([w-lt-380]) .nav-container {
111
+ display: flex;
112
+ flex-direction: column-reverse;
113
+ }
114
+
115
+ :host([w-lt-380]) gv-nav {
116
+ align-self: flex-start;
117
+ flex: 1;
118
+ }
119
+
120
+ :host([w-lt-380]) .right {
121
+ align-self: flex-end;
122
+ flex: 1;
123
+ width: 100%;
124
+ padding-right: 0;
125
+ }
126
+
127
+ gv-nav {
128
+ display: table-cell;
129
+ line-height: 50px;
130
+ vertical-align: middle;
131
+ }
132
+
133
+ .nav-container {
134
+ display: grid;
135
+ grid-template-columns: auto auto;
136
+ background-color: var(--gv-menu--bgc, var(--gv-theme-color-dark, #28444f));
137
+ color: var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));
138
+ }
139
+
140
+ .has-header .nav-container {
141
+ width: calc(100% - 10rem);
142
+ padding-left: 10rem;
143
+ --gv-link-a--pv: 0;
144
+ }
145
+
146
+ :host([sticky]) .has-header .nav-container {
147
+ width: calc(100% - 5rem);
148
+ padding-left: 5rem;
149
+ transition: all 250ms ease-in-out;
150
+ }
151
+
152
+ .right {
153
+ display: flex;
154
+ padding-right: var(--pr);
155
+ justify-content: center;
156
+ flex-direction: column;
157
+ }
158
+
159
+ gv-nav {
160
+ padding-left: var(--pl);
161
+ transition: width 250ms ease-in-out;
162
+ }
163
+
164
+ slot[name='right-transition'],
165
+ slot[name='right'] {
166
+ display: flex;
167
+ justify-content: flex-end;
168
+ width: 100%;
169
+ }
170
+
171
+ .right ::slotted([slot='right']),
172
+ .right ::slotted([slot='right-transition']) {
173
+ align-self: center;
174
+ }
175
+
176
+ .right ::slotted([slot='right-transition']) {
177
+ transition: width 250ms ease 250ms;
178
+ width: 70%;
179
+ }
180
+
181
+ .right:focus-within ::slotted([slot='right-transition']) {
182
+ animation: slide 250ms 250ms;
183
+ transition: width 250ms ease-in-out 250ms;
184
+ width: 100%;
185
+ }
186
+
187
+ .right ::slotted([slot='right']) {
188
+ --gv-button--p: 7px 16px;
189
+ --gv-button--fz: 15px;
190
+ }
191
+ `,
192
+ ];
193
+ }
194
+ constructor() {
195
+ super();
196
+ /** @protected */
197
+ this._routes = [];
198
+ this.sticky = false;
199
+ this.breakpoints = {
200
+ // ceiled width with 275px tiles and 1rem (16px) gap
201
+ width: [380, 580, 768, 1024],
202
+ };
203
+ }
204
+ set routes(candidate) {
205
+ if (candidate) {
206
+ Promise.resolve(candidate).then((candidates) => {
207
+ if (candidates) {
208
+ Promise.all(candidates).then((futureRoutes) => {
209
+ if (!isSameRoutes(this._routes, futureRoutes)) {
210
+ this._routes = futureRoutes;
211
+ }
212
+ });
213
+ }
214
+ else {
215
+ this._routes = [];
216
+ }
217
+ });
218
+ }
219
+ else {
220
+ this._routes = [];
221
+ }
222
+ }
223
+ onResize({ width }) {
224
+ if (width <= 1024) {
225
+ this._small = true;
226
+ }
227
+ else {
228
+ this._small = false;
229
+ }
230
+ }
231
+ render() {
232
+ return html `
233
+ <div class="${classMap({ 'has-header': this._hasHeader })}">
234
+ <slot name="top"></slot>
235
+ <div class="nav-container">
236
+ <gv-nav .routes="${this._routes}" ?small="${this._small}"></gv-nav>
237
+ <div class="right"><slot name="right-transition"></slot><slot name="right"></slot></div>
238
+ </div>
239
+ </div>
240
+ `;
241
+ }
242
+ updated(changedProperties) {
243
+ super.updated(changedProperties);
244
+ let _header = false;
245
+ for (const node of this.childNodes) {
246
+ if (node.nodeType === 1) {
247
+ const child = node.nodeName.toLowerCase() === 'gv-header' ? node : node.querySelector('gv-header');
248
+ if (child) {
249
+ child.sticky = this.sticky;
250
+ _header = true;
251
+ break;
252
+ }
253
+ }
254
+ }
255
+ this._hasHeader = _header;
256
+ }
257
+ }
258
+ window.customElements.define('gv-menu', GvMenu);
@@ -1 +1,258 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvNewsletterSubscription=void 0;const t=require("lit"),e=require("../lib/events");class i extends t.LitElement{static get properties(){return{title:{type:String},header:{type:String},placeholder:{type:String},subscribeLabel:{type:String,attribute:"subscribe-label"},skipLabel:{type:String,attribute:"skip-label"},taglines:{type:Array},email:{type:String},disabled:{type:Boolean},githubUrl:{type:String,attribute:"github-url"},twitterUrl:{type:String,attribute:"twitter-url"},linkedinUrl:{type:String,attribute:"linkedin-url"},_invalid:{type:Boolean,attribute:!1}}}static get styles(){return[t.css`:host{box-sizing:border-box;margin:.2rem}.newsletter-container{display:flex;flex-direction:column;align-items:center;justify-content:space-between;max-width:680px;box-shadow:0 0 20px 0 rgba(0,0,0,.2),0 5px 5px 0 rgba(0,0,0,.24);padding:25px 20px 5px 20px}.newsletter__header{text-transform:uppercase;font-style:oblique;text-align:center;font-size:16px;font-weight:700;padding:5px 35px;color:var(--gv-theme-neutral-color-lightest,#fff);background-color:var(--gv-theme-color-light,#86c3d0)}.newsletter__title{display:flex;flex-direction:column;align-items:center;font-size:20px;text-transform:uppercase;padding:20px;color:var(--gv-theme-color-light,#86c3d0)}.newsletter__title-highlight{font-size:30px}.newsletter__email{display:flex;flex-direction:column;width:50%}.newsletter__taglines{display:flex;flex-direction:row;justify-content:space-between;align-items:center;text-align:center;text-transform:uppercase;font-size:14px;height:20%;margin-top:20px;padding:10px 0;color:var(--gv-theme-color-darker,#383e3f);border-bottom:solid 1px var(--gv-theme-color-darker,#383e3f)}.newsletter__tagline{display:flex;flex-basis:100%;flex-direction:column;justify-content:center;align-items:center;height:100%;font-weight:700;padding:0 15px;border-right:solid 1px var(--gv-theme-color-darker,#383e3f)}.newsletter__tagline.last{border-right:none}.newsletter__tagline-text{width:100%}.newsletter__skip{margin-top:20px}.social{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.social-link{--gv-icon--c:var(--gv-theme-color-light, #86c3d0);--gv-icon--s:32px}`]}constructor(){super(),this.header="Customers process over 1 billion requests through the gravitee.io gateway in just one week",this.title="Community of api masters",this.placeholder="Enter your email",this.subscribeLabel="Become an API master now",this.taglines=["New release monthly updates","Free trial of Gravitee.IO enterprise","Share your experiences with other members"],this.skipLabel="Skip",this.email="",this.disabled=!1,this._invalid=!0,this.githubUrl="https://github.com/gravitee-io",this.twitterUrl="https://twitter.com/GraviteeIO",this.linkedinUrl="https://www.linkedin.com/company/gravitee-io/"}render(){return t.html`<div class="newsletter-container"><div class="newsletter__header">${this.header}</div><div class="newsletter__title"><span>Join the</span> <span class="newsletter__title-highlight">${this.title}</span> <span>Today</span></div><div class="newsletter__email"><gv-input id="email" name="email" @gv-input:submit="${this._onSubscribe}" @gv-input:input="${this._onInputChange}" type="email" required .value="${this.email}" .disabled="${this.disabled}" placeholder="${this.placeholder}"></gv-input><gv-button @click="${this._onSubscribe}" id="email-submit" provider="graviteeio_am" icon-right="navigation:angle-right" .disabled="${!this.disabled&&this._invalid}">${this.subscribeLabel}</gv-button></div>${this.taglines.length>0?t.html`<div class="newsletter__taglines">${this.taglines.map(((e,i,s)=>t.html`<div class="newsletter__tagline ${i===s.length-1?"last":""}"><div class="newsletter__tagline-text">${e}</div></div>`))}</div>`:""}<div class="newsletter__skip"><gv-button @click="${this._onSkip}" provider="graviteeio_am" icon-right="navigation:angle-right" small outlined>${this.skipLabel}</gv-button></div><div class="social"><gv-button class="social-link" link icon="thirdparty:github" .href="${this.githubUrl}" @gv-button:click="${this._navigateSocial.bind(this,this.githubUrl)}"></gv-button><gv-button class="social-link" link icon="thirdparty:twitter" .href="${this.twitterUrl}" @gv-button:click="${this._navigateSocial.bind(this,this.twitterUrl)}"></gv-button><gv-button class="social-link" link icon="thirdparty:linkedin" .href="${this.linkedinUrl}" @gv-button:click="${this._navigateSocial.bind(this,this.linkedinUrl)}"></gv-button></div></div>`}_onSubscribe(){(0,e.dispatchCustomEvent)(this,"subscribe",this.email)}_onSkip(){(0,e.dispatchCustomEvent)(this,"skip")}_navigateSocial(t){window.open(t,"_blank")}_onInputChange(t){this._invalid=t.target.invalid,this.email=t.detail}}exports.GvNewsletterSubscription=i,window.customElements.define("gv-newsletter-subscription",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 { css, html, LitElement } from 'lit';
17
+ import { dispatchCustomEvent } from '../lib/events';
18
+ /**
19
+ * The newsletter subscription page
20
+ *
21
+ * @fires gv-newsletter-subscription:subscribe - Custom event when link click
22
+ * @fires gv-newsletter-subscription:skip - Custom event when link click
23
+ *
24
+ * @attr {String} title - The title of newsletter subscription container
25
+ * @attr {String} header - The header of newsletter subscription container
26
+ * @attr {String} placeholder - The placeholder used for the email input
27
+ * @attr {String} subscribeLabel - The text of the subscribe button
28
+ * @attr {String} skipLabel - The text of the skip button
29
+ * @attr {Array} taglines - The taglines to promote the newsletter subscription
30
+ * @attr {String} email - The email value
31
+ * @attr {Boolean} disabled - The disabled state of email input
32
+ * @attr {String} githubUrl - The url to github page
33
+ * @attr {String} twitterUrl - The url to twitter page
34
+ * @attr {String} linkedinUrl - The url to linkedin page
35
+ *
36
+ */
37
+ export class GvNewsletterSubscription extends LitElement {
38
+ static get properties() {
39
+ return {
40
+ title: { type: String },
41
+ header: { type: String },
42
+ placeholder: { type: String },
43
+ subscribeLabel: { type: String, attribute: 'subscribe-label' },
44
+ skipLabel: { type: String, attribute: 'skip-label' },
45
+ taglines: { type: Array },
46
+ email: { type: String },
47
+ disabled: { type: Boolean },
48
+ githubUrl: { type: String, attribute: 'github-url' },
49
+ twitterUrl: { type: String, attribute: 'twitter-url' },
50
+ linkedinUrl: { type: String, attribute: 'linkedin-url' },
51
+ _invalid: { type: Boolean, attribute: false },
52
+ };
53
+ }
54
+ static get styles() {
55
+ return [
56
+ // language=css
57
+ css `
58
+ :host {
59
+ box-sizing: border-box;
60
+ margin: 0.2rem;
61
+ }
62
+
63
+ .newsletter-container {
64
+ display: flex;
65
+ flex-direction: column;
66
+ align-items: center;
67
+ justify-content: space-between;
68
+ max-width: 680px;
69
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
70
+ padding: 25px 20px 5px 20px;
71
+ }
72
+
73
+ .newsletter__header {
74
+ text-transform: uppercase;
75
+ font-style: oblique;
76
+ text-align: center;
77
+ font-size: 16px;
78
+ font-weight: bold;
79
+ padding: 5px 35px;
80
+ color: var(--gv-theme-neutral-color-lightest, #ffffff);
81
+ background-color: var(--gv-theme-color-light, #86c3d0);
82
+ }
83
+
84
+ .newsletter__title {
85
+ display: flex;
86
+ flex-direction: column;
87
+ align-items: center;
88
+ font-size: 20px;
89
+ text-transform: uppercase;
90
+ padding: 20px;
91
+ color: var(--gv-theme-color-light, #86c3d0);
92
+ }
93
+
94
+ .newsletter__title-highlight {
95
+ font-size: 30px;
96
+ }
97
+
98
+ .newsletter__email {
99
+ display: flex;
100
+ flex-direction: column;
101
+ width: 50%;
102
+ }
103
+
104
+ .newsletter__taglines {
105
+ display: flex;
106
+ flex-direction: row;
107
+ justify-content: space-between;
108
+ align-items: center;
109
+ text-align: center;
110
+ text-transform: uppercase;
111
+ font-size: 14px;
112
+ height: 20%;
113
+ margin-top: 20px;
114
+ padding: 10px 0;
115
+ color: var(--gv-theme-color-darker, #383e3f);
116
+ border-bottom: solid 1px var(--gv-theme-color-darker, #383e3f);
117
+ }
118
+
119
+ .newsletter__tagline {
120
+ display: flex;
121
+ flex-basis: 100%;
122
+ flex-direction: column;
123
+ justify-content: center;
124
+ align-items: center;
125
+ height: 100%;
126
+ font-weight: bold;
127
+ padding: 0 15px;
128
+ border-right: solid 1px var(--gv-theme-color-darker, #383e3f);
129
+ }
130
+
131
+ .newsletter__tagline.last {
132
+ border-right: none;
133
+ }
134
+
135
+ .newsletter__tagline-text {
136
+ width: 100%;
137
+ }
138
+
139
+ .newsletter__skip {
140
+ margin-top: 20px;
141
+ }
142
+
143
+ .social {
144
+ width: 100%;
145
+ display: flex;
146
+ flex-direction: row;
147
+ justify-content: flex-end;
148
+ }
149
+
150
+ .social-link {
151
+ --gv-icon--c: var(--gv-theme-color-light, #86c3d0);
152
+ --gv-icon--s: 32px;
153
+ }
154
+ `,
155
+ ];
156
+ }
157
+ constructor() {
158
+ super();
159
+ this.header = 'Customers process over 1 billion requests through the gravitee.io gateway in just one week';
160
+ this.title = 'Community of api masters';
161
+ this.placeholder = 'Enter your email';
162
+ this.subscribeLabel = 'Become an API master now';
163
+ this.taglines = ['New release monthly updates', 'Free trial of Gravitee.IO enterprise', 'Share your experiences with other members'];
164
+ this.skipLabel = 'Skip';
165
+ this.email = '';
166
+ this.disabled = false;
167
+ this._invalid = true;
168
+ this.githubUrl = 'https://github.com/gravitee-io';
169
+ this.twitterUrl = 'https://twitter.com/GraviteeIO';
170
+ this.linkedinUrl = 'https://www.linkedin.com/company/gravitee-io/';
171
+ }
172
+ render() {
173
+ return html `
174
+ <div class="newsletter-container">
175
+ <div class="newsletter__header">
176
+ ${this.header}
177
+ </div>
178
+ <div class="newsletter__title">
179
+ <span>Join the</span>
180
+ <span class="newsletter__title-highlight">${this.title}</span>
181
+ <span>Today</span>
182
+ </div>
183
+ <div class="newsletter__email">
184
+ <gv-input
185
+ id="email"
186
+ name="email"
187
+ @gv-input:submit="${this._onSubscribe}"
188
+ @gv-input:input="${this._onInputChange}"
189
+ type="email"
190
+ required
191
+ .value="${this.email}"
192
+ .disabled=${this.disabled}
193
+ placeholder="${this.placeholder}"
194
+ ></gv-input>
195
+ <gv-button @click="${this._onSubscribe}"
196
+ id="email-submit"
197
+ provider="graviteeio_am"
198
+ icon-right="navigation:angle-right"
199
+ .disabled=${!this.disabled && this._invalid}>
200
+ ${this.subscribeLabel}
201
+ </gv-button>
202
+ </div>
203
+ ${this.taglines.length > 0
204
+ ? html ` <div class="newsletter__taglines">
205
+ ${this.taglines.map((item, i, arr) => html `
206
+ <div class="newsletter__tagline ${i === arr.length - 1 ? 'last' : ''}">
207
+ <div class="newsletter__tagline-text">${item}</div>
208
+ </div>
209
+ `)}
210
+ </div>`
211
+ : ''}
212
+ <div class="newsletter__skip">
213
+ <gv-button @click="${this._onSkip}"
214
+ provider="graviteeio_am"
215
+ icon-right="navigation:angle-right"
216
+ small
217
+ outlined>
218
+ ${this.skipLabel}
219
+ </gv-button>
220
+ </div>
221
+ <div class="social">
222
+ <gv-button class="social-link"
223
+ link
224
+ icon="thirdparty:github"
225
+ .href="${this.githubUrl}"
226
+ @gv-button:click="${this._navigateSocial.bind(this, this.githubUrl)}">
227
+ </gv-button>
228
+ <gv-button class="social-link"
229
+ link icon="thirdparty:twitter"
230
+ .href="${this.twitterUrl}"
231
+ @gv-button:click="${this._navigateSocial.bind(this, this.twitterUrl)}">
232
+ </gv-button>
233
+ <gv-button class="social-link"
234
+ link
235
+ icon="thirdparty:linkedin"
236
+ .href="${this.linkedinUrl}"
237
+ @gv-button:click="${this._navigateSocial.bind(this, this.linkedinUrl)}">
238
+ </gv-button>
239
+ </gv-link>
240
+ </div>
241
+ </div>
242
+ `;
243
+ }
244
+ _onSubscribe() {
245
+ dispatchCustomEvent(this, 'subscribe', this.email);
246
+ }
247
+ _onSkip() {
248
+ dispatchCustomEvent(this, 'skip');
249
+ }
250
+ _navigateSocial(url) {
251
+ window.open(url, '_blank');
252
+ }
253
+ _onInputChange(e) {
254
+ this._invalid = e.target.invalid;
255
+ this.email = e.detail;
256
+ }
257
+ }
258
+ window.customElements.define('gv-newsletter-subscription', GvNewsletterSubscription);