@gravitee/ui-components 3.25.1 → 3.25.3-typescript-ad6021f

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 (111) hide show
  1. package/CHANGELOG.md +1292 -0
  2. package/LICENSE.txt +202 -0
  3. package/README.md +195 -0
  4. package/package.json +17 -4
  5. package/src/.eslintrc.js +19 -0
  6. package/src/atoms/gv-autocomplete.js +156 -132
  7. package/src/atoms/gv-button.js +248 -73
  8. package/src/atoms/gv-checkbox.js +103 -45
  9. package/src/atoms/gv-date-picker-calendar.js +393 -312
  10. package/src/atoms/gv-date-picker-cell.js +81 -57
  11. package/src/atoms/gv-date-picker.js +319 -180
  12. package/src/atoms/gv-file-upload.js +195 -85
  13. package/src/atoms/gv-icon.js +34 -13
  14. package/src/atoms/gv-image.js +66 -31
  15. package/src/atoms/gv-input-message.js +37 -12
  16. package/src/atoms/gv-input.js +148 -117
  17. package/src/atoms/gv-link.js +125 -47
  18. package/src/atoms/gv-message.js +69 -18
  19. package/src/atoms/gv-metric.js +68 -19
  20. package/src/atoms/gv-relative-time.js +38 -67
  21. package/src/atoms/gv-select-native.js +215 -96
  22. package/src/atoms/gv-select.js +230 -110
  23. package/src/atoms/gv-spinner.js +26 -5
  24. package/src/atoms/gv-state.js +66 -25
  25. package/src/atoms/gv-switch.js +160 -40
  26. package/src/atoms/gv-tag.js +78 -26
  27. package/src/atoms/gv-text.js +83 -22
  28. package/src/charts/gv-chart-bar.js +18 -22
  29. package/src/charts/gv-chart-gauge.js +31 -28
  30. package/src/charts/gv-chart-histogram.js +10 -18
  31. package/src/charts/gv-chart-line.js +59 -70
  32. package/src/charts/gv-chart-map.js +42 -44
  33. package/src/charts/gv-chart-pie.js +14 -18
  34. package/src/index.js +0 -1
  35. package/src/lib/cron-expression.js +35 -40
  36. package/src/lib/date.js +1 -10
  37. package/src/lib/events.js +1 -3
  38. package/src/lib/http-client-schema-form.js +12 -13
  39. package/src/lib/http.js +56 -57
  40. package/src/lib/i18n.js +22 -30
  41. package/src/lib/item.js +12 -13
  42. package/src/lib/properties.js +42 -77
  43. package/src/lib/schema-form.js +5 -4
  44. package/src/lib/studio.js +60 -13
  45. package/src/lib/style.js +8 -8
  46. package/src/lib/text-format.js +7 -14
  47. package/src/lib/theme.js +5 -8
  48. package/src/lib/utils.js +18 -17
  49. package/src/mixins/chart-element.js +54 -31
  50. package/src/mixins/input-element.js +47 -60
  51. package/src/mixins/item-resource.js +32 -34
  52. package/src/mixins/keyboard-element.js +5 -6
  53. package/src/mixins/update-after-browser.js +1 -4
  54. package/src/mixins/with-resize-observer.js +13 -23
  55. package/src/mixins/with-skeleton-attribute.js +48 -54
  56. package/src/molecules/gv-card-full.js +147 -26
  57. package/src/molecules/gv-card-list.js +42 -13
  58. package/src/molecules/gv-card.js +91 -17
  59. package/src/molecules/gv-category-list.js +17 -6
  60. package/src/molecules/gv-category.js +103 -23
  61. package/src/molecules/gv-code.js +142 -80
  62. package/src/molecules/gv-confirm.js +71 -41
  63. package/src/molecules/gv-cron-editor.js +389 -143
  64. package/src/molecules/gv-dropdown-menu.js +46 -14
  65. package/src/molecules/gv-expandable.js +59 -31
  66. package/src/molecules/gv-expression-language.js +138 -176
  67. package/src/molecules/gv-identity-picture.js +66 -43
  68. package/src/molecules/gv-list.js +134 -42
  69. package/src/molecules/gv-metrics.js +49 -37
  70. package/src/molecules/gv-modal.js +95 -28
  71. package/src/molecules/gv-nav.js +75 -49
  72. package/src/molecules/gv-option.js +130 -57
  73. package/src/molecules/gv-plans.js +209 -86
  74. package/src/molecules/gv-popover.js +177 -57
  75. package/src/molecules/gv-promote.js +146 -28
  76. package/src/molecules/gv-rating-list.js +195 -69
  77. package/src/molecules/gv-rating.js +105 -52
  78. package/src/molecules/gv-row-expandable.js +11 -5
  79. package/src/molecules/gv-row.js +147 -21
  80. package/src/molecules/gv-stats.js +48 -23
  81. package/src/molecules/gv-stepper.js +187 -43
  82. package/src/molecules/gv-table.js +309 -199
  83. package/src/molecules/gv-tree.js +156 -33
  84. package/src/organisms/gv-documentation.js +127 -44
  85. package/src/organisms/gv-header.js +195 -37
  86. package/src/organisms/gv-http-client.js +168 -32
  87. package/src/organisms/gv-menu.js +158 -37
  88. package/src/organisms/gv-newsletter-subscription.js +189 -48
  89. package/src/organisms/gv-pagination.js +77 -49
  90. package/src/organisms/gv-properties.js +492 -271
  91. package/src/organisms/gv-resizable-views.js +259 -41
  92. package/src/organisms/gv-resources.js +275 -168
  93. package/src/organisms/gv-schema-form-array.js +159 -49
  94. package/src/organisms/gv-schema-form-control-object.js +73 -59
  95. package/src/organisms/gv-schema-form-control.js +134 -107
  96. package/src/organisms/gv-schema-form.js +313 -208
  97. package/src/organisms/gv-tabs.js +98 -66
  98. package/src/organisms/gv-user-menu.js +201 -36
  99. package/src/organisms/gv-vertical-menu.js +61 -20
  100. package/src/policy-studio/gv-flow-step.js +265 -105
  101. package/src/policy-studio/gv-flow.js +304 -125
  102. package/src/policy-studio/gv-policy-studio-menu.js +471 -157
  103. package/src/policy-studio/gv-policy-studio.js +774 -710
  104. package/src/styles/empty.js +20 -3
  105. package/src/styles/input.js +247 -3
  106. package/src/styles/link.js +16 -3
  107. package/src/styles/shapes.js +0 -1
  108. package/src/styles/skeleton.js +37 -3
  109. package/src/styles/zoom.js +24 -3
  110. package/src/theme/definition.json +1762 -0
  111. package/src/theme/gv-theme.js +60 -21
@@ -21,6 +21,7 @@ import '../atoms/gv-button';
21
21
  import { i18n } from '../lib/i18n';
22
22
  import { ItemResource } from '../mixins/item-resource';
23
23
  import { getVersion, getTitle } from '../lib/item';
24
+
24
25
  /**
25
26
  * Card component
26
27
  *
@@ -31,29 +32,102 @@ import { getVersion, getTitle } from '../lib/item';
31
32
  *
32
33
  * @cssprop {Color} [--gv-card--bgc=var(--gv-theme-neutral-color-lightest, #ffffff)] - Background color
33
34
  */
34
-
35
35
  export class GvCard extends ItemResource(LitElement) {
36
36
  static get styles() {
37
- return [...super.styles, // language=CSS
38
- css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle;width:144px;max-height:144px}gv-identity-picture{width:65px;height:65px;--gv-image--of:contain}.card{position:relative;display:flex;flex-direction:column;max-width:144px;min-height:144px;border-radius:2px;background-color:var(--gv-card--bgc,var(--gv-theme-neutral-color-lightest,#fff));color:var(--gv-theme-font-color-dark,#262626);box-shadow:0 0 0 1px var(--gv-theme-neutral-color,#f5f5f5),0 1px 3px var(--gv-theme-neutral-color-dark,#bfbfbf);transition:all .3s}.card:hover{transform:translateY(-4px);box-shadow:0 10px 20px -10px var(--gv-theme-neutral-color-dark,#bfbfbf);cursor:pointer}.content>div{display:flex;justify-content:center;margin-bottom:.2rem}.image{display:flex;flex:1;align-items:center;justify-content:center;position:relative;padding-top:.2rem}.title{line-height:22px;font-size:var(--gv-theme-font-size-s,12px);text-transform:capitalize;font-weight:700;white-space:nowrap;overflow:hidden}.content{flex:1;padding:6px 16px 12px}.version{color:var(--gv-theme-neutral-color-dark,#d9d9d9);top:.4rem;right:.4rem;position:absolute}`, skeleton];
37
+ return [
38
+ ...super.styles,
39
+ // language=CSS
40
+ css`
41
+ :host {
42
+ box-sizing: border-box;
43
+ display: inline-block;
44
+ margin: 0.2rem;
45
+ vertical-align: middle;
46
+ width: 144px;
47
+ max-height: 144px;
48
+ }
49
+
50
+ gv-identity-picture {
51
+ width: 65px;
52
+ height: 65px;
53
+ --gv-image--of: contain;
54
+ }
55
+
56
+ .card {
57
+ position: relative;
58
+ display: flex;
59
+ flex-direction: column;
60
+ max-width: 144px;
61
+ min-height: 144px;
62
+ border-radius: 2px;
63
+ background-color: var(--gv-card--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));
64
+ color: var(--gv-theme-font-color-dark, #262626);
65
+ box-shadow: 0 0 0 1px var(--gv-theme-neutral-color, #f5f5f5), 0 1px 3px var(--gv-theme-neutral-color-dark, #bfbfbf);
66
+ transition: all 0.3s;
67
+ }
68
+
69
+ .card:hover {
70
+ transform: translateY(-4px);
71
+ box-shadow: 0 10px 20px -10px var(--gv-theme-neutral-color-dark, #bfbfbf);
72
+ cursor: pointer;
73
+ }
74
+
75
+ .content > div {
76
+ display: flex;
77
+ justify-content: center;
78
+ margin-bottom: 0.2rem;
79
+ }
80
+
81
+ .image {
82
+ display: flex;
83
+ flex: 1;
84
+ align-items: center;
85
+ justify-content: center;
86
+ position: relative;
87
+ padding-top: 0.2rem;
88
+ }
89
+
90
+ .title {
91
+ line-height: 22px;
92
+ font-size: var(--gv-theme-font-size-s, 12px);
93
+ text-transform: capitalize;
94
+ font-weight: bold;
95
+ white-space: nowrap;
96
+ overflow: hidden;
97
+ }
98
+
99
+ .content {
100
+ flex: 1;
101
+ padding: 6px 16px 12px;
102
+ }
103
+
104
+ .version {
105
+ color: var(--gv-theme-neutral-color-dark, #d9d9d9);
106
+ top: 0.4rem;
107
+ right: 0.4rem;
108
+ position: absolute;
109
+ }
110
+ `,
111
+ skeleton,
112
+ ];
39
113
  }
40
114
 
41
115
  render() {
42
116
  const title = getTitle(this._item);
43
- return html`<div class="card" title="${title}"> <span class="${classMap({
44
- skeleton: this._skeleton,
45
- version: true
46
- })}">${getVersion(this._item)}</span> <div class="${classMap({
47
- image: true,
48
- skeleton: this._skeleton
49
- })}">${this._renderImage()}</div> <div class="${classMap({
50
- content: true,
51
- empty: this._error || this._empty
52
- })}"> ${this._error || this._empty ? html` <span>${this._error ? i18n('gv-card.error') : i18n('gv-card.empty')}</span> ` : html` <div class="${classMap({
53
- skeleton: this._skeleton
54
- })}"> <span class="title">${title}</span> </div> <div>${this._renderStates()}</div>`} </div> </div>`;
55
- }
117
+ return html`<div class="card" title="${title}">
118
+ <span class="${classMap({ skeleton: this._skeleton, version: true })}">${getVersion(this._item)}</span>
119
+ <div class="${classMap({ image: true, skeleton: this._skeleton })}">${this._renderImage()}</div>
56
120
 
121
+ <div class="${classMap({ content: true, empty: this._error || this._empty })}">
122
+ ${this._error || this._empty
123
+ ? html` <span>${this._error ? i18n('gv-card.error') : i18n('gv-card.empty')}</span> `
124
+ : html` <div class="${classMap({ skeleton: this._skeleton })}">
125
+ <span class="title">${title}</span>
126
+ </div>
127
+ <div>${this._renderStates()}</div>`}
128
+ </div>
129
+ </div>`;
130
+ }
57
131
  }
132
+
58
133
  window.customElements.define('gv-card', GvCard);
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1jYXJkLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwic2tlbGV0b24iLCJjbGFzc01hcCIsImkxOG4iLCJJdGVtUmVzb3VyY2UiLCJnZXRWZXJzaW9uIiwiZ2V0VGl0bGUiLCJHdkNhcmQiLCJzdHlsZXMiLCJyZW5kZXIiLCJ0aXRsZSIsIl9pdGVtIiwiX3NrZWxldG9uIiwidmVyc2lvbiIsImltYWdlIiwiX3JlbmRlckltYWdlIiwiY29udGVudCIsImVtcHR5IiwiX2Vycm9yIiwiX2VtcHR5IiwiX3JlbmRlclN0YXRlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsRUFBMEJDLElBQTFCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixvQkFBekI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLE9BQU8sbUJBQVA7QUFDQSxPQUFPLG9CQUFQO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MsVUFBVCxFQUFxQkMsUUFBckIsUUFBcUMsYUFBckM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE1BQU4sU0FBcUJILFlBQVksQ0FBQ0wsVUFBRCxDQUFqQyxDQUE4QztBQUNsQyxhQUFOUyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMO0FBQ0FWLElBQUFBLEdBQUcseW1DQUhFLEVBMEVMRyxRQTFFSyxDQUFQO0FBNEVEOztBQUVEUSxFQUFBQSxNQUFNLEdBQUc7QUFDUCxVQUFNQyxLQUFLLEdBQUdKLFFBQVEsQ0FBQyxLQUFLSyxLQUFOLENBQXRCO0FBQ0EsV0FBT1gsSUFBSSw0QkFBNEJVLEtBQTVCLG1CQUNNUixRQUFRLENBQUM7QUFBRUQsTUFBQUEsUUFBUSxFQUFFLEtBQUtXLFNBQWpCO0FBQTRCQyxNQUFBQSxPQUFPLEVBQUU7QUFBckMsS0FBRCxDQURkLEtBQ2dFUixVQUFVLENBQUMsS0FBS00sS0FBTixDQUQxRSx1QkFFS1QsUUFBUSxDQUFDO0FBQUVZLE1BQUFBLEtBQUssRUFBRSxJQUFUO0FBQWViLE1BQUFBLFFBQVEsRUFBRSxLQUFLVztBQUE5QixLQUFELENBRmIsS0FFNkQsS0FBS0csWUFBTCxFQUY3RCxzQkFJS2IsUUFBUSxDQUFDO0FBQUVjLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCQyxNQUFBQSxLQUFLLEVBQUUsS0FBS0MsTUFBTCxJQUFlLEtBQUtDO0FBQTVDLEtBQUQsQ0FKYixNQUtMLEtBQUtELE1BQUwsSUFBZSxLQUFLQyxNQUFwQixHQUNFbkIsSUFBSSxVQUFVLEtBQUtrQixNQUFMLEdBQWNmLElBQUksQ0FBQyxlQUFELENBQWxCLEdBQXNDQSxJQUFJLENBQUMsZUFBRCxDQUFwRCxVQUROLEdBRUVILElBQUksZ0JBQWdCRSxRQUFRLENBQUM7QUFBRUQsTUFBQUEsUUFBUSxFQUFFLEtBQUtXO0FBQWpCLEtBQUQsQ0FBeEIsMEJBQ3NCRixLQUR0Qix1QkFHSyxLQUFLVSxhQUFMLEVBSEwsUUFQRCxnQkFBWDtBQWFEOztBQS9Ga0Q7QUFrR3JEQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFNBQTdCLEVBQXdDaEIsTUFBeEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50LCBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW1hZ2UnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1idXR0b24nO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEl0ZW1SZXNvdXJjZSB9IGZyb20gJy4uL21peGlucy9pdGVtLXJlc291cmNlJztcbmltcG9ydCB7IGdldFZlcnNpb24sIGdldFRpdGxlIH0gZnJvbSAnLi4vbGliL2l0ZW0nO1xuXG4vKipcbiAqIENhcmQgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGF0dHIge1Byb21pc2U8YW55Pn0gaXRlbSAtIEFuIGl0ZW0uXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1jYXJkLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZildIC0gQmFja2dyb3VuZCBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZDYXJkIGV4dGVuZHMgSXRlbVJlc291cmNlKExpdEVsZW1lbnQpIHtcbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLnN0eWxlcyxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB3aWR0aDogMTQ0cHg7XG4gICAgICAgICAgbWF4LWhlaWdodDogMTQ0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pZGVudGl0eS1waWN0dXJlIHtcbiAgICAgICAgICB3aWR0aDogNjVweDtcbiAgICAgICAgICBoZWlnaHQ6IDY1cHg7XG4gICAgICAgICAgLS1ndi1pbWFnZS0tb2Y6IGNvbnRhaW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBtYXgtd2lkdGg6IDE0NHB4O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDE0NHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1jYXJkLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSksIDAgMXB4IDNweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcmQ6aG92ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCAtMTBweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gZGl2IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMsIDEycHgpO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHBhZGRpbmc6IDZweCAxNnB4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAudmVyc2lvbiB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2Q5ZDlkOSk7XG4gICAgICAgICAgdG9wOiAwLjRyZW07XG4gICAgICAgICAgcmlnaHQ6IDAuNHJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHRpdGxlID0gZ2V0VGl0bGUodGhpcy5faXRlbSk7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImNhcmRcIiB0aXRsZT1cIiR7dGl0bGV9XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24sIHZlcnNpb246IHRydWUgfSl9XCI+JHtnZXRWZXJzaW9uKHRoaXMuX2l0ZW0pfTwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgaW1hZ2U6IHRydWUsIHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiB9KX1cIj4ke3RoaXMuX3JlbmRlckltYWdlKCl9PC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgY29udGVudDogdHJ1ZSwgZW1wdHk6IHRoaXMuX2Vycm9yIHx8IHRoaXMuX2VtcHR5IH0pfVwiPlxuICAgICAgICAke3RoaXMuX2Vycm9yIHx8IHRoaXMuX2VtcHR5XG4gICAgICAgICAgPyBodG1sYCA8c3Bhbj4ke3RoaXMuX2Vycm9yID8gaTE4bignZ3YtY2FyZC5lcnJvcicpIDogaTE4bignZ3YtY2FyZC5lbXB0eScpfTwvc3Bhbj4gYFxuICAgICAgICAgIDogaHRtbGAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24gfSl9XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPiR7dGl0bGV9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj4ke3RoaXMuX3JlbmRlclN0YXRlcygpfTwvZGl2PmB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWNhcmQnLCBHdkNhcmQpO1xuIl19
@@ -16,6 +16,7 @@
16
16
  import { css, html } from 'lit';
17
17
  import './gv-category';
18
18
  import { GvCardList } from './gv-card-list';
19
+
19
20
  /**
20
21
  * List of categories
21
22
  *
@@ -29,11 +30,22 @@ import { GvCardList } from './gv-card-list';
29
30
  * @cssprop {Color} [--gv-category-list--bgc-5=#d4fccd] - Category background color 5
30
31
  * @cssprop {Color} [--gv-category-list--bgc-6=#e0c8b2] - Category background color 6
31
32
  */
32
-
33
33
  export class GvCategoryList extends GvCardList {
34
34
  static get styles() {
35
- return [...super.styles, // language=CSS
36
- css`:host{--bgc-1:var(--gv-category-list--bgc-1, #cce6eb);--bgc-2:var(--gv-category-list--bgc-2, #fcf1a8);--bgc-3:var(--gv-category-list--bgc-3, #d9d4f1);--bgc-4:var(--gv-category-list--bgc-4, #f9c15e);--bgc-5:var(--gv-category-list--bgc-5, #d4fccd);--bgc-6:var(--gv-category-list--bgc-6, #e0c8b2)}`];
35
+ return [
36
+ ...super.styles,
37
+ // language=CSS
38
+ css`
39
+ :host {
40
+ --bgc-1: var(--gv-category-list--bgc-1, #cce6eb);
41
+ --bgc-2: var(--gv-category-list--bgc-2, #fcf1a8);
42
+ --bgc-3: var(--gv-category-list--bgc-3, #d9d4f1);
43
+ --bgc-4: var(--gv-category-list--bgc-4, #f9c15e);
44
+ --bgc-5: var(--gv-category-list--bgc-5, #d4fccd);
45
+ --bgc-6: var(--gv-category-list--bgc-6, #e0c8b2);
46
+ }
47
+ `,
48
+ ];
37
49
  }
38
50
 
39
51
  renderItem(item, index) {
@@ -41,9 +53,8 @@ export class GvCategoryList extends GvCardList {
41
53
  }
42
54
 
43
55
  _getCategoryBackgroundColor(index) {
44
- return `--gv-category--bgc: var(--bgc-${index % 6 + 1})`;
56
+ return `--gv-category--bgc: var(--bgc-${(index % 6) + 1})`;
45
57
  }
46
-
47
58
  }
59
+
48
60
  window.customElements.define('gv-category-list', GvCategoryList);
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1jYXRlZ29yeS1saXN0LmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJHdkNhcmRMaXN0IiwiR3ZDYXRlZ29yeUxpc3QiLCJzdHlsZXMiLCJyZW5kZXJJdGVtIiwiaXRlbSIsImluZGV4IiwiX2dldENhdGVnb3J5QmFja2dyb3VuZENvbG9yIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxRQUEwQixLQUExQjtBQUNBLE9BQU8sZUFBUDtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsZ0JBQTNCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxjQUFOLFNBQTZCRCxVQUE3QixDQUF3QztBQUM1QixhQUFORSxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMO0FBQ0FKLElBQUFBLEdBQUcsd1NBSEUsQ0FBUDtBQWNEOztBQUVESyxFQUFBQSxVQUFVLENBQUNDLElBQUQsRUFBT0MsS0FBUCxFQUFjO0FBQ3RCLFdBQU9OLElBQUksd0NBQXdDSyxJQUFJLElBQUksSUFBaEQsWUFBZ0UsS0FBS0UsMkJBQUwsQ0FBaUNELEtBQWpDLENBQWhFLG1CQUFYO0FBQ0Q7O0FBRURDLEVBQUFBLDJCQUEyQixDQUFDRCxLQUFELEVBQVE7QUFDakMsV0FBUSxpQ0FBaUNBLEtBQUssR0FBRyxDQUFULEdBQWMsQ0FBRSxHQUF4RDtBQUNEOztBQXhCNEM7QUEyQi9DRSxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLGtCQUE3QixFQUFpRFIsY0FBakQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCAnLi9ndi1jYXRlZ29yeSc7XG5pbXBvcnQgeyBHdkNhcmRMaXN0IH0gZnJvbSAnLi9ndi1jYXJkLWxpc3QnO1xuXG4vKipcbiAqIExpc3Qgb2YgY2F0ZWdvcmllc1xuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTE9I2NjZTZlYl0gLSBDYXRlZ29yeSBiYWNrZ3JvdW5kIGNvbG9yIDFcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTI9I2ZjZjFhOF0gLSBDYXRlZ29yeSBiYWNrZ3JvdW5kIGNvbG9yIDJcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTM9I2Q5ZDRmMV0gLSBDYXRlZ29yeSBiYWNrZ3JvdW5kIGNvbG9yIDNcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTQ9I2Y5YzE1ZV0gLSBDYXRlZ29yeSBiYWNrZ3JvdW5kIGNvbG9yIDRcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTU9I2Q0ZmNjZF0gLSBDYXRlZ29yeSBiYWNrZ3JvdW5kIGNvbG9yIDVcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTY9I2UwYzhiMl0gLSBDYXRlZ29yeSBiYWNrZ3JvdW5kIGNvbG9yIDZcbiAqL1xuZXhwb3J0IGNsYXNzIEd2Q2F0ZWdvcnlMaXN0IGV4dGVuZHMgR3ZDYXJkTGlzdCB7XG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5zdHlsZXMsXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIC0tYmdjLTE6IHZhcigtLWd2LWNhdGVnb3J5LWxpc3QtLWJnYy0xLCAjY2NlNmViKTtcbiAgICAgICAgICAtLWJnYy0yOiB2YXIoLS1ndi1jYXRlZ29yeS1saXN0LS1iZ2MtMiwgI2ZjZjFhOCk7XG4gICAgICAgICAgLS1iZ2MtMzogdmFyKC0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTMsICNkOWQ0ZjEpO1xuICAgICAgICAgIC0tYmdjLTQ6IHZhcigtLWd2LWNhdGVnb3J5LWxpc3QtLWJnYy00LCAjZjljMTVlKTtcbiAgICAgICAgICAtLWJnYy01OiB2YXIoLS1ndi1jYXRlZ29yeS1saXN0LS1iZ2MtNSwgI2Q0ZmNjZCk7XG4gICAgICAgICAgLS1iZ2MtNjogdmFyKC0tZ3YtY2F0ZWdvcnktbGlzdC0tYmdjLTYsICNlMGM4YjIpO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICByZW5kZXJJdGVtKGl0ZW0sIGluZGV4KSB7XG4gICAgcmV0dXJuIGh0bWxgPGd2LWNhdGVnb3J5IGNsYXNzPVwiaXRlbVwiIC5jYXRlZ29yeT1cIiR7aXRlbSB8fCBudWxsfVwiIHN0eWxlPVwiJHt0aGlzLl9nZXRDYXRlZ29yeUJhY2tncm91bmRDb2xvcihpbmRleCl9XCI+IDwvZ3YtY2F0ZWdvcnk+YDtcbiAgfVxuXG4gIF9nZXRDYXRlZ29yeUJhY2tncm91bmRDb2xvcihpbmRleCkge1xuICAgIHJldHVybiBgLS1ndi1jYXRlZ29yeS0tYmdjOiB2YXIoLS1iZ2MtJHsoaW5kZXggJSA2KSArIDF9KWA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtY2F0ZWdvcnktbGlzdCcsIEd2Q2F0ZWdvcnlMaXN0KTtcbiJdfQ==
@@ -19,6 +19,7 @@ import { classMap } from 'lit/directives/class-map';
19
19
  import { dispatchCustomEvent } from '../lib/events';
20
20
  import { i18n } from '../lib/i18n';
21
21
  import { withSkeletonAttribute } from '../mixins/with-skeleton-attribute';
22
+
22
23
  /**
23
24
  * A card used to display a category
24
25
  *
@@ -34,26 +35,94 @@ import { withSkeletonAttribute } from '../mixins/with-skeleton-attribute';
34
35
  * @cssprop {Color} [--gv-category--c=var(--gv-theme-font-color-dark, #262626)] - Color
35
36
  * @cssprop {Length} [--gv-category--h=200px] - Height
36
37
  */
37
-
38
38
  export class GvCategory extends withSkeletonAttribute(LitElement) {
39
39
  static get properties() {
40
40
  return {
41
- category: {
42
- type: Object
43
- },
44
- limit: {
45
- type: Number
46
- },
47
- _category: {
48
- type: Object,
49
- attribute: false
50
- }
41
+ category: { type: Object },
42
+ limit: { type: Number },
43
+ _category: { type: Object, attribute: false },
51
44
  };
52
45
  }
53
46
 
54
47
  static get styles() {
55
- return [...super.styles, // language=CSS
56
- css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle;min-width:415px}.card{background-color:var(--gv-category--bgc,var(--gv-theme-neutral-color-lightest,#fff));border-radius:4px;display:flex;flex-direction:column;height:var(--gv-category--h,200px);padding:2rem;box-shadow:0 0 0 1px var(--gv-theme-neutral-color-dark,#bfbfbf),0 1px 3px var(--gv-theme-neutral-color-dark,#bfbfbf);transition:all .3s;position:relative}.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -14px var(--gv-theme-neutral-color,#f5f5f5);cursor:pointer}.box{display:flex}.title{flex:1;align-self:center}.title span{font-size:var(--gv-theme-font-size-s);font-weight:600;line-height:var(--gv-theme-font-size-s);margin-left:8px;opacity:.7}gv-identity-picture{height:80px;width:80px;margin:.5rem 1rem .5rem 0}.title{color:var(--gv-category--c,var(--gv-theme-font-color-dark,#262626));font-size:var(--gv-theme-font-size-xxl,30px);font-style:normal;font-weight:600;line-height:calc(var(--gv-theme-font-size-xxl,30px) + 6px)}.description{color:var(--gv-category--c,var(--gv-theme-font-color-dark,#262626));font-size:var(--gv-theme-font-size-l,16px);font-style:normal;font-weight:400;line-height:24px;opacity:.7;max-height:150px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}`];
48
+ return [
49
+ ...super.styles,
50
+ // language=CSS
51
+ css`
52
+ :host {
53
+ box-sizing: border-box;
54
+ display: inline-block;
55
+ margin: 0.2rem;
56
+ vertical-align: middle;
57
+ min-width: 415px;
58
+ }
59
+
60
+ .card {
61
+ background-color: var(--gv-category--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));
62
+ border-radius: 4px;
63
+ display: flex;
64
+ flex-direction: column;
65
+ height: var(--gv-category--h, 200px);
66
+ padding: 2rem;
67
+ box-shadow: 0 0 0 1px var(--gv-theme-neutral-color-dark, #bfbfbf), 0 1px 3px var(--gv-theme-neutral-color-dark, #bfbfbf);
68
+ transition: all 0.3s;
69
+ position: relative;
70
+ }
71
+
72
+ .card:hover {
73
+ transform: translateY(-4px);
74
+ box-shadow: 0 20px 40px -14px var(--gv-theme-neutral-color, #f5f5f5);
75
+ cursor: pointer;
76
+ }
77
+
78
+ .box {
79
+ display: flex;
80
+ }
81
+
82
+ .title {
83
+ flex: 1;
84
+ align-self: center;
85
+ }
86
+
87
+ .title span {
88
+ font-size: var(--gv-theme-font-size-s);
89
+ font-weight: 600;
90
+ line-height: var(--gv-theme-font-size-s);
91
+ margin-left: 8px;
92
+ opacity: 0.7;
93
+ }
94
+
95
+ gv-identity-picture {
96
+ height: 80px;
97
+ width: 80px;
98
+ margin: 0.5rem 1rem 0.5rem 0;
99
+ }
100
+
101
+ .title {
102
+ color: var(--gv-category--c, var(--gv-theme-font-color-dark, #262626));
103
+ font-size: var(--gv-theme-font-size-xxl, 30px);
104
+ font-style: normal;
105
+ font-weight: 600;
106
+ line-height: calc(var(--gv-theme-font-size-xxl, 30px) + 6px);
107
+ }
108
+
109
+ .description {
110
+ color: var(--gv-category--c, var(--gv-theme-font-color-dark, #262626));
111
+ font-size: var(--gv-theme-font-size-l, 16px);
112
+ font-style: normal;
113
+ font-weight: normal;
114
+ line-height: 24px;
115
+ opacity: 0.7;
116
+
117
+ /** text-overflow **/
118
+ max-height: 150px;
119
+ display: -webkit-box;
120
+ -webkit-line-clamp: 4;
121
+ -webkit-box-orient: vertical;
122
+ overflow: hidden;
123
+ }
124
+ `,
125
+ ];
57
126
  }
58
127
 
59
128
  constructor() {
@@ -65,7 +134,6 @@ export class GvCategory extends withSkeletonAttribute(LitElement) {
65
134
  if (this._category) {
66
135
  return this._category[property];
67
136
  }
68
-
69
137
  return '';
70
138
  }
71
139
 
@@ -75,16 +143,28 @@ export class GvCategory extends withSkeletonAttribute(LitElement) {
75
143
 
76
144
  render() {
77
145
  const total = this._get('total_apis');
146
+ return html`<div
147
+ @click=${this._onClick}
148
+ class="${classMap({ card: true, skeleton: this._skeleton, empty: this._error || this._empty })}"
149
+ >
150
+ ${this._error || this._empty
151
+ ? html`
152
+ <div class="${classMap({ skeleton: this._skeleton })}">
153
+ <span>${this._error ? i18n('gv-category.error') : i18n('gv-category.empty')}</span>
154
+ </div>
155
+ `
156
+ : html` <div class="box">
157
+ <gv-identity-picture
158
+ .skeleton="${this._skeleton}"
159
+ display_name="${this._get('name')}"
160
+ picture="${this._get('_links') ? this._get('_links').picture : ''}"
161
+ ></gv-identity-picture>
162
+ <div class="title">${this._get('name')}${total ? html`<span>(${total})</span>` : ''}</div>
163
+ </div>
78
164
 
79
- return html`<div @click="${this._onClick}" class="${classMap({
80
- card: true,
81
- skeleton: this._skeleton,
82
- empty: this._error || this._empty
83
- })}"> ${this._error || this._empty ? html` <div class="${classMap({
84
- skeleton: this._skeleton
85
- })}"> <span>${this._error ? i18n('gv-category.error') : i18n('gv-category.empty')}</span> </div> ` : html` <div class="box"> <gv-identity-picture .skeleton="${this._skeleton}" display_name="${this._get('name')}" picture="${this._get('_links') ? this._get('_links').picture : ''}"></gv-identity-picture> <div class="title">${this._get('name')}${total ? html`<span>(${total})</span>` : ''}</div> </div> <div class="description">${truncate(this._get('description'), this.limit)}</div>`} </div> `;
165
+ <div class="description">${truncate(this._get('description'), this.limit)}</div>`}
166
+ </div> `;
86
167
  }
87
-
88
168
  }
169
+
89
170
  window.customElements.define('gv-category', GvCategory);
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1jYXRlZ29yeS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsInRydW5jYXRlIiwiY2xhc3NNYXAiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiaTE4biIsIndpdGhTa2VsZXRvbkF0dHJpYnV0ZSIsIkd2Q2F0ZWdvcnkiLCJwcm9wZXJ0aWVzIiwiY2F0ZWdvcnkiLCJ0eXBlIiwiT2JqZWN0IiwibGltaXQiLCJOdW1iZXIiLCJfY2F0ZWdvcnkiLCJhdHRyaWJ1dGUiLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsIl9za2VsZXRvbkF0dHJpYnV0ZSIsIl9nZXQiLCJwcm9wZXJ0eSIsIl9vbkNsaWNrIiwicmVuZGVyIiwidG90YWwiLCJjYXJkIiwic2tlbGV0b24iLCJfc2tlbGV0b24iLCJlbXB0eSIsIl9lcnJvciIsIl9lbXB0eSIsInBpY3R1cmUiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVCxFQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixjQUF6QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MscUJBQVQsUUFBc0MsbUNBQXRDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsVUFBTixTQUF5QkQscUJBQXFCLENBQUNQLFVBQUQsQ0FBOUMsQ0FBMkQ7QUFDM0MsYUFBVlMsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsUUFBUSxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQURMO0FBRUxDLE1BQUFBLEtBQUssRUFBRTtBQUFFRixRQUFBQSxJQUFJLEVBQUVHO0FBQVIsT0FGRjtBQUdMQyxNQUFBQSxTQUFTLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFQyxNQUFSO0FBQWdCSSxRQUFBQSxTQUFTLEVBQUU7QUFBM0I7QUFITixLQUFQO0FBS0Q7O0FBRWdCLGFBQU5DLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0wsR0FBRyxNQUFNQSxNQURKLEVBRUw7QUFDQWYsSUFBQUEsR0FBRywweUNBSEUsQ0FBUDtBQThFRDs7QUFFRGdCLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEIsVUFBMUI7QUFDRDs7QUFFREMsRUFBQUEsSUFBSSxDQUFDQyxRQUFELEVBQVc7QUFDYixRQUFJLEtBQUtOLFNBQVQsRUFBb0I7QUFDbEIsYUFBTyxLQUFLQSxTQUFMLENBQWVNLFFBQWYsQ0FBUDtBQUNEOztBQUNELFdBQU8sRUFBUDtBQUNEOztBQUVEQyxFQUFBQSxRQUFRLEdBQUc7QUFDVGpCLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxPQUFQLEVBQWdCLEtBQUtVLFNBQXJCLENBQW5CO0FBQ0Q7O0FBRURRLEVBQUFBLE1BQU0sR0FBRztBQUNQLFVBQU1DLEtBQUssR0FBRyxLQUFLSixJQUFMLENBQVUsWUFBVixDQUFkOztBQUNBLFdBQU9uQixJQUFJLGdCQUNBLEtBQUtxQixRQURMLFlBRUFsQixRQUFRLENBQUM7QUFBRXFCLE1BQUFBLElBQUksRUFBRSxJQUFSO0FBQWNDLE1BQUFBLFFBQVEsRUFBRSxLQUFLQyxTQUE3QjtBQUF3Q0MsTUFBQUEsS0FBSyxFQUFFLEtBQUtDLE1BQUwsSUFBZSxLQUFLQztBQUFuRSxLQUFELENBRlIsTUFJUCxLQUFLRCxNQUFMLElBQWUsS0FBS0MsTUFBcEIsR0FDRTdCLElBQUksZ0JBQ1lHLFFBQVEsQ0FBQztBQUFFc0IsTUFBQUEsUUFBUSxFQUFFLEtBQUtDO0FBQWpCLEtBQUQsQ0FEcEIsWUFFUSxLQUFLRSxNQUFMLEdBQWN2QixJQUFJLENBQUMsbUJBQUQsQ0FBbEIsR0FBMENBLElBQUksQ0FBQyxtQkFBRCxDQUZ0RCxpQkFETixHQU1FTCxJQUFJLHNEQUVlLEtBQUswQixTQUZwQixtQkFHa0IsS0FBS1AsSUFBTCxDQUFVLE1BQVYsQ0FIbEIsY0FJYSxLQUFLQSxJQUFMLENBQVUsUUFBVixJQUFzQixLQUFLQSxJQUFMLENBQVUsUUFBVixFQUFvQlcsT0FBMUMsR0FBb0QsRUFKakUsK0NBTXFCLEtBQUtYLElBQUwsQ0FBVSxNQUFWLENBTnJCLEdBTXlDSSxLQUFLLEdBQUd2QixJQUFJLFVBQVV1QixLQUFWLFVBQVAsR0FBbUMsRUFOakYsMENBU3lCckIsUUFBUSxDQUFDLEtBQUtpQixJQUFMLENBQVUsYUFBVixDQUFELEVBQTJCLEtBQUtQLEtBQWhDLENBVGpDLFFBVkMsVUFBWDtBQXFCRDs7QUFqSStEO0FBb0lsRW1CLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsYUFBN0IsRUFBNEMxQixVQUE1QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgdHJ1bmNhdGUgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IHdpdGhTa2VsZXRvbkF0dHJpYnV0ZSB9IGZyb20gJy4uL21peGlucy93aXRoLXNrZWxldG9uLWF0dHJpYnV0ZSc7XG5cbi8qKlxuICogQSBjYXJkIHVzZWQgdG8gZGlzcGxheSBhIGNhdGVnb3J5XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LWNhdGVnb3J5OmNsaWNrIC0gQ3VzdG9tIGNsaWNrIGV2ZW50XG4gKlxuICogQGF0dHIge1Byb21pc2U8e25hbWUsIGRlc2NyaXB0aW9uLCBfbGlua3M6IHsgcGljdHVyZSB9LCB0b3RhbF9hcGlzfT59IGNhdGVnb3J5IC0gQSBjYXRlZ29yeSBvYmplY3RcbiAqIEBhdHRyIHtMZW5ndGh9IGxpbWl0IC0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgZGlzcGxheSBpbiB0aGUgZGVzY3JpcHRpb24uIElmIF9kZXNjcmlwdGlvbl8gaXMgZ3JlYXRlciwgaXQgd2lsbCBiZSB0cnVuY2F0ZWQuXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1jYXRlZ29yeS0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtY2F0ZWdvcnktLWM9dmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KV0gLSBDb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtY2F0ZWdvcnktLWg9MjAwcHhdIC0gSGVpZ2h0XG4gKi9cbmV4cG9ydCBjbGFzcyBHdkNhdGVnb3J5IGV4dGVuZHMgd2l0aFNrZWxldG9uQXR0cmlidXRlKExpdEVsZW1lbnQpIHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIGxpbWl0OiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgX2NhdGVnb3J5OiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VwZXIuc3R5bGVzLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIG1pbi13aWR0aDogNDE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtY2F0ZWdvcnktLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZikpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1ndi1jYXRlZ29yeS0taCwgMjAwcHgpO1xuICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZiksIDAgMXB4IDNweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggLTE0cHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcyk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMpO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWRlbnRpdHktcGljdHVyZSB7XG4gICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICAgIG1hcmdpbjogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi1jYXRlZ29yeS0tYywgdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KSk7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUteHhsLCAzMHB4KTtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ndi10aGVtZS1mb250LXNpemUteHhsLCAzMHB4KSArIDZweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi1jYXRlZ29yeS0tYywgdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KSk7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbCwgMTZweCk7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgb3BhY2l0eTogMC43O1xuXG4gICAgICAgICAgLyoqIHRleHQtb3ZlcmZsb3cgKiovXG4gICAgICAgICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA0O1xuICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9za2VsZXRvbkF0dHJpYnV0ZSA9ICdjYXRlZ29yeSc7XG4gIH1cblxuICBfZ2V0KHByb3BlcnR5KSB7XG4gICAgaWYgKHRoaXMuX2NhdGVnb3J5KSB7XG4gICAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcnlbcHJvcGVydHldO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBfb25DbGljaygpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjbGljaycsIHRoaXMuX2NhdGVnb3J5KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX2dldCgndG90YWxfYXBpcycpO1xuICAgIHJldHVybiBodG1sYDxkaXZcbiAgICAgIEBjbGljaz0ke3RoaXMuX29uQ2xpY2t9XG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBjYXJkOiB0cnVlLCBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24sIGVtcHR5OiB0aGlzLl9lcnJvciB8fCB0aGlzLl9lbXB0eSB9KX1cIlxuICAgID5cbiAgICAgICR7dGhpcy5fZXJyb3IgfHwgdGhpcy5fZW1wdHlcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24gfSl9XCI+XG4gICAgICAgICAgICAgIDxzcGFuPiR7dGhpcy5fZXJyb3IgPyBpMThuKCdndi1jYXRlZ29yeS5lcnJvcicpIDogaTE4bignZ3YtY2F0ZWdvcnkuZW1wdHknKX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgXG4gICAgICAgIDogaHRtbGAgPGRpdiBjbGFzcz1cImJveFwiPlxuICAgICAgICAgICAgICA8Z3YtaWRlbnRpdHktcGljdHVyZVxuICAgICAgICAgICAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5fc2tlbGV0b259XCJcbiAgICAgICAgICAgICAgICBkaXNwbGF5X25hbWU9XCIke3RoaXMuX2dldCgnbmFtZScpfVwiXG4gICAgICAgICAgICAgICAgcGljdHVyZT1cIiR7dGhpcy5fZ2V0KCdfbGlua3MnKSA/IHRoaXMuX2dldCgnX2xpbmtzJykucGljdHVyZSA6ICcnfVwiXG4gICAgICAgICAgICAgID48L2d2LWlkZW50aXR5LXBpY3R1cmU+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7dGhpcy5fZ2V0KCduYW1lJyl9JHt0b3RhbCA/IGh0bWxgPHNwYW4+KCR7dG90YWx9KTwvc3Bhbj5gIDogJyd9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHt0cnVuY2F0ZSh0aGlzLl9nZXQoJ2Rlc2NyaXB0aW9uJyksIHRoaXMubGltaXQpfTwvZGl2PmB9XG4gICAgPC9kaXY+IGA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtY2F0ZWdvcnknLCBHdkNhdGVnb3J5KTtcbiJdfQ==