@gravitee/ui-components 3.24.4 → 3.24.5-renovate-github-markdown-css-5-x-d2ffdad

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 (117) hide show
  1. package/CHANGELOG.md +1260 -0
  2. package/LICENSE.txt +202 -0
  3. package/README.md +195 -0
  4. package/assets/css/github-markdown-css/github-markdown.css +500 -545
  5. package/assets/i18n/en.json +0 -3
  6. package/assets/i18n/fr.json +0 -3
  7. package/package.json +19 -21
  8. package/src/.eslintrc.js +19 -0
  9. package/src/atoms/gv-autocomplete.js +156 -132
  10. package/src/atoms/gv-button.js +248 -73
  11. package/src/atoms/gv-checkbox.js +103 -45
  12. package/src/atoms/gv-date-picker-calendar.js +393 -312
  13. package/src/atoms/gv-date-picker-cell.js +81 -57
  14. package/src/atoms/gv-date-picker.js +319 -180
  15. package/src/atoms/gv-file-upload.js +195 -85
  16. package/src/atoms/gv-icon.js +34 -13
  17. package/src/atoms/gv-image.js +66 -31
  18. package/src/atoms/gv-input-message.js +37 -12
  19. package/src/atoms/gv-input.js +169 -139
  20. package/src/atoms/gv-link.js +125 -47
  21. package/src/atoms/gv-message.js +69 -18
  22. package/src/atoms/gv-metric.js +68 -19
  23. package/src/atoms/gv-relative-time.js +38 -67
  24. package/src/atoms/gv-select-native.js +215 -96
  25. package/src/atoms/gv-select.js +230 -110
  26. package/src/atoms/gv-spinner.js +26 -5
  27. package/src/atoms/gv-state.js +66 -25
  28. package/src/atoms/gv-switch.js +160 -40
  29. package/src/atoms/gv-tag.js +78 -26
  30. package/src/atoms/gv-text.js +83 -22
  31. package/src/charts/gv-chart-bar.js +18 -22
  32. package/src/charts/gv-chart-gauge.js +31 -28
  33. package/src/charts/gv-chart-histogram.js +10 -18
  34. package/src/charts/gv-chart-line.js +59 -70
  35. package/src/charts/gv-chart-map.js +42 -44
  36. package/src/charts/gv-chart-pie.js +14 -18
  37. package/src/index.js +0 -2
  38. package/src/lib/cron-expression.js +35 -40
  39. package/src/lib/date.js +1 -10
  40. package/src/lib/events.js +1 -3
  41. package/src/lib/http-client-schema-form.js +12 -13
  42. package/src/lib/http.js +56 -57
  43. package/src/lib/i18n.js +22 -30
  44. package/src/lib/item.js +12 -13
  45. package/src/lib/properties.js +42 -77
  46. package/src/lib/schema-form.js +5 -4
  47. package/src/lib/studio.js +60 -13
  48. package/src/lib/style.js +8 -8
  49. package/src/lib/text-format.js +7 -14
  50. package/src/lib/theme.js +5 -8
  51. package/src/lib/utils.js +18 -17
  52. package/src/mixins/chart-element.js +54 -31
  53. package/src/mixins/input-element.js +49 -60
  54. package/src/mixins/item-resource.js +32 -34
  55. package/src/mixins/keyboard-element.js +5 -6
  56. package/src/mixins/update-after-browser.js +1 -4
  57. package/src/mixins/with-resize-observer.js +13 -23
  58. package/src/mixins/with-skeleton-attribute.js +48 -54
  59. package/src/molecules/gv-card-full.js +147 -26
  60. package/src/molecules/gv-card-list.js +42 -13
  61. package/src/molecules/gv-card.js +91 -17
  62. package/src/molecules/gv-category-list.js +17 -6
  63. package/src/molecules/gv-category.js +103 -23
  64. package/src/molecules/gv-code.js +263 -189
  65. package/src/molecules/gv-confirm.js +71 -41
  66. package/src/molecules/gv-cron-editor.js +389 -143
  67. package/src/molecules/gv-dropdown-menu.js +46 -14
  68. package/src/molecules/gv-expandable.js +59 -31
  69. package/src/molecules/gv-expression-language.js +208 -552
  70. package/src/molecules/gv-identity-picture.js +65 -42
  71. package/src/molecules/gv-list.js +134 -42
  72. package/src/molecules/gv-metrics.js +49 -37
  73. package/src/molecules/gv-modal.js +95 -28
  74. package/src/molecules/gv-nav.js +75 -49
  75. package/src/molecules/gv-option.js +130 -57
  76. package/src/molecules/gv-plans.js +209 -86
  77. package/src/molecules/gv-popover.js +177 -57
  78. package/src/molecules/gv-promote.js +146 -28
  79. package/src/molecules/gv-rating-list.js +195 -69
  80. package/src/molecules/gv-rating.js +105 -52
  81. package/src/molecules/gv-row-expandable.js +11 -5
  82. package/src/molecules/gv-row.js +147 -21
  83. package/src/molecules/gv-stats.js +48 -23
  84. package/src/molecules/gv-stepper.js +187 -43
  85. package/src/molecules/gv-table.js +309 -199
  86. package/src/molecules/gv-tree.js +156 -33
  87. package/src/organisms/gv-documentation.js +127 -44
  88. package/src/organisms/gv-header.js +195 -37
  89. package/src/organisms/gv-http-client.js +168 -32
  90. package/src/organisms/gv-menu.js +158 -37
  91. package/src/organisms/gv-newsletter-subscription.js +189 -48
  92. package/src/organisms/gv-pagination.js +77 -49
  93. package/src/organisms/gv-properties.js +492 -271
  94. package/src/organisms/gv-resizable-views.js +259 -41
  95. package/src/organisms/gv-resources.js +275 -168
  96. package/src/organisms/gv-schema-form-array.js +159 -49
  97. package/src/organisms/gv-schema-form-control-object.js +73 -59
  98. package/src/organisms/gv-schema-form-control.js +134 -107
  99. package/src/organisms/gv-schema-form.js +280 -195
  100. package/src/organisms/gv-tabs.js +98 -66
  101. package/src/organisms/gv-user-menu.js +201 -36
  102. package/src/organisms/gv-vertical-menu.js +61 -20
  103. package/src/policy-studio/gv-flow-step.js +245 -105
  104. package/src/policy-studio/gv-flow.js +304 -125
  105. package/src/policy-studio/gv-policy-studio-menu.js +471 -157
  106. package/src/policy-studio/gv-policy-studio.js +761 -692
  107. package/src/styles/empty.js +20 -3
  108. package/src/styles/input.js +247 -3
  109. package/src/styles/link.js +16 -3
  110. package/src/styles/shapes.js +0 -1
  111. package/src/styles/skeleton.js +37 -3
  112. package/src/styles/zoom.js +24 -3
  113. package/src/theme/definition.json +1762 -0
  114. package/src/theme/gv-theme.js +60 -21
  115. package/assets/css/codemirror/all.css +0 -476
  116. package/src/molecules/gv-code-hint.js +0 -49
  117. package/wc/gv-code-hint.js +0 -1
@@ -21,8 +21,9 @@ export const KEYS = {
21
21
  Ctrl: '17',
22
22
  Esc: '27',
23
23
  Shift: '16',
24
- Space: '32'
24
+ Space: '32',
25
25
  };
26
+
26
27
  export function KeyboardElement(ParentClass) {
27
28
  /**
28
29
  * @mixinClass
@@ -59,12 +60,10 @@ export function KeyboardElement(ParentClass) {
59
60
  }
60
61
 
61
62
  isPressed(...keys) {
62
- return keys.find(key => this._controller[key] == null) == null;
63
- } // abstract
64
-
63
+ return keys.find((key) => this._controller[key] == null) == null;
64
+ }
65
65
 
66
+ // abstract
66
67
  onKeyboard(controller) {}
67
-
68
68
  };
69
69
  }
70
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21peGlucy9rZXlib2FyZC1lbGVtZW50LmpzIl0sIm5hbWVzIjpbIktFWVMiLCJBcnJvd0Rvd24iLCJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkN0cmwiLCJFc2MiLCJTaGlmdCIsIlNwYWNlIiwiS2V5Ym9hcmRFbGVtZW50IiwiUGFyZW50Q2xhc3MiLCJjb25zdHJ1Y3RvciIsIl9jb250cm9sbGVyIiwiX2hhbmRsZUtleURvd24iLCJfb25LZXlEb3duIiwiYmluZCIsIl9oYW5kbGVLZXlVcCIsIl9vbktleVVwIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZSIsImtleUNvZGUiLCJvbktleWJvYXJkIiwiaXNQcmVzc2VkIiwia2V5cyIsImZpbmQiLCJrZXkiLCJjb250cm9sbGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLE1BQU1BLElBQUksR0FBRztBQUNsQkMsRUFBQUEsU0FBUyxFQUFFLElBRE87QUFFbEJDLEVBQUFBLFNBQVMsRUFBRSxJQUZPO0FBR2xCQyxFQUFBQSxVQUFVLEVBQUUsSUFITTtBQUlsQkMsRUFBQUEsT0FBTyxFQUFFLElBSlM7QUFLbEJDLEVBQUFBLElBQUksRUFBRSxJQUxZO0FBTWxCQyxFQUFBQSxHQUFHLEVBQUUsSUFOYTtBQU9sQkMsRUFBQUEsS0FBSyxFQUFFLElBUFc7QUFRbEJDLEVBQUFBLEtBQUssRUFBRTtBQVJXLENBQWI7QUFXUCxPQUFPLFNBQVNDLGVBQVQsQ0FBeUJDLFdBQXpCLEVBQXNDO0FBQzNDO0FBQ0Y7QUFDQTtBQUNFLFNBQU8sY0FBY0EsV0FBZCxDQUEwQjtBQUMvQkMsSUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxXQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsV0FBS0MsY0FBTCxHQUFzQixLQUFLQyxVQUFMLENBQWdCQyxJQUFoQixDQUFxQixJQUFyQixDQUF0QjtBQUNBLFdBQUtDLFlBQUwsR0FBb0IsS0FBS0MsUUFBTCxDQUFjRixJQUFkLENBQW1CLElBQW5CLENBQXBCO0FBQ0Q7O0FBRURHLElBQUFBLGlCQUFpQixHQUFHO0FBQ2xCLFlBQU1BLGlCQUFOO0FBQ0FDLE1BQUFBLE1BQU0sQ0FBQ0MsZ0JBQVAsQ0FBd0IsU0FBeEIsRUFBbUMsS0FBS1AsY0FBeEM7QUFDQU0sTUFBQUEsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QixPQUF4QixFQUFpQyxLQUFLSixZQUF0QztBQUNEOztBQUVESyxJQUFBQSxvQkFBb0IsR0FBRztBQUNyQkYsTUFBQUEsTUFBTSxDQUFDRyxtQkFBUCxDQUEyQixTQUEzQixFQUFzQyxLQUFLVCxjQUEzQztBQUNBTSxNQUFBQSxNQUFNLENBQUNHLG1CQUFQLENBQTJCLE9BQTNCLEVBQW9DLEtBQUtOLFlBQXpDO0FBQ0EsWUFBTUssb0JBQU47QUFDRDs7QUFFRFAsSUFBQUEsVUFBVSxDQUFDUyxDQUFELEVBQUk7QUFDWixXQUFLWCxXQUFMLENBQWlCVyxDQUFDLENBQUNDLE9BQW5CLElBQThCLElBQTlCO0FBQ0EsV0FBS0MsVUFBTCxDQUFnQixLQUFLYixXQUFyQjtBQUNEOztBQUVESyxJQUFBQSxRQUFRLENBQUNNLENBQUQsRUFBSTtBQUNWLFVBQUksS0FBS1gsV0FBTCxDQUFpQlcsQ0FBQyxDQUFDQyxPQUFuQixDQUFKLEVBQWlDO0FBQy9CLGFBQUtaLFdBQUwsQ0FBaUJXLENBQUMsQ0FBQ0MsT0FBbkIsSUFBOEIsSUFBOUI7QUFDRDtBQUNGOztBQUVERSxJQUFBQSxTQUFTLENBQUMsR0FBR0MsSUFBSixFQUFVO0FBQ2pCLGFBQU9BLElBQUksQ0FBQ0MsSUFBTCxDQUFXQyxHQUFELElBQVMsS0FBS2pCLFdBQUwsQ0FBaUJpQixHQUFqQixLQUF5QixJQUE1QyxLQUFxRCxJQUE1RDtBQUNELEtBakM4QixDQW1DL0I7OztBQUNBSixJQUFBQSxVQUFVLENBQUNLLFVBQUQsRUFBYSxDQUFFOztBQXBDTSxHQUFqQztBQXNDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5leHBvcnQgY29uc3QgS0VZUyA9IHtcbiAgQXJyb3dEb3duOiAnNDAnLFxuICBBcnJvd0xlZnQ6ICczNycsXG4gIEFycm93UmlnaHQ6ICczOScsXG4gIEFycm93VXA6ICczOCcsXG4gIEN0cmw6ICcxNycsXG4gIEVzYzogJzI3JyxcbiAgU2hpZnQ6ICcxNicsXG4gIFNwYWNlOiAnMzInLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEtleWJvYXJkRWxlbWVudChQYXJlbnRDbGFzcykge1xuICAvKipcbiAgICogQG1peGluQ2xhc3NcbiAgICovXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIFBhcmVudENsYXNzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLl9jb250cm9sbGVyID0ge307XG4gICAgICB0aGlzLl9oYW5kbGVLZXlEb3duID0gdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyk7XG4gICAgICB0aGlzLl9oYW5kbGVLZXlVcCA9IHRoaXMuX29uS2V5VXAuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX2hhbmRsZUtleURvd24pO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5faGFuZGxlS2V5VXApO1xuICAgIH1cblxuICAgIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9oYW5kbGVLZXlEb3duKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2hhbmRsZUtleVVwKTtcbiAgICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgX29uS2V5RG93bihlKSB7XG4gICAgICB0aGlzLl9jb250cm9sbGVyW2Uua2V5Q29kZV0gPSB0cnVlO1xuICAgICAgdGhpcy5vbktleWJvYXJkKHRoaXMuX2NvbnRyb2xsZXIpO1xuICAgIH1cblxuICAgIF9vbktleVVwKGUpIHtcbiAgICAgIGlmICh0aGlzLl9jb250cm9sbGVyW2Uua2V5Q29kZV0pIHtcbiAgICAgICAgdGhpcy5fY29udHJvbGxlcltlLmtleUNvZGVdID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpc1ByZXNzZWQoLi4ua2V5cykge1xuICAgICAgcmV0dXJuIGtleXMuZmluZCgoa2V5KSA9PiB0aGlzLl9jb250cm9sbGVyW2tleV0gPT0gbnVsbCkgPT0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBhYnN0cmFjdFxuICAgIG9uS2V5Ym9hcmQoY29udHJvbGxlcikge31cbiAgfTtcbn1cbiJdfQ==
@@ -13,7 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
-
17
16
  /**
18
17
  * This is a mixin for update component after browser
19
18
  * @mixinFunction
@@ -24,10 +23,8 @@ export function UpdateAfterBrowser(ParentClass) {
24
23
  */
25
24
  return class extends ParentClass {
26
25
  async performUpdate() {
27
- await new Promise(resolve => requestAnimationFrame(() => resolve()));
26
+ await new Promise((resolve) => requestAnimationFrame(() => resolve()));
28
27
  super.performUpdate();
29
28
  }
30
-
31
29
  };
32
30
  }
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21peGlucy91cGRhdGUtYWZ0ZXItYnJvd3Nlci5qcyJdLCJuYW1lcyI6WyJVcGRhdGVBZnRlckJyb3dzZXIiLCJQYXJlbnRDbGFzcyIsInBlcmZvcm1VcGRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQSxrQkFBVCxDQUE0QkMsV0FBNUIsRUFBeUM7QUFDOUM7QUFDRjtBQUNBO0FBQ0UsU0FBTyxjQUFjQSxXQUFkLENBQTBCO0FBQ1osVUFBYkMsYUFBYSxHQUFHO0FBQ3BCLFlBQU0sSUFBSUMsT0FBSixDQUFhQyxPQUFELElBQWFDLHFCQUFxQixDQUFDLE1BQU1ELE9BQU8sRUFBZCxDQUE5QyxDQUFOO0FBQ0EsWUFBTUYsYUFBTjtBQUNEOztBQUo4QixHQUFqQztBQU1EIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogVGhpcyBpcyBhIG1peGluIGZvciB1cGRhdGUgY29tcG9uZW50IGFmdGVyIGJyb3dzZXJcbiAqIEBtaXhpbkZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBVcGRhdGVBZnRlckJyb3dzZXIoUGFyZW50Q2xhc3MpIHtcbiAgLyoqXG4gICAqIEBtaXhpbkNsYXNzXG4gICAqL1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBQYXJlbnRDbGFzcyB7XG4gICAgYXN5bmMgcGVyZm9ybVVwZGF0ZSgpIHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gcmVzb2x2ZSgpKSk7XG4gICAgICBzdXBlci5wZXJmb3JtVXBkYXRlKCk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -15,21 +15,21 @@
15
15
  */
16
16
  export function withResizeObserver(ParentClass) {
17
17
  // Load native impl or polyfill (without poluting global scope)
18
- const ResizeObserverPromise = 'ResizeObserver' in window ? Promise.resolve(window.ResizeObserver) : import('resize-observer-polyfill/dist/ResizeObserver.es.js').then(mod => mod.default);
18
+ const ResizeObserverPromise =
19
+ 'ResizeObserver' in window
20
+ ? Promise.resolve(window.ResizeObserver)
21
+ : import('resize-observer-polyfill/dist/ResizeObserver.es.js').then((mod) => mod.default);
22
+
19
23
  return class extends ParentClass {
20
- _onResize({
21
- width
22
- }) {
24
+ _onResize({ width }) {
23
25
  if (this.onResize != null) {
24
- this.onResize({
25
- width
26
- });
26
+ this.onResize({ width });
27
27
  }
28
-
29
28
  if (this.breakpoints != null) {
30
- this.breakpoints.width.forEach(breakpoint => {
29
+ this.breakpoints.width.forEach((breakpoint) => {
31
30
  const gteAttr = 'w-gte-' + breakpoint;
32
31
  breakpoint <= width ? this.setAttribute(gteAttr, '') : this.removeAttribute(gteAttr);
32
+
33
33
  const ltAttr = 'w-lt-' + breakpoint;
34
34
  width < breakpoint ? this.setAttribute(ltAttr, '') : this.removeAttribute(ltAttr);
35
35
  });
@@ -40,26 +40,19 @@ export function withResizeObserver(ParentClass) {
40
40
  if (super.connectedCallback != null) {
41
41
  super.connectedCallback();
42
42
  }
43
-
44
43
  const ResizeObserver = await ResizeObserverPromise;
45
- const ro = new ResizeObserver(entries => {
44
+ const ro = new ResizeObserver((entries) => {
46
45
  // We wrap it in requestAnimationFrame to avoid this error - ResizeObserver loop limit exceeded
47
46
  window.requestAnimationFrame(() => {
48
47
  if (!Array.isArray(entries) || !entries.length) {
49
48
  return;
50
49
  }
51
-
52
- const {
53
- width
54
- } = this.getBoundingClientRect();
55
-
56
- this._onResize({
57
- width
58
- });
50
+ const { width } = this.getBoundingClientRect();
51
+ this._onResize({ width });
59
52
  });
60
53
  });
61
- ro.observe(this);
62
54
 
55
+ ro.observe(this);
63
56
  this._unobserveResize = () => ro.unobserve(this);
64
57
  }
65
58
 
@@ -67,12 +60,9 @@ export function withResizeObserver(ParentClass) {
67
60
  if (super.connectedCallback != null) {
68
61
  super.disconnectedCallback();
69
62
  }
70
-
71
63
  if (this._unobserveResize) {
72
64
  this._unobserveResize();
73
65
  }
74
66
  }
75
-
76
67
  };
77
68
  }
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21peGlucy93aXRoLXJlc2l6ZS1vYnNlcnZlci5qcyJdLCJuYW1lcyI6WyJ3aXRoUmVzaXplT2JzZXJ2ZXIiLCJQYXJlbnRDbGFzcyIsIlJlc2l6ZU9ic2VydmVyUHJvbWlzZSIsIndpbmRvdyIsIlByb21pc2UiLCJyZXNvbHZlIiwiUmVzaXplT2JzZXJ2ZXIiLCJ0aGVuIiwibW9kIiwiZGVmYXVsdCIsIl9vblJlc2l6ZSIsIndpZHRoIiwib25SZXNpemUiLCJicmVha3BvaW50cyIsImZvckVhY2giLCJicmVha3BvaW50IiwiZ3RlQXR0ciIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsImx0QXR0ciIsImNvbm5lY3RlZENhbGxiYWNrIiwicm8iLCJlbnRyaWVzIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwib2JzZXJ2ZSIsIl91bm9ic2VydmVSZXNpemUiLCJ1bm9ic2VydmUiLCJkaXNjb25uZWN0ZWRDYWxsYmFjayJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQSxrQkFBVCxDQUE0QkMsV0FBNUIsRUFBeUM7QUFDOUM7QUFDQSxRQUFNQyxxQkFBcUIsR0FDekIsb0JBQW9CQyxNQUFwQixHQUNJQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JGLE1BQU0sQ0FBQ0csY0FBdkIsQ0FESixHQUVJLE9BQU8sb0RBQVAsRUFBNkRDLElBQTdELENBQW1FQyxHQUFELElBQVNBLEdBQUcsQ0FBQ0MsT0FBL0UsQ0FITjtBQUtBLFNBQU8sY0FBY1IsV0FBZCxDQUEwQjtBQUMvQlMsSUFBQUEsU0FBUyxDQUFDO0FBQUVDLE1BQUFBO0FBQUYsS0FBRCxFQUFZO0FBQ25CLFVBQUksS0FBS0MsUUFBTCxJQUFpQixJQUFyQixFQUEyQjtBQUN6QixhQUFLQSxRQUFMLENBQWM7QUFBRUQsVUFBQUE7QUFBRixTQUFkO0FBQ0Q7O0FBQ0QsVUFBSSxLQUFLRSxXQUFMLElBQW9CLElBQXhCLEVBQThCO0FBQzVCLGFBQUtBLFdBQUwsQ0FBaUJGLEtBQWpCLENBQXVCRyxPQUF2QixDQUFnQ0MsVUFBRCxJQUFnQjtBQUM3QyxnQkFBTUMsT0FBTyxHQUFHLFdBQVdELFVBQTNCO0FBQ0FBLFVBQUFBLFVBQVUsSUFBSUosS0FBZCxHQUFzQixLQUFLTSxZQUFMLENBQWtCRCxPQUFsQixFQUEyQixFQUEzQixDQUF0QixHQUF1RCxLQUFLRSxlQUFMLENBQXFCRixPQUFyQixDQUF2RDtBQUVBLGdCQUFNRyxNQUFNLEdBQUcsVUFBVUosVUFBekI7QUFDQUosVUFBQUEsS0FBSyxHQUFHSSxVQUFSLEdBQXFCLEtBQUtFLFlBQUwsQ0FBa0JFLE1BQWxCLEVBQTBCLEVBQTFCLENBQXJCLEdBQXFELEtBQUtELGVBQUwsQ0FBcUJDLE1BQXJCLENBQXJEO0FBQ0QsU0FORDtBQU9EO0FBQ0Y7O0FBRXNCLFVBQWpCQyxpQkFBaUIsR0FBRztBQUN4QixVQUFJLE1BQU1BLGlCQUFOLElBQTJCLElBQS9CLEVBQXFDO0FBQ25DLGNBQU1BLGlCQUFOO0FBQ0Q7O0FBQ0QsWUFBTWQsY0FBYyxHQUFHLE1BQU1KLHFCQUE3QjtBQUNBLFlBQU1tQixFQUFFLEdBQUcsSUFBSWYsY0FBSixDQUFvQmdCLE9BQUQsSUFBYTtBQUN6QztBQUNBbkIsUUFBQUEsTUFBTSxDQUFDb0IscUJBQVAsQ0FBNkIsTUFBTTtBQUNqQyxjQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSCxPQUFkLENBQUQsSUFBMkIsQ0FBQ0EsT0FBTyxDQUFDSSxNQUF4QyxFQUFnRDtBQUM5QztBQUNEOztBQUNELGdCQUFNO0FBQUVmLFlBQUFBO0FBQUYsY0FBWSxLQUFLZ0IscUJBQUwsRUFBbEI7O0FBQ0EsZUFBS2pCLFNBQUwsQ0FBZTtBQUFFQyxZQUFBQTtBQUFGLFdBQWY7QUFDRCxTQU5EO0FBT0QsT0FUVSxDQUFYO0FBV0FVLE1BQUFBLEVBQUUsQ0FBQ08sT0FBSCxDQUFXLElBQVg7O0FBQ0EsV0FBS0MsZ0JBQUwsR0FBd0IsTUFBTVIsRUFBRSxDQUFDUyxTQUFILENBQWEsSUFBYixDQUE5QjtBQUNEOztBQUVEQyxJQUFBQSxvQkFBb0IsR0FBRztBQUNyQixVQUFJLE1BQU1YLGlCQUFOLElBQTJCLElBQS9CLEVBQXFDO0FBQ25DLGNBQU1XLG9CQUFOO0FBQ0Q7O0FBQ0QsVUFBSSxLQUFLRixnQkFBVCxFQUEyQjtBQUN6QixhQUFLQSxnQkFBTDtBQUNEO0FBQ0Y7O0FBM0M4QixHQUFqQztBQTZDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aFJlc2l6ZU9ic2VydmVyKFBhcmVudENsYXNzKSB7XG4gIC8vIExvYWQgbmF0aXZlIGltcGwgb3IgcG9seWZpbGwgKHdpdGhvdXQgcG9sdXRpbmcgZ2xvYmFsIHNjb3BlKVxuICBjb25zdCBSZXNpemVPYnNlcnZlclByb21pc2UgPVxuICAgICdSZXNpemVPYnNlcnZlcicgaW4gd2luZG93XG4gICAgICA/IFByb21pc2UucmVzb2x2ZSh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpXG4gICAgICA6IGltcG9ydCgncmVzaXplLW9ic2VydmVyLXBvbHlmaWxsL2Rpc3QvUmVzaXplT2JzZXJ2ZXIuZXMuanMnKS50aGVuKChtb2QpID0+IG1vZC5kZWZhdWx0KTtcblxuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBQYXJlbnRDbGFzcyB7XG4gICAgX29uUmVzaXplKHsgd2lkdGggfSkge1xuICAgICAgaWYgKHRoaXMub25SZXNpemUgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKHsgd2lkdGggfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5icmVha3BvaW50cyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuYnJlYWtwb2ludHMud2lkdGguZm9yRWFjaCgoYnJlYWtwb2ludCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGd0ZUF0dHIgPSAndy1ndGUtJyArIGJyZWFrcG9pbnQ7XG4gICAgICAgICAgYnJlYWtwb2ludCA8PSB3aWR0aCA/IHRoaXMuc2V0QXR0cmlidXRlKGd0ZUF0dHIsICcnKSA6IHRoaXMucmVtb3ZlQXR0cmlidXRlKGd0ZUF0dHIpO1xuXG4gICAgICAgICAgY29uc3QgbHRBdHRyID0gJ3ctbHQtJyArIGJyZWFrcG9pbnQ7XG4gICAgICAgICAgd2lkdGggPCBicmVha3BvaW50ID8gdGhpcy5zZXRBdHRyaWJ1dGUobHRBdHRyLCAnJykgOiB0aGlzLnJlbW92ZUF0dHJpYnV0ZShsdEF0dHIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgIGlmIChzdXBlci5jb25uZWN0ZWRDYWxsYmFjayAhPSBudWxsKSB7XG4gICAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgICBjb25zdCBSZXNpemVPYnNlcnZlciA9IGF3YWl0IFJlc2l6ZU9ic2VydmVyUHJvbWlzZTtcbiAgICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgIC8vIFdlIHdyYXAgaXQgaW4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRvIGF2b2lkIHRoaXMgZXJyb3IgLSBSZXNpemVPYnNlcnZlciBsb29wIGxpbWl0IGV4Y2VlZGVkXG4gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSB8fCAhZW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyB3aWR0aCB9ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICB0aGlzLl9vblJlc2l6ZSh7IHdpZHRoIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByby5vYnNlcnZlKHRoaXMpO1xuICAgICAgdGhpcy5fdW5vYnNlcnZlUmVzaXplID0gKCkgPT4gcm8udW5vYnNlcnZlKHRoaXMpO1xuICAgIH1cblxuICAgIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgICAgaWYgKHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrICE9IG51bGwpIHtcbiAgICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl91bm9ic2VydmVSZXNpemUpIHtcbiAgICAgICAgdGhpcy5fdW5vYnNlcnZlUmVzaXplKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
@@ -16,13 +16,14 @@
16
16
  import { css } from 'lit';
17
17
  import { skeleton } from '../styles/skeleton';
18
18
  import { empty } from '../styles/empty';
19
+
19
20
  const timeBeforeSkeleton = 500;
20
21
  const minimumTimeOfSkeleton = 1000;
22
+
21
23
  /**
22
24
  * This is a mixin for withSkeletonStates
23
25
  * @mixinFunction
24
26
  */
25
-
26
27
  export function withSkeletonAttribute(ParentClass) {
27
28
  /**
28
29
  * @mixinClass
@@ -31,28 +32,24 @@ export function withSkeletonAttribute(ParentClass) {
31
32
  static get properties() {
32
33
  return {
33
34
  /** @required */
34
- _invisible: {
35
- type: Boolean,
36
- reflect: true
37
- },
38
- _skeleton: {
39
- type: Boolean,
40
- attribute: false
41
- },
42
- _error: {
43
- type: Boolean,
44
- attribute: false
45
- },
46
- _empty: {
47
- type: Boolean,
48
- attribute: false
49
- }
35
+ _invisible: { type: Boolean, reflect: true },
36
+ _skeleton: { type: Boolean, attribute: false },
37
+ _error: { type: Boolean, attribute: false },
38
+ _empty: { type: Boolean, attribute: false },
50
39
  };
51
40
  }
52
41
 
53
42
  static get styles() {
54
- return [skeleton, empty, // language=CSS
55
- css`:host([_invisible]){visibility:hidden}`];
43
+ return [
44
+ skeleton,
45
+ empty,
46
+ // language=CSS
47
+ css`
48
+ :host([_invisible]) {
49
+ visibility: hidden;
50
+ }
51
+ `,
52
+ ];
56
53
  }
57
54
 
58
55
  constructor() {
@@ -74,45 +71,42 @@ export function withSkeletonAttribute(ParentClass) {
74
71
  this._skeleton = true;
75
72
  end = new Date().getTime();
76
73
  }, timeBeforeSkeleton);
77
- const attribute = this[this._skeletonAttribute];
78
- Promise.resolve(attribute).then(value => {
79
- clearTimeout(timer);
80
-
81
- if (end && end - start < minimumTimeOfSkeleton) {
82
- setTimeout(() => {
83
- this[this._skeletonAttribute] = value;
84
- }, minimumTimeOfSkeleton - (end - start));
85
- } else {
86
- this._invisible = value === undefined;
87
- this._skeleton = value === null;
88
74
 
89
- if (value) {
90
- if (Array.isArray(value)) {
91
- this._empty = value.length === 0;
92
- } else {
93
- this._empty = Object.keys(value).length === 0;
75
+ const attribute = this[this._skeletonAttribute];
76
+ Promise.resolve(attribute)
77
+ .then((value) => {
78
+ clearTimeout(timer);
79
+ if (end && end - start < minimumTimeOfSkeleton) {
80
+ setTimeout(() => {
81
+ this[this._skeletonAttribute] = value;
82
+ }, minimumTimeOfSkeleton - (end - start));
83
+ } else {
84
+ this._invisible = value === undefined;
85
+ this._skeleton = value === null;
86
+ if (value) {
87
+ if (Array.isArray(value)) {
88
+ this._empty = value.length === 0;
89
+ } else {
90
+ this._empty = Object.keys(value).length === 0;
91
+ }
92
+ this[`_${this._skeletonAttribute}`] = value;
94
93
  }
95
-
96
- this[`_${this._skeletonAttribute}`] = value;
97
94
  }
98
- }
99
- }).catch(err => {
100
- clearTimeout(timer);
101
-
102
- if (end && end - start < minimumTimeOfSkeleton) {
103
- setTimeout(() => {
104
- this[this._skeletonAttribute] = Promise.reject(err);
105
- }, minimumTimeOfSkeleton - (end - start));
106
- } else {
107
- this._error = true;
108
- this._skeleton = false;
109
- this._empty = false;
110
- this._invisible = false;
111
- }
112
- });
95
+ })
96
+ .catch((err) => {
97
+ clearTimeout(timer);
98
+ if (end && end - start < minimumTimeOfSkeleton) {
99
+ setTimeout(() => {
100
+ this[this._skeletonAttribute] = Promise.reject(err);
101
+ }, minimumTimeOfSkeleton - (end - start));
102
+ } else {
103
+ this._error = true;
104
+ this._skeleton = false;
105
+ this._empty = false;
106
+ this._invisible = false;
107
+ }
108
+ });
113
109
  }
114
110
  }
115
-
116
111
  };
117
112
  }
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21peGlucy93aXRoLXNrZWxldG9uLWF0dHJpYnV0ZS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJza2VsZXRvbiIsImVtcHR5IiwidGltZUJlZm9yZVNrZWxldG9uIiwibWluaW11bVRpbWVPZlNrZWxldG9uIiwid2l0aFNrZWxldG9uQXR0cmlidXRlIiwiUGFyZW50Q2xhc3MiLCJwcm9wZXJ0aWVzIiwiX2ludmlzaWJsZSIsInR5cGUiLCJCb29sZWFuIiwicmVmbGVjdCIsIl9za2VsZXRvbiIsImF0dHJpYnV0ZSIsIl9lcnJvciIsIl9lbXB0eSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiX3NrZWxldG9uQXR0cmlidXRlIiwiaGFzIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsImVuZCIsInRpbWVyIiwic2V0VGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInZhbHVlIiwiY2xlYXJUaW1lb3V0IiwidW5kZWZpbmVkIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiT2JqZWN0Iiwia2V5cyIsImNhdGNoIiwiZXJyIiwicmVqZWN0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULFFBQW9CLEtBQXBCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixvQkFBekI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLGlCQUF0QjtBQUVBLE1BQU1DLGtCQUFrQixHQUFHLEdBQTNCO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsSUFBOUI7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLFNBQVNDLHFCQUFULENBQStCQyxXQUEvQixFQUE0QztBQUNqRDtBQUNGO0FBQ0E7QUFDRSxTQUFPLGNBQWNBLFdBQWQsQ0FBMEI7QUFDVixlQUFWQyxVQUFVLEdBQUc7QUFDdEIsYUFBTztBQUNMO0FBQ0FDLFFBQUFBLFVBQVUsRUFBRTtBQUFFQyxVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJDLFVBQUFBLE9BQU8sRUFBRTtBQUExQixTQUZQO0FBR0xDLFFBQUFBLFNBQVMsRUFBRTtBQUFFSCxVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJHLFVBQUFBLFNBQVMsRUFBRTtBQUE1QixTQUhOO0FBSUxDLFFBQUFBLE1BQU0sRUFBRTtBQUFFTCxVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJHLFVBQUFBLFNBQVMsRUFBRTtBQUE1QixTQUpIO0FBS0xFLFFBQUFBLE1BQU0sRUFBRTtBQUFFTixVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJHLFVBQUFBLFNBQVMsRUFBRTtBQUE1QjtBQUxILE9BQVA7QUFPRDs7QUFFZ0IsZUFBTkcsTUFBTSxHQUFHO0FBQ2xCLGFBQU8sQ0FDTGYsUUFESyxFQUVMQyxLQUZLLEVBR0w7QUFDQUYsTUFBQUEsR0FBRyx3Q0FKRSxDQUFQO0FBVUQ7O0FBRURpQixJQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNBLFdBQUtULFVBQUwsR0FBa0IsSUFBbEI7QUFDQSxXQUFLSSxTQUFMLEdBQWlCLEtBQWpCO0FBQ0EsV0FBS0UsTUFBTCxHQUFjLEtBQWQ7QUFDQSxXQUFLQyxNQUFMLEdBQWMsS0FBZDtBQUNEOztBQUVERyxJQUFBQSxPQUFPLENBQUNDLGlCQUFELEVBQW9CO0FBQ3pCLFVBQUksS0FBS0Msa0JBQUwsSUFBMkIsSUFBM0IsSUFBbUNELGlCQUFpQixDQUFDRSxHQUFsQixDQUFzQixLQUFLRCxrQkFBM0IsQ0FBdkMsRUFBdUY7QUFDckYsYUFBS04sTUFBTCxHQUFjLEtBQWQ7QUFDQSxhQUFLQyxNQUFMLEdBQWMsS0FBZDtBQUNBLGNBQU1PLEtBQUssR0FBRyxJQUFJQyxJQUFKLEdBQVdDLE9BQVgsRUFBZDtBQUNBLFlBQUlDLEdBQUcsR0FBRyxJQUFWO0FBQ0EsY0FBTUMsS0FBSyxHQUFHQyxVQUFVLENBQUMsTUFBTTtBQUM3QixlQUFLbkIsVUFBTCxHQUFrQixLQUFsQjtBQUNBLGVBQUtJLFNBQUwsR0FBaUIsSUFBakI7QUFDQWEsVUFBQUEsR0FBRyxHQUFHLElBQUlGLElBQUosR0FBV0MsT0FBWCxFQUFOO0FBQ0QsU0FKdUIsRUFJckJyQixrQkFKcUIsQ0FBeEI7QUFNQSxjQUFNVSxTQUFTLEdBQUcsS0FBSyxLQUFLTyxrQkFBVixDQUFsQjtBQUNBUSxRQUFBQSxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JoQixTQUFoQixFQUNHaUIsSUFESCxDQUNTQyxLQUFELElBQVc7QUFDZkMsVUFBQUEsWUFBWSxDQUFDTixLQUFELENBQVo7O0FBQ0EsY0FBSUQsR0FBRyxJQUFJQSxHQUFHLEdBQUdILEtBQU4sR0FBY2xCLHFCQUF6QixFQUFnRDtBQUM5Q3VCLFlBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2YsbUJBQUssS0FBS1Asa0JBQVYsSUFBZ0NXLEtBQWhDO0FBQ0QsYUFGUyxFQUVQM0IscUJBQXFCLElBQUlxQixHQUFHLEdBQUdILEtBQVYsQ0FGZCxDQUFWO0FBR0QsV0FKRCxNQUlPO0FBQ0wsaUJBQUtkLFVBQUwsR0FBa0J1QixLQUFLLEtBQUtFLFNBQTVCO0FBQ0EsaUJBQUtyQixTQUFMLEdBQWlCbUIsS0FBSyxLQUFLLElBQTNCOztBQUNBLGdCQUFJQSxLQUFKLEVBQVc7QUFDVCxrQkFBSUcsS0FBSyxDQUFDQyxPQUFOLENBQWNKLEtBQWQsQ0FBSixFQUEwQjtBQUN4QixxQkFBS2hCLE1BQUwsR0FBY2dCLEtBQUssQ0FBQ0ssTUFBTixLQUFpQixDQUEvQjtBQUNELGVBRkQsTUFFTztBQUNMLHFCQUFLckIsTUFBTCxHQUFjc0IsTUFBTSxDQUFDQyxJQUFQLENBQVlQLEtBQVosRUFBbUJLLE1BQW5CLEtBQThCLENBQTVDO0FBQ0Q7O0FBQ0QsbUJBQU0sSUFBRyxLQUFLaEIsa0JBQW1CLEVBQWpDLElBQXNDVyxLQUF0QztBQUNEO0FBQ0Y7QUFDRixTQW5CSCxFQW9CR1EsS0FwQkgsQ0FvQlVDLEdBQUQsSUFBUztBQUNkUixVQUFBQSxZQUFZLENBQUNOLEtBQUQsQ0FBWjs7QUFDQSxjQUFJRCxHQUFHLElBQUlBLEdBQUcsR0FBR0gsS0FBTixHQUFjbEIscUJBQXpCLEVBQWdEO0FBQzlDdUIsWUFBQUEsVUFBVSxDQUFDLE1BQU07QUFDZixtQkFBSyxLQUFLUCxrQkFBVixJQUFnQ1EsT0FBTyxDQUFDYSxNQUFSLENBQWVELEdBQWYsQ0FBaEM7QUFDRCxhQUZTLEVBRVBwQyxxQkFBcUIsSUFBSXFCLEdBQUcsR0FBR0gsS0FBVixDQUZkLENBQVY7QUFHRCxXQUpELE1BSU87QUFDTCxpQkFBS1IsTUFBTCxHQUFjLElBQWQ7QUFDQSxpQkFBS0YsU0FBTCxHQUFpQixLQUFqQjtBQUNBLGlCQUFLRyxNQUFMLEdBQWMsS0FBZDtBQUNBLGlCQUFLUCxVQUFMLEdBQWtCLEtBQWxCO0FBQ0Q7QUFDRixTQWhDSDtBQWlDRDtBQUNGOztBQS9FOEIsR0FBakM7QUFpRkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vc3R5bGVzL2VtcHR5JztcblxuY29uc3QgdGltZUJlZm9yZVNrZWxldG9uID0gNTAwO1xuY29uc3QgbWluaW11bVRpbWVPZlNrZWxldG9uID0gMTAwMDtcblxuLyoqXG4gKiBUaGlzIGlzIGEgbWl4aW4gZm9yIHdpdGhTa2VsZXRvblN0YXRlc1xuICogQG1peGluRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTa2VsZXRvbkF0dHJpYnV0ZShQYXJlbnRDbGFzcykge1xuICAvKipcbiAgICogQG1peGluQ2xhc3NcbiAgICovXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIFBhcmVudENsYXNzIHtcbiAgICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAvKiogQHJlcXVpcmVkICovXG4gICAgICAgIF9pbnZpc2libGU6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgICBfc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgICBfZXJyb3I6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgICBfZW1wdHk6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHNrZWxldG9uLFxuICAgICAgICBlbXB0eSxcbiAgICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICAgIGNzc2BcbiAgICAgICAgICA6aG9zdChbX2ludmlzaWJsZV0pIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIHRoaXMuX2ludmlzaWJsZSA9IHRydWU7XG4gICAgICB0aGlzLl9za2VsZXRvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2VtcHR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgICAgaWYgKHRoaXMuX3NrZWxldG9uQXR0cmlidXRlICE9IG51bGwgJiYgY2hhbmdlZFByb3BlcnRpZXMuaGFzKHRoaXMuX3NrZWxldG9uQXR0cmlidXRlKSkge1xuICAgICAgICB0aGlzLl9lcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9lbXB0eSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBsZXQgZW5kID0gbnVsbDtcbiAgICAgICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9za2VsZXRvbiA9IHRydWU7XG4gICAgICAgICAgZW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIH0sIHRpbWVCZWZvcmVTa2VsZXRvbik7XG5cbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpc1t0aGlzLl9za2VsZXRvbkF0dHJpYnV0ZV07XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShhdHRyaWJ1dGUpXG4gICAgICAgICAgLnRoZW4oKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICAgICAgaWYgKGVuZCAmJiBlbmQgLSBzdGFydCA8IG1pbmltdW1UaW1lT2ZTa2VsZXRvbikge1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzW3RoaXMuX3NrZWxldG9uQXR0cmlidXRlXSA9IHZhbHVlO1xuICAgICAgICAgICAgICB9LCBtaW5pbXVtVGltZU9mU2tlbGV0b24gLSAoZW5kIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX2ludmlzaWJsZSA9IHZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIHRoaXMuX3NrZWxldG9uID0gdmFsdWUgPT09IG51bGw7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHkgPSB2YWx1ZS5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5ID0gT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpc1tgXyR7dGhpcy5fc2tlbGV0b25BdHRyaWJ1dGV9YF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICBpZiAoZW5kICYmIGVuZCAtIHN0YXJ0IDwgbWluaW11bVRpbWVPZlNrZWxldG9uKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXNbdGhpcy5fc2tlbGV0b25BdHRyaWJ1dGVdID0gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgfSwgbWluaW11bVRpbWVPZlNrZWxldG9uIC0gKGVuZCAtIHN0YXJ0KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLl9lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuX3NrZWxldG9uID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX2VtcHR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX2ludmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -27,6 +27,7 @@ import { i18n } from '../lib/i18n';
27
27
  import { ItemResource } from '../mixins/item-resource';
28
28
  import { dispatchCustomEvent } from '../lib/events';
29
29
  import { getVersion, getTitle, getDescription, getOwner } from '../lib/item';
30
+
30
31
  /**
31
32
  * Full Card component
32
33
  *
@@ -43,19 +44,133 @@ import { getVersion, getTitle, getDescription, getOwner } from '../lib/item';
43
44
  * @cssprop {Length} [--gv-card-full-image--h=65px] - Image height
44
45
  * @cssprop {Length} [--gv-card-full-image--w=110px] - Image width
45
46
  */
46
-
47
47
  export class GvCardFull extends ItemResource(LitElement) {
48
48
  static get properties() {
49
49
  return {
50
- metrics: {
51
- type: Object
52
- }
50
+ metrics: { type: Object },
53
51
  };
54
52
  }
55
53
 
56
54
  static get styles() {
57
- return [...super.styles, // language=CSS
58
- css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle;width:100%;max-height:281px;line-height:22px;font-size:var(--gv-theme-font-size-m,14px)}gv-identity-picture{height:var(--gv-card-full-image--h,65px);width:var(--gv-card-full-image--w,110px);--gv-image--of:contain}.card{display:flex;flex-direction:column;height:250px;border-radius:4px;background-color:var(--gv-card-full--bgc,var(--gv-theme-neutral-color-lightest,#fff));color:var(--gv-theme-font-color-dark,#262626);padding:16px;box-shadow:0 0 0 1px var(--gv-theme-neutral-color,#f5f5f5),0 1px 3px var(--gv-theme-neutral-color-dark,#bfbfbf);transition:transform .3s}.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -14px var(--gv-theme-neutral-color-dark,#bfbfbf);cursor:pointer}.card>div{display:flex}.image{min-height:65px;min-width:0;position:relative;padding-top:.2rem}.title{line-height:22px;font-size:var(--gv-theme-font-size-l,16px);text-transform:capitalize;font-weight:700;padding-bottom:5px}.owner{--gv-icon--c:var(--gv-theme-neutral-color-dark, #bfbfbf);--gv-icon--s:16px;color:var(--gv-theme-neutral-color-dark,#bfbfbf);display:flex;padding-bottom:2px;line-height:initial}.content{flex:1;padding:0 10px 10px 10px}.version{color:var(--gv-theme-neutral-color-dark,#d9d9d9);padding:10px 8px;font-size:var(--gv-theme-font-size-s,12px)}.description{padding:0 16px;margin:6px 0;flex:1;flex-grow:1;max-height:150px;overflow:hidden;text-overflow:ellipsis}.infos{display:flex;border-bottom:1px solid var(--gv-theme-neutral-color-dark,#d9d9d9);padding:.5rem 0;justify-content:flex-end}gv-metrics{display:flex;height:100%;justify-content:flex-end;align-items:stretch}.skeleton .infos{border-bottom:none}.labels{padding:0 16px}.error .infos,.error .labels,.error .states{visibility:hidden}`, skeleton];
55
+ return [
56
+ ...super.styles,
57
+ // language=CSS
58
+ css`
59
+ :host {
60
+ box-sizing: border-box;
61
+ display: inline-block;
62
+ margin: 0.2rem;
63
+
64
+ vertical-align: middle;
65
+ width: 100%;
66
+ max-height: 281px;
67
+ line-height: 22px;
68
+ font-size: var(--gv-theme-font-size-m, 14px);
69
+ }
70
+
71
+ gv-identity-picture {
72
+ height: var(--gv-card-full-image--h, 65px);
73
+ width: var(--gv-card-full-image--w, 110px);
74
+ --gv-image--of: contain;
75
+ }
76
+
77
+ .card {
78
+ display: flex;
79
+ flex-direction: column;
80
+ height: 250px;
81
+ border-radius: 4px;
82
+ background-color: var(--gv-card-full--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));
83
+ color: var(--gv-theme-font-color-dark, #262626);
84
+ padding: 16px;
85
+ box-shadow: 0 0 0 1px var(--gv-theme-neutral-color, #f5f5f5), 0 1px 3px var(--gv-theme-neutral-color-dark, #bfbfbf);
86
+ transition: transform 0.3s;
87
+ }
88
+
89
+ .card:hover {
90
+ transform: translateY(-4px);
91
+ box-shadow: 0 20px 40px -14px var(--gv-theme-neutral-color-dark, #bfbfbf);
92
+ cursor: pointer;
93
+ }
94
+
95
+ .card > div {
96
+ display: flex;
97
+ }
98
+
99
+ .image {
100
+ min-height: 65px;
101
+ min-width: 0;
102
+ position: relative;
103
+ padding-top: 0.2rem;
104
+ }
105
+
106
+ .title {
107
+ line-height: 22px;
108
+ font-size: var(--gv-theme-font-size-l, 16px);
109
+ text-transform: capitalize;
110
+ font-weight: bold;
111
+ padding-bottom: 5px;
112
+ }
113
+
114
+ .owner {
115
+ --gv-icon--c: var(--gv-theme-neutral-color-dark, #bfbfbf);
116
+ --gv-icon--s: 16px;
117
+ color: var(--gv-theme-neutral-color-dark, #bfbfbf);
118
+ display: flex;
119
+ padding-bottom: 2px;
120
+ line-height: initial;
121
+ }
122
+
123
+ .content {
124
+ flex: 1;
125
+ padding: 0 10px 10px 10px;
126
+ }
127
+
128
+ .version {
129
+ color: var(--gv-theme-neutral-color-dark, #d9d9d9);
130
+ padding: 10px 8px;
131
+ font-size: var(--gv-theme-font-size-s, 12px);
132
+ }
133
+
134
+ .description {
135
+ padding: 0 16px;
136
+ margin: 6px 0;
137
+ flex: 1;
138
+ flex-grow: 1;
139
+ max-height: 150px;
140
+ overflow: hidden;
141
+ text-overflow: ellipsis;
142
+ }
143
+
144
+ .infos {
145
+ display: flex;
146
+ border-bottom: 1px solid var(--gv-theme-neutral-color-dark, #d9d9d9);
147
+ padding: 0.5rem 0;
148
+ justify-content: flex-end;
149
+ }
150
+
151
+ gv-metrics {
152
+ display: flex;
153
+ height: 100%;
154
+ justify-content: flex-end;
155
+ align-items: stretch;
156
+ }
157
+
158
+ .skeleton .infos {
159
+ border-bottom: none;
160
+ }
161
+
162
+ .labels {
163
+ padding: 0 16px;
164
+ }
165
+
166
+ .error .labels,
167
+ .error .infos,
168
+ .error .states {
169
+ visibility: hidden;
170
+ }
171
+ `,
172
+ skeleton,
173
+ ];
59
174
  }
60
175
 
61
176
  constructor() {
@@ -72,26 +187,32 @@ export class GvCardFull extends ItemResource(LitElement) {
72
187
  render() {
73
188
  const title = getTitle(this._item);
74
189
  const owner = getOwner(this._item);
75
- const classes = {
76
- error: this._error || this._empty,
77
- card: true
78
- };
79
- return html`<div class="${classMap(classes)}" title="${title}" @click="${this._onClick}"> <div class="${classMap({
80
- skeleton: this._skeleton
81
- })}"> <div class="${classMap({
82
- image: true
83
- })}">${this._renderImage()}</div> <div class="content"> <div class="${classMap({
84
- title: true
85
- })}">${title}</div> ${owner != null && owner.trim().length > 0 ? html`<div class="owner"><gv-icon shape="general:user" size="8px"></gv-icon>${owner}</div>` : ''} <div class="states">${this._renderStates()}</div> </div> <div class="version"><span class="${classMap({
86
- skeleton: this._skeleton
87
- })}">${getVersion(this._item)}</span></div> </div> <div class="${classMap({
88
- skeleton: this._skeleton,
89
- description: true
90
- })}"> ${truncate(this._error ? i18n('gv-card-full.error') : this._empty ? i18n('gv-card-full.empty') : getDescription(this._item), this.limit)} </div> <span class="${classMap({
91
- skeleton: this._skeleton
92
- })}"> <div class="infos">${this._renderMetricsWithRating()}</div> <div class="labels">${this._renderLabels(true)}</div> </span> </div>`;
93
- }
190
+ const classes = { error: this._error || this._empty, card: true };
191
+ return html`<div class="${classMap(classes)}" title="${title}" @click="${this._onClick}">
192
+ <div class="${classMap({ skeleton: this._skeleton })}">
193
+ <div class="${classMap({ image: true })}">${this._renderImage()}</div>
194
+ <div class="content">
195
+ <div class="${classMap({ title: true })}">${title}</div>
196
+ ${owner != null && owner.trim().length > 0
197
+ ? html`<div class="owner"><gv-icon shape="general:user" size="8px"></gv-icon>${owner}</div>`
198
+ : ''}
199
+ <div class="states">${this._renderStates()}</div>
200
+ </div>
201
+ <div class="version"><span class="${classMap({ skeleton: this._skeleton })}">${getVersion(this._item)}</span></div>
202
+ </div>
203
+ <div class="${classMap({ skeleton: this._skeleton, description: true })}">
204
+ ${truncate(
205
+ this._error ? i18n('gv-card-full.error') : this._empty ? i18n('gv-card-full.empty') : getDescription(this._item),
206
+ this.limit,
207
+ )}
208
+ </div>
209
+ <span class="${classMap({ skeleton: this._skeleton })}">
210
+ <div class="infos">${this._renderMetricsWithRating()}</div>
94
211
 
212
+ <div class="labels">${this._renderLabels(true)}</div>
213
+ </span>
214
+ </div>`;
215
+ }
95
216
  }
217
+
96
218
  window.customElements.define('gv-card-full', GvCardFull);
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1jYXJkLWZ1bGwuanMiXSwibmFtZXMiOlsiY3NzIiwiaHRtbCIsIkxpdEVsZW1lbnQiLCJza2VsZXRvbiIsImNsYXNzTWFwIiwidHJ1bmNhdGUiLCJpMThuIiwiSXRlbVJlc291cmNlIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImdldFZlcnNpb24iLCJnZXRUaXRsZSIsImdldERlc2NyaXB0aW9uIiwiZ2V0T3duZXIiLCJHdkNhcmRGdWxsIiwicHJvcGVydGllcyIsIm1ldHJpY3MiLCJ0eXBlIiwiT2JqZWN0Iiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJsaW1pdCIsIl9vbkNsaWNrIiwiZSIsIl9lbXB0eSIsIl9lcnJvciIsIl9za2VsZXRvbiIsInRhcmdldCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiLCJfaXRlbSIsInJlbmRlciIsInRpdGxlIiwib3duZXIiLCJjbGFzc2VzIiwiZXJyb3IiLCJjYXJkIiwiaW1hZ2UiLCJfcmVuZGVySW1hZ2UiLCJ0cmltIiwibGVuZ3RoIiwiX3JlbmRlclN0YXRlcyIsImRlc2NyaXB0aW9uIiwiX3JlbmRlck1ldHJpY3NXaXRoUmF0aW5nIiwiX3JlbmRlckxhYmVscyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsRUFBb0JDLFVBQXBCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixvQkFBekI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLE9BQU8sbUJBQVA7QUFDQSxPQUFPLG9CQUFQO0FBQ0EsT0FBTyx5QkFBUDtBQUNBLE9BQU8sd0JBQVA7QUFD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aUIsTUFBTCxHQUFjakIsSUFBSSxDQUFDLG9CQUFELENBQWxCLEdBQTJDSyxjQUFjLENBQUMsS0FBS21CLEtBQU4sQ0FENUYsRUFFUixLQUFLVixLQUZHLENBYkgsd0JBa0JNaEIsUUFBUSxDQUFDO0FBQUVELE1BQUFBLFFBQVEsRUFBRSxLQUFLc0I7QUFBakIsS0FBRCxDQWxCZCx5QkFtQmMsS0FBS2tCLHdCQUFMLEVBbkJkLDhCQXFCZSxLQUFLQyxhQUFMLENBQW1CLElBQW5CLENBckJmLHVCQUFYO0FBd0JEOztBQXhLc0Q7QUEyS3pEQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLGNBQTdCLEVBQTZDbEMsVUFBN0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW1hZ2UnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1idXR0b24nO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtbWV0cmljcyc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1yYXRpbmcnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1zdGF0ZSc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LXRhZyc7XG5pbXBvcnQgeyB0cnVuY2F0ZSB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuaW1wb3J0IHsgSXRlbVJlc291cmNlIH0gZnJvbSAnLi4vbWl4aW5zL2l0ZW0tcmVzb3VyY2UnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgZ2V0VmVyc2lvbiwgZ2V0VGl0bGUsIGdldERlc2NyaXB0aW9uLCBnZXRPd25lciB9IGZyb20gJy4uL2xpYi9pdGVtJztcblxuLyoqXG4gKiBGdWxsIENhcmQgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LWNhcmQtZnVsbDpjbGljayAtIEN1c3RvbSBjbGljayBldmVudFxuICogQGZpcmVzIGd2LXRhZzpjbGljayAtIEN1c3RvbSBjbGljayBldmVudCBvbiBjYXJkIGxhYmVsc1xuICpcbiAqIEBhdHRyIHtQcm9taXNlPE9iamVjdD59IGl0ZW0gLSBBbiBpdGVtLlxuICogQGF0dHIge1Byb21pc2U8TWV0cmljcz59IG1ldHJpY3MgLSBBIE1ldHJpY3MuXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1jYXJkLWZ1bGwtLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXN0LCAjZmZmZmZmKV0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1jYXJkLWZ1bGwtaW1hZ2UtLWg9NjVweF0gLSBJbWFnZSBoZWlnaHRcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LWNhcmQtZnVsbC1pbWFnZS0tdz0xMTBweF0gLSBJbWFnZSB3aWR0aFxuICovXG5leHBvcnQgY2xhc3MgR3ZDYXJkRnVsbCBleHRlbmRzIEl0ZW1SZXNvdXJjZShMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljczogeyB0eXBlOiBPYmplY3QgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLnN0eWxlcyxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG5cbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDI4MXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLW0sIDE0cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWRlbnRpdHktcGljdHVyZSB7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1ndi1jYXJkLWZ1bGwtaW1hZ2UtLWgsIDY1cHgpO1xuICAgICAgICAgIHdpZHRoOiB2YXIoLS1ndi1jYXJkLWZ1bGwtaW1hZ2UtLXcsIDExMHB4KTtcbiAgICAgICAgICAtLWd2LWltYWdlLS1vZjogY29udGFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtY2FyZC1mdWxsLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KTtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSwgMCAxcHggM3B4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FyZDpob3ZlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IC0xNHB4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcmQgPiBkaXYge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDY1cHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1sLCAxNnB4KTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm93bmVyIHtcbiAgICAgICAgICAtLWd2LWljb24tLWM6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMTBweCAxMHB4IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudmVyc2lvbiB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2Q5ZDlkOSk7XG4gICAgICAgICAgcGFkZGluZzogMTBweCA4cHg7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcywgMTJweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgICBtYXJnaW46IDZweCAwO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5mb3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2Q5ZDlkOSk7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LW1ldHJpY3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICAuc2tlbGV0b24gLmluZm9zIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhYmVscyB7XG4gICAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmVycm9yIC5sYWJlbHMsXG4gICAgICAgIC5lcnJvciAuaW5mb3MsXG4gICAgICAgIC5lcnJvciAuc3RhdGVzIHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxpbWl0ID0gMTUwO1xuICB9XG5cbiAgX29uQ2xpY2soZSkge1xuICAgIGlmICghdGhpcy5fZW1wdHkgJiYgIXRoaXMuX2Vycm9yICYmICF0aGlzLl9za2VsZXRvbiAmJiAhZS50YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ2d2LW1ldHJpY3MnKSkge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2xpY2snLCB0aGlzLl9pdGVtKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXRUaXRsZSh0aGlzLl9pdGVtKTtcbiAgICBjb25zdCBvd25lciA9IGdldE93bmVyKHRoaXMuX2l0ZW0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7IGVycm9yOiB0aGlzLl9lcnJvciB8fCB0aGlzLl9lbXB0eSwgY2FyZDogdHJ1ZSB9O1xuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiIHRpdGxlPVwiJHt0aXRsZX1cIiBAY2xpY2s9XCIke3RoaXMuX29uQ2xpY2t9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiB9KX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBpbWFnZTogdHJ1ZSB9KX1cIj4ke3RoaXMuX3JlbmRlckltYWdlKCl9PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyB0aXRsZTogdHJ1ZSB9KX1cIj4ke3RpdGxlfTwvZGl2PlxuICAgICAgICAgICR7b3duZXIgIT0gbnVsbCAmJiBvd25lci50cmltKCkubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJvd25lclwiPjxndi1pY29uIHNoYXBlPVwiZ2VuZXJhbDp1c2VyXCIgc2l6ZT1cIjhweFwiPjwvZ3YtaWNvbj4ke293bmVyfTwvZGl2PmBcbiAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlc1wiPiR7dGhpcy5fcmVuZGVyU3RhdGVzKCl9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmVyc2lvblwiPjxzcGFuIGNsYXNzPVwiJHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiB9KX1cIj4ke2dldFZlcnNpb24odGhpcy5faXRlbSl9PC9zcGFuPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiwgZGVzY3JpcHRpb246IHRydWUgfSl9XCI+XG4gICAgICAgICR7dHJ1bmNhdGUoXG4gICAgICAgICAgdGhpcy5fZXJyb3IgPyBpMThuKCdndi1jYXJkLWZ1bGwuZXJyb3InKSA6IHRoaXMuX2VtcHR5ID8gaTE4bignZ3YtY2FyZC1mdWxsLmVtcHR5JykgOiBnZXREZXNjcmlwdGlvbih0aGlzLl9pdGVtKSxcbiAgICAgICAgICB0aGlzLmxpbWl0LFxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24gfSl9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvc1wiPiR7dGhpcy5fcmVuZGVyTWV0cmljc1dpdGhSYXRpbmcoKX08L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxzXCI+JHt0aGlzLl9yZW5kZXJMYWJlbHModHJ1ZSl9PC9kaXY+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+YDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1jYXJkLWZ1bGwnLCBHdkNhcmRGdWxsKTtcbiJdfQ==
@@ -18,39 +18,66 @@ import { repeat } from 'lit/directives/repeat';
18
18
  import { withResizeObserver } from '../mixins/with-resize-observer';
19
19
  import { i18n } from '../lib/i18n';
20
20
  import './gv-card-full';
21
+
21
22
  /**
22
23
  * List of cards
23
24
  *
24
25
  * ## Details
25
26
  * * has @theme facet
26
27
  */
27
-
28
28
  export class GvCardList extends withResizeObserver(LitElement) {
29
29
  static get properties() {
30
30
  return {
31
- items: {
32
- type: Array
33
- }
31
+ items: { type: Array },
34
32
  };
35
33
  }
36
34
 
37
35
  constructor() {
38
36
  super();
39
37
  this.breakpoints = {
40
- width: [845, 1270]
38
+ width: [845, 1270],
41
39
  };
42
40
  }
43
41
 
44
42
  static get styles() {
45
- return [// language=CSS
46
- css`:host{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5rem}:host([w-lt-1270]) .container{grid-template-columns:repeat(2,1fr)}:host([w-lt-845]) .container{display:flex;flex-direction:column}:host([w-lt-845]) .container>.item{flex:0 1 auto}.item{opacity:0;transition:opacity .1s ease-in-out}.item.show{opacity:1}`];
43
+ return [
44
+ // language=CSS
45
+ css`
46
+ :host {
47
+ box-sizing: border-box;
48
+ display: grid;
49
+ grid-template-columns: repeat(3, 1fr);
50
+ grid-gap: 0.5rem;
51
+ }
52
+
53
+ :host([w-lt-1270]) .container {
54
+ grid-template-columns: repeat(2, 1fr);
55
+ }
56
+
57
+ :host([w-lt-845]) .container {
58
+ display: flex;
59
+ flex-direction: column;
60
+ }
61
+
62
+ :host([w-lt-845]) .container > .item {
63
+ flex: 0 1 auto;
64
+ }
65
+
66
+ .item {
67
+ opacity: 0;
68
+ transition: opacity 100ms ease-in-out;
69
+ }
70
+
71
+ .item.show {
72
+ opacity: 1;
73
+ }
74
+ `,
75
+ ];
47
76
  }
48
77
 
49
78
  renderItem(item, index) {
50
79
  const _item = item && item.item ? item.item : null;
51
-
52
80
  const _metrics = item && item.metrics ? item.metrics : null;
53
-
54
81
  return html`<gv-card-full class="item" .item="${_item}" .metrics="${_metrics}"> </gv-card-full>`;
55
82
  }
56
83
 
@@ -60,9 +87,12 @@ export class GvCardList extends withResizeObserver(LitElement) {
60
87
  }
61
88
 
62
89
  if (this.items) {
63
- return html`${repeat(this.items, item => item, (item, index) => this.renderItem(item, index))}`;
90
+ return html`${repeat(
91
+ this.items,
92
+ (item) => item,
93
+ (item, index) => this.renderItem(item, index),
94
+ )}`;
64
95
  }
65
-
66
96
  return '';
67
97
  }
68
98
 
@@ -78,7 +108,6 @@ export class GvCardList extends withResizeObserver(LitElement) {
78
108
  }
79
109
  }
80
110
  }
81
-
82
111
  }
112
+
83
113
  window.customElements.define('gv-card-list', GvCardList);
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1jYXJkLWxpc3QuanMiXSwibmFtZXMiOlsiY3NzIiwiTGl0RWxlbWVudCIsImh0bWwiLCJyZXBlYXQiLCJ3aXRoUmVzaXplT2JzZXJ2ZXIiLCJpMThuIiwiR3ZDYXJkTGlzdCIsInByb3BlcnRpZXMiLCJpdGVtcyIsInR5cGUiLCJBcnJheSIsImNvbnN0cnVjdG9yIiwiYnJlYWtwb2ludHMiLCJ3aWR0aCIsInN0eWxlcyIsInJlbmRlckl0ZW0iLCJpdGVtIiwiaW5kZXgiLCJfaXRlbSIsIl9tZXRyaWNzIiwibWV0cmljcyIsInJlbmRlciIsIl9lcnJvciIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsImxlbmd0aCIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsInNldFRpbWVvdXQiLCJjbGFzc0xpc3QiLCJhZGQiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLEVBQTBCQyxJQUExQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLE1BQVQsUUFBdUIsdUJBQXZCO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsZ0NBQW5DO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLE9BQU8sZ0JBQVA7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxVQUFOLFNBQXlCRixrQkFBa0IsQ0FBQ0gsVUFBRCxDQUEzQyxDQUF3RDtBQUN4QyxhQUFWTSxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSO0FBREYsS0FBUDtBQUdEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNBLFNBQUtDLFdBQUwsR0FBbUI7QUFDakJDLE1BQUFBLEtBQUssRUFBRSxDQUFDLEdBQUQsRUFBTSxJQUFOO0FBRFUsS0FBbkI7QUFHRDs7QUFFZ0IsYUFBTkMsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTDtBQUNBZCxJQUFBQSxHQUFHLHlWQUZFLENBQVA7QUFpQ0Q7O0FBRURlLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFPQyxLQUFQLEVBQWM7QUFDdEIsVUFBTUMsS0FBSyxHQUFHRixJQUFJLElBQUlBLElBQUksQ0FBQ0EsSUFBYixHQUFvQkEsSUFBSSxDQUFDQSxJQUF6QixHQUFnQyxJQUE5Qzs7QUFDQSxVQUFNRyxRQUFRLEdBQUdILElBQUksSUFBSUEsSUFBSSxDQUFDSSxPQUFiLEdBQXVCSixJQUFJLENBQUNJLE9BQTVCLEdBQXNDLElBQXZEOztBQUNBLFdBQU9sQixJQUFJLHFDQUFxQ2dCLEtBQXJDLGVBQXlEQyxRQUF6RCxvQkFBWDtBQUNEOztBQUVERSxFQUFBQSxNQUFNLEdBQUc7QUFDUCxRQUFJLEtBQUtDLE1BQVQsRUFBaUI7QUFDZixhQUFPcEIsSUFBSSxRQUFRRyxJQUFJLENBQUMsb0JBQUQsQ0FBWixRQUFYO0FBQ0Q7O0FBRUQsUUFBSSxLQUFLRyxLQUFULEVBQWdCO0FBQ2QsYUFBT04sSUFBSSxHQUFHQyxNQUFNLENBQ2xCLEtBQUtLLEtBRGEsRUFFakJRLElBQUQsSUFBVUEsSUFGUSxFQUdsQixDQUFDQSxJQUFELEVBQU9DLEtBQVAsS0FBaUIsS0FBS0YsVUFBTCxDQUFnQkMsSUFBaEIsRUFBc0JDLEtBQXRCLENBSEMsQ0FBVCxFQUFYO0FBS0Q7O0FBQ0QsV0FBTyxFQUFQO0FBQ0Q7O0FBRURNLEVBQUFBLE9BQU8sQ0FBQ0MsaUJBQUQsRUFBb0I7QUFDekIsUUFBSUEsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLE9BQXRCLENBQUosRUFBb0M7QUFDbEMsVUFBSSxLQUFLakIsS0FBTCxJQUFjLEtBQUtBLEtBQUwsQ0FBV2tCLE1BQVgsR0FBb0IsQ0FBdEMsRUFBeUM7QUFDdkMsY0FBTWxCLEtBQUssR0FBRyxLQUFLbUIsVUFBTCxDQUFnQkMsZ0JBQWhCLENBQWlDLE9BQWpDLENBQWQ7QUFDQXBCLFFBQUFBLEtBQUssQ0FBQ3FCLE9BQU4sQ0FBYyxDQUFDYixJQUFELEVBQU9DLEtBQVAsS0FBaUI7QUFDN0JhLFVBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZkLFlBQUFBLElBQUksQ0FBQ2UsU0FBTCxDQUFlQyxHQUFmLENBQW1CLE1BQW5CO0FBQ0QsV0FGUyxFQUVQZixLQUFLLEdBQUcsR0FGRCxDQUFWO0FBR0QsU0FKRDtBQUtEO0FBQ0Y7QUFDRjs7QUFsRjREO0FBcUYvRGdCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkM3QixVQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcmVwZWF0IH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVwZWF0JztcbmltcG9ydCB7IHdpdGhSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uL21peGlucy93aXRoLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuaW1wb3J0ICcuL2d2LWNhcmQtZnVsbCc7XG5cbi8qKlxuICogTGlzdCBvZiBjYXJkc1xuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICovXG5leHBvcnQgY2xhc3MgR3ZDYXJkTGlzdCBleHRlbmRzIHdpdGhSZXNpemVPYnNlcnZlcihMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmJyZWFrcG9pbnRzID0ge1xuICAgICAgd2lkdGg6IFs4NDUsIDEyNzBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgICAgICBncmlkLWdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3ctbHQtMTI3MF0pIC5jb250YWluZXIge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC04NDVdKSAuY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC04NDVdKSAuY29udGFpbmVyID4gLml0ZW0ge1xuICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pdGVtLnNob3cge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIHJlbmRlckl0ZW0oaXRlbSwgaW5kZXgpIHtcbiAgICBjb25zdCBfaXRlbSA9IGl0ZW0gJiYgaXRlbS5pdGVtID8gaXRlbS5pdGVtIDogbnVsbDtcbiAgICBjb25zdCBfbWV0cmljcyA9IGl0ZW0gJiYgaXRlbS5tZXRyaWNzID8gaXRlbS5tZXRyaWNzIDogbnVsbDtcbiAgICByZXR1cm4gaHRtbGA8Z3YtY2FyZC1mdWxsIGNsYXNzPVwiaXRlbVwiIC5pdGVtPVwiJHtfaXRlbX1cIiAubWV0cmljcz1cIiR7X21ldHJpY3N9XCI+IDwvZ3YtY2FyZC1mdWxsPmA7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX2Vycm9yKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2PiR7aTE4bignZ3YtY2FyZC1saXN0LmVycm9yJyl9PC9kaXY+YDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgcmV0dXJuIGh0bWxgJHtyZXBlYXQoXG4gICAgICAgIHRoaXMuaXRlbXMsXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLFxuICAgICAgICAoaXRlbSwgaW5kZXgpID0+IHRoaXMucmVuZGVySXRlbShpdGVtLCBpbmRleCksXG4gICAgICApfWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpdGVtcycpKSB7XG4gICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnLml0ZW0nKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xuICAgICAgICAgIH0sIGluZGV4ICogMTAwKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWNhcmQtbGlzdCcsIEd2Q2FyZExpc3QpO1xuIl19