@gravitee/ui-components 3.24.5-renovate-github-markdown-css-5-x-6cd8067 → 3.25.1

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 (115) hide show
  1. package/assets/css/github-markdown-css/github-markdown.css +545 -500
  2. package/assets/i18n/en.json +3 -0
  3. package/assets/i18n/fr.json +3 -0
  4. package/assets/icons/design.svg +1 -1
  5. package/package.json +2 -9
  6. package/src/atoms/gv-autocomplete.js +132 -156
  7. package/src/atoms/gv-button.js +73 -248
  8. package/src/atoms/gv-checkbox.js +45 -103
  9. package/src/atoms/gv-date-picker-calendar.js +312 -393
  10. package/src/atoms/gv-date-picker-cell.js +57 -81
  11. package/src/atoms/gv-date-picker.js +180 -319
  12. package/src/atoms/gv-file-upload.js +85 -195
  13. package/src/atoms/gv-icon.js +13 -34
  14. package/src/atoms/gv-image.js +31 -66
  15. package/src/atoms/gv-input-message.js +12 -37
  16. package/src/atoms/gv-input.js +117 -148
  17. package/src/atoms/gv-link.js +47 -125
  18. package/src/atoms/gv-message.js +18 -69
  19. package/src/atoms/gv-metric.js +19 -68
  20. package/src/atoms/gv-relative-time.js +67 -38
  21. package/src/atoms/gv-select-native.js +96 -215
  22. package/src/atoms/gv-select.js +110 -230
  23. package/src/atoms/gv-spinner.js +5 -26
  24. package/src/atoms/gv-state.js +25 -66
  25. package/src/atoms/gv-switch.js +40 -160
  26. package/src/atoms/gv-tag.js +26 -78
  27. package/src/atoms/gv-text.js +22 -83
  28. package/src/charts/gv-chart-bar.js +22 -18
  29. package/src/charts/gv-chart-gauge.js +28 -31
  30. package/src/charts/gv-chart-histogram.js +18 -10
  31. package/src/charts/gv-chart-line.js +70 -59
  32. package/src/charts/gv-chart-map.js +44 -42
  33. package/src/charts/gv-chart-pie.js +18 -14
  34. package/src/index.js +1 -0
  35. package/src/lib/cron-expression.js +40 -35
  36. package/src/lib/date.js +10 -1
  37. package/src/lib/events.js +3 -1
  38. package/src/lib/http-client-schema-form.js +13 -12
  39. package/src/lib/http.js +57 -56
  40. package/src/lib/i18n.js +30 -22
  41. package/src/lib/item.js +13 -12
  42. package/src/lib/properties.js +77 -42
  43. package/src/lib/schema-form.js +4 -5
  44. package/src/lib/studio.js +13 -60
  45. package/src/lib/style.js +8 -8
  46. package/src/lib/text-format.js +14 -7
  47. package/src/lib/theme.js +8 -5
  48. package/src/lib/utils.js +17 -18
  49. package/src/mixins/chart-element.js +31 -54
  50. package/src/mixins/input-element.js +60 -47
  51. package/src/mixins/item-resource.js +34 -32
  52. package/src/mixins/keyboard-element.js +6 -5
  53. package/src/mixins/update-after-browser.js +4 -1
  54. package/src/mixins/with-resize-observer.js +23 -13
  55. package/src/mixins/with-skeleton-attribute.js +54 -48
  56. package/src/molecules/gv-card-full.js +26 -147
  57. package/src/molecules/gv-card-list.js +13 -42
  58. package/src/molecules/gv-card.js +17 -91
  59. package/src/molecules/gv-category-list.js +6 -17
  60. package/src/molecules/gv-category.js +23 -103
  61. package/src/molecules/gv-code.js +81 -143
  62. package/src/molecules/gv-confirm.js +41 -71
  63. package/src/molecules/gv-cron-editor.js +143 -389
  64. package/src/molecules/gv-dropdown-menu.js +14 -46
  65. package/src/molecules/gv-expandable.js +31 -59
  66. package/src/molecules/gv-expression-language.js +176 -138
  67. package/src/molecules/gv-identity-picture.js +42 -65
  68. package/src/molecules/gv-list.js +42 -134
  69. package/src/molecules/gv-metrics.js +37 -49
  70. package/src/molecules/gv-modal.js +28 -95
  71. package/src/molecules/gv-nav.js +49 -75
  72. package/src/molecules/gv-option.js +57 -130
  73. package/src/molecules/gv-plans.js +86 -209
  74. package/src/molecules/gv-popover.js +57 -177
  75. package/src/molecules/gv-promote.js +28 -146
  76. package/src/molecules/gv-rating-list.js +69 -195
  77. package/src/molecules/gv-rating.js +52 -105
  78. package/src/molecules/gv-row-expandable.js +5 -11
  79. package/src/molecules/gv-row.js +21 -147
  80. package/src/molecules/gv-stats.js +23 -48
  81. package/src/molecules/gv-stepper.js +43 -187
  82. package/src/molecules/gv-table.js +199 -309
  83. package/src/molecules/gv-tree.js +33 -156
  84. package/src/organisms/gv-documentation.js +45 -128
  85. package/src/organisms/gv-header.js +37 -195
  86. package/src/organisms/gv-http-client.js +32 -168
  87. package/src/organisms/gv-menu.js +37 -158
  88. package/src/organisms/gv-newsletter-subscription.js +48 -189
  89. package/src/organisms/gv-pagination.js +49 -77
  90. package/src/organisms/gv-properties.js +271 -492
  91. package/src/organisms/gv-resizable-views.js +41 -259
  92. package/src/organisms/gv-resources.js +168 -275
  93. package/src/organisms/gv-schema-form-array.js +49 -159
  94. package/src/organisms/gv-schema-form-control-object.js +59 -73
  95. package/src/organisms/gv-schema-form-control.js +107 -134
  96. package/src/organisms/gv-schema-form.js +219 -280
  97. package/src/organisms/gv-tabs.js +66 -98
  98. package/src/organisms/gv-user-menu.js +36 -201
  99. package/src/organisms/gv-vertical-menu.js +20 -61
  100. package/src/policy-studio/gv-flow-step.js +106 -245
  101. package/src/policy-studio/gv-flow.js +125 -304
  102. package/src/policy-studio/gv-policy-studio-menu.js +157 -471
  103. package/src/policy-studio/gv-policy-studio.js +714 -760
  104. package/src/styles/empty.js +3 -20
  105. package/src/styles/input.js +3 -247
  106. package/src/styles/link.js +3 -16
  107. package/src/styles/shapes.js +1 -0
  108. package/src/styles/skeleton.js +3 -37
  109. package/src/styles/zoom.js +3 -24
  110. package/src/theme/gv-theme.js +21 -60
  111. package/CHANGELOG.md +0 -1260
  112. package/LICENSE.txt +0 -202
  113. package/README.md +0 -195
  114. package/src/.eslintrc.js +0 -19
  115. package/src/theme/definition.json +0 -1762
@@ -15,7 +15,7 @@
15
15
  */
16
16
  // This comes from the fact that parseInt trims characters coming
17
17
  // after digits and consider it a valid int, so `1*` becomes `1`.
18
- const safeParseInt = (value) => {
18
+ const safeParseInt = value => {
19
19
  if (/^\d+$/.test(value)) {
20
20
  return Number(value);
21
21
  } else {
@@ -23,11 +23,11 @@ const safeParseInt = (value) => {
23
23
  }
24
24
  };
25
25
 
26
- const isWildcard = (value) => {
26
+ const isWildcard = value => {
27
27
  return value === '*';
28
28
  };
29
29
 
30
- const isQuestionMark = (value) => {
30
+ const isQuestionMark = value => {
31
31
  return value === '?';
32
32
  };
33
33
 
@@ -37,19 +37,22 @@ const isInRange = (value, start, stop) => {
37
37
 
38
38
  const isValidRange = (value, start, stop) => {
39
39
  const sides = value.split('-');
40
+
40
41
  switch (sides.length) {
41
42
  case 1:
42
43
  return isWildcard(value) || isInRange(safeParseInt(value), start, stop);
44
+
43
45
  case 2:
44
46
  // eslint-disable-next-line no-case-declarations
45
- const [small, big] = sides.map((side) => safeParseInt(side));
47
+ const [small, big] = sides.map(side => safeParseInt(side));
46
48
  return small <= big && isInRange(small, start, stop) && isInRange(big, start, stop);
49
+
47
50
  default:
48
51
  return false;
49
52
  }
50
53
  };
51
54
 
52
- const isValidStep = (value) => {
55
+ const isValidStep = value => {
53
56
  return value === undefined || value.search(/[^\d]/) === -1;
54
57
  };
55
58
 
@@ -59,38 +62,38 @@ const validateForRange = (value, start, stop) => {
59
62
  }
60
63
 
61
64
  const list = value.split(',');
62
- return list.every((condition) => {
63
- const splits = condition.split('/');
64
- // Prevents `*/ * * * *` from being accepted.
65
+ return list.every(condition => {
66
+ const splits = condition.split('/'); // Prevents `*/ * * * *` from being accepted.
67
+
65
68
  if (condition.trim().endsWith('/')) {
66
69
  return false;
67
- }
70
+ } // Prevents `*/*/* * * * *` from being accepted
71
+
68
72
 
69
- // Prevents `*/*/* * * * *` from being accepted
70
73
  if (splits.length > 2) {
71
74
  return false;
72
- }
75
+ } // If we don't have a `/`, right will be undefined which is considered a valid step if we don't a `/`.
76
+
73
77
 
74
- // If we don't have a `/`, right will be undefined which is considered a valid step if we don't a `/`.
75
78
  const [left, right] = splits;
76
79
  return isValidRange(left, start, stop) && isValidStep(right);
77
80
  });
78
81
  };
79
82
 
80
- const hasValidSeconds = (seconds) => {
83
+ const hasValidSeconds = seconds => {
81
84
  return validateForRange(seconds, 0, 59);
82
85
  };
83
86
 
84
- const hasValidMinutes = (minutes) => {
87
+ const hasValidMinutes = minutes => {
85
88
  return validateForRange(minutes, 0, 59);
86
89
  };
87
90
 
88
- const hasValidHours = (hours) => {
91
+ const hasValidHours = hours => {
89
92
  return validateForRange(hours, 0, 23);
90
93
  };
91
94
 
92
95
  const hasValidDays = (days, allowBlankDay) => {
93
- return (allowBlankDay && isQuestionMark(days)) || validateForRange(days, 1, 31);
96
+ return allowBlankDay && isQuestionMark(days) || validateForRange(days, 1, 31);
94
97
  };
95
98
 
96
99
  const monthAlias = {
@@ -105,7 +108,7 @@ const monthAlias = {
105
108
  sep: '9',
106
109
  oct: '10',
107
110
  nov: '11',
108
- dec: '12',
111
+ dec: '12'
109
112
  };
110
113
 
111
114
  const hasValidMonths = (months, alias) => {
@@ -115,10 +118,10 @@ const hasValidMonths = (months, alias) => {
115
118
  }
116
119
 
117
120
  if (alias) {
118
- const remappedMonths = months.toLowerCase().replace(/[a-z]{3}/g, (match) => {
121
+ const remappedMonths = months.toLowerCase().replace(/[a-z]{3}/g, match => {
119
122
  return monthAlias[match] === undefined ? match : monthAlias[match];
120
- });
121
- // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the months
123
+ }); // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the months
124
+
122
125
  return validateForRange(remappedMonths, 1, 12);
123
126
  }
124
127
 
@@ -132,7 +135,7 @@ const weekdaysAlias = {
132
135
  wed: '3',
133
136
  thu: '4',
134
137
  fri: '5',
135
- sat: '6',
138
+ sat: '6'
136
139
  };
137
140
 
138
141
  const hasValidWeekdays = (weekdays, alias, allowBlankDay, allowSevenAsSunday) => {
@@ -141,18 +144,18 @@ const hasValidWeekdays = (weekdays, alias, allowBlankDay, allowSevenAsSunday) =>
141
144
  return true;
142
145
  } else if (!allowBlankDay && isQuestionMark(weekdays)) {
143
146
  return false;
144
- }
147
+ } // Prevents alias to be used as steps
148
+
145
149
 
146
- // Prevents alias to be used as steps
147
150
  if (weekdays.search(/\/[a-zA-Z]/) !== -1) {
148
151
  return false;
149
152
  }
150
153
 
151
154
  if (alias) {
152
- const remappedWeekdays = weekdays.toLowerCase().replace(/[a-z]{3}/g, (match) => {
155
+ const remappedWeekdays = weekdays.toLowerCase().replace(/[a-z]{3}/g, match => {
153
156
  return weekdaysAlias[match] === undefined ? match : weekdaysAlias[match];
154
- });
155
- // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the weekdays
157
+ }); // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the weekdays
158
+
156
159
  return validateForRange(remappedWeekdays, 0, allowSevenAsSunday ? 7 : 6);
157
160
  }
158
161
 
@@ -163,7 +166,7 @@ const hasCompatibleDayFormat = (days, weekdays, allowBlankDay) => {
163
166
  return !(allowBlankDay && isQuestionMark(days) && isQuestionMark(weekdays));
164
167
  };
165
168
 
166
- const split = (cron) => {
169
+ const split = cron => {
167
170
  return cron.trim().split(/\s+/);
168
171
  };
169
172
 
@@ -171,12 +174,12 @@ const defaultOptions = {
171
174
  alias: false,
172
175
  seconds: false,
173
176
  allowBlankDay: false,
174
- allowSevenAsSunday: false,
177
+ allowSevenAsSunday: false
175
178
  };
176
-
177
179
  export const isValidCron = (cron, options) => {
178
- options = { ...defaultOptions, ...options };
179
-
180
+ options = { ...defaultOptions,
181
+ ...options
182
+ };
180
183
  const splits = split(cron);
181
184
 
182
185
  if (splits.length > (options.seconds ? 6 : 5) || splits.length < 5) {
@@ -184,15 +187,17 @@ export const isValidCron = (cron, options) => {
184
187
  }
185
188
 
186
189
  const checks = [];
190
+
187
191
  if (splits.length === 6) {
188
192
  const seconds = splits.shift();
193
+
189
194
  if (seconds) {
190
195
  checks.push(hasValidSeconds(seconds));
191
196
  }
192
- }
193
-
194
- // We could only check the steps gradually and return false on the first invalid block,
197
+ } // We could only check the steps gradually and return false on the first invalid block,
195
198
  // However, this won't have any performance impact so why bother for now.
199
+
200
+
196
201
  const [minutes, hours, days, months, weekdays] = splits;
197
202
  checks.push(hasValidMinutes(minutes));
198
203
  checks.push(hasValidHours(hours));
@@ -200,6 +205,6 @@ export const isValidCron = (cron, options) => {
200
205
  checks.push(hasValidMonths(months, options.alias));
201
206
  checks.push(hasValidWeekdays(weekdays, options.alias, options.allowBlankDay, options.allowSevenAsSunday));
202
207
  checks.push(hasCompatibleDayFormat(days, weekdays, options.allowBlankDay));
203
-
204
208
  return checks.every(Boolean);
205
209
  };
210
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2xpYi9jcm9uLWV4cHJlc3Npb24uanMiXSwibmFtZXMiOlsic2FmZVBhcnNlSW50IiwidmFsdWUiLCJ0ZXN0IiwiTnVtYmVyIiwiTmFOIiwiaXNXaWxkY2FyZCIsImlzUXVlc3Rpb25NYXJrIiwiaXNJblJhbmdlIiwic3RhcnQiLCJzdG9wIiwiaXNWYWxpZFJhbmdlIiwic2lkZXMiLCJzcGxpdCIsImxlbmd0aCIsInNtYWxsIiwiYmlnIiwibWFwIiwic2lkZSIsImlzVmFsaWRTdGVwIiwidW5kZWZpbmVkIiwic2VhcmNoIiwidmFsaWRhdGVGb3JSYW5nZSIsImxpc3QiLCJldmVyeSIsImNvbmRpdGlvbiIsInNwbGl0cyIsInRyaW0iLCJlbmRzV2l0aCIsImxlZnQiLCJyaWdodCIsImhhc1ZhbGlkU2Vjb25kcyIsInNlY29uZHMiLCJoYXNWYWxpZE1pbnV0ZXMiLCJtaW51dGVzIiwiaGFzVmFsaWRIb3VycyIsImhvdXJzIiwiaGFzVmFsaWREYXlzIiwiZGF5cyIsImFsbG93QmxhbmtEYXkiLCJtb250aEFsaWFzIiwiamFuIiwiZmViIiwibWFyIiwiYXByIiwibWF5IiwianVuIiwianVsIiwiYXVnIiwic2VwIiwib2N0Iiwibm92IiwiZGVjIiwiaGFzVmFsaWRNb250aHMiLCJtb250aHMiLCJhbGlhcyIsInJlbWFwcGVkTW9udGhzIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwibWF0Y2giLCJ3ZWVrZGF5c0FsaWFzIiwic3VuIiwibW9uIiwidHVlIiwid2VkIiwidGh1IiwiZnJpIiwic2F0IiwiaGFzVmFsaWRXZWVrZGF5cyIsIndlZWtkYXlzIiwiYWxsb3dTZXZlbkFzU3VuZGF5IiwicmVtYXBwZWRXZWVrZGF5cyIsImhhc0NvbXBhdGlibGVEYXlGb3JtYXQiLCJjcm9uIiwiZGVmYXVsdE9wdGlvbnMiLCJpc1ZhbGlkQ3JvbiIsIm9wdGlvbnMiLCJjaGVja3MiLCJzaGlmdCIsInB1c2gi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QUNFLElBQVAsQ0FBWTFCLGNBQWMsQ0FBQ0MsTUFBRCxFQUFTc0IsT0FBTyxDQUFDckIsS0FBakIsQ0FBMUI7QUFDQXNCLEVBQUFBLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZWCxnQkFBZ0IsQ0FBQ0MsUUFBRCxFQUFXTyxPQUFPLENBQUNyQixLQUFuQixFQUEwQnFCLE9BQU8sQ0FBQ3JDLGFBQWxDLEVBQWlEcUMsT0FBTyxDQUFDTixrQkFBekQsQ0FBNUI7QUFDQU8sRUFBQUEsTUFBTSxDQUFDRSxJQUFQLENBQVlQLHNCQUFzQixDQUFDbEMsSUFBRCxFQUFPK0IsUUFBUCxFQUFpQk8sT0FBTyxDQUFDckMsYUFBekIsQ0FBbEM7QUFFQSxTQUFPc0MsTUFBTSxDQUFDckQsS0FBUCxDQUFhd0QsT0FBYixDQUFQO0FBQ0QsQ0E1Qk0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8gVGhpcyBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgcGFyc2VJbnQgdHJpbXMgY2hhcmFjdGVycyBjb21pbmdcbi8vIGFmdGVyIGRpZ2l0cyBhbmQgY29uc2lkZXIgaXQgYSB2YWxpZCBpbnQsIHNvIGAxKmAgYmVjb21lcyBgMWAuXG5jb25zdCBzYWZlUGFyc2VJbnQgPSAodmFsdWUpID0+IHtcbiAgaWYgKC9eXFxkKyQvLnRlc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxufTtcblxuY29uc3QgaXNXaWxkY2FyZCA9ICh2YWx1ZSkgPT4ge1xuICByZXR1cm4gdmFsdWUgPT09ICcqJztcbn07XG5cbmNvbnN0IGlzUXVlc3Rpb25NYXJrID0gKHZhbHVlKSA9PiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gJz8nO1xufTtcblxuY29uc3QgaXNJblJhbmdlID0gKHZhbHVlLCBzdGFydCwgc3RvcCkgPT4ge1xuICByZXR1cm4gdmFsdWUgPj0gc3RhcnQgJiYgdmFsdWUgPD0gc3RvcDtcbn07XG5cbmNvbnN0IGlzVmFsaWRSYW5nZSA9ICh2YWx1ZSwgc3RhcnQsIHN0b3ApID0+IHtcbiAgY29uc3Qgc2lkZXMgPSB2YWx1ZS5zcGxpdCgnLScpO1xuICBzd2l0Y2ggKHNpZGVzLmxlbmd0aCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiBpc1dpbGRjYXJkKHZhbHVlKSB8fCBpc0luUmFuZ2Uoc2FmZVBhcnNlSW50KHZhbHVlKSwgc3RhcnQsIHN0b3ApO1xuICAgIGNhc2UgMjpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgY29uc3QgW3NtYWxsLCBiaWddID0gc2lkZXMubWFwKChzaWRlKSA9PiBzYWZlUGFyc2VJbnQoc2lkZSkpO1xuICAgICAgcmV0dXJuIHNtYWxsIDw9IGJpZyAmJiBpc0luUmFuZ2Uoc21hbGwsIHN0YXJ0LCBzdG9wKSAmJiBpc0luUmFuZ2UoYmlnLCBzdGFydCwgc3RvcCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY29uc3QgaXNWYWxpZFN0ZXAgPSAodmFsdWUpID0+IHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUuc2VhcmNoKC9bXlxcZF0vKSA9PT0gLTE7XG59O1xuXG5jb25zdCB2YWxpZGF0ZUZvclJhbmdlID0gKHZhbHVlLCBzdGFydCwgc3RvcCkgPT4ge1xuICBpZiAodmFsdWUuc2VhcmNoKC9bXlxcZC0sLypdLykgIT09IC0xKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbGlzdCA9IHZhbHVlLnNwbGl0KCcsJyk7XG4gIHJldHVybiBsaXN0LmV2ZXJ5KChjb25kaXRpb24pID0+IHtcbiAgICBjb25zdCBzcGxpdHMgPSBjb25kaXRpb24uc3BsaXQoJy8nKTtcbiAgICAvLyBQcmV2ZW50cyBgKi8gKiAqICogKmAgZnJvbSBiZWluZyBhY2NlcHRlZC5cbiAgICBpZiAoY29uZGl0aW9uLnRyaW0oKS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gUHJldmVudHMgYCovKi8qICogKiAqICpgIGZyb20gYmVpbmcgYWNjZXB0ZWRcbiAgICBpZiAoc3BsaXRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgYC9gLCByaWdodCB3aWxsIGJlIHVuZGVmaW5lZCB3aGljaCBpcyBjb25zaWRlcmVkIGEgdmFsaWQgc3RlcCBpZiB3ZSBkb24ndCBhIGAvYC5cbiAgICBjb25zdCBbbGVmdCwgcmlnaHRdID0gc3BsaXRzO1xuICAgIHJldHVybiBpc1ZhbGlkUmFuZ2UobGVmdCwgc3RhcnQsIHN0b3ApICYmIGlzVmFsaWRTdGVwKHJpZ2h0KTtcbiAgfSk7XG59O1xuXG5jb25zdCBoYXNWYWxpZFNlY29uZHMgPSAoc2Vjb25kcykgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVGb3JSYW5nZShzZWNvbmRzLCAwLCA1OSk7XG59O1xuXG5jb25zdCBoYXNWYWxpZE1pbnV0ZXMgPSAobWludXRlcykgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVGb3JSYW5nZShtaW51dGVzLCAwLCA1OSk7XG59O1xuXG5jb25zdCBoYXNWYWxpZEhvdXJzID0gKGhvdXJzKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUZvclJhbmdlKGhvdXJzLCAwLCAyMyk7XG59O1xuXG5jb25zdCBoYXNWYWxpZERheXMgPSAoZGF5cywgYWxsb3dCbGFua0RheSkgPT4ge1xuICByZXR1cm4gKGFsbG93QmxhbmtEYXkgJiYgaXNRdWVzdGlvbk1hcmsoZGF5cykpIHx8IHZhbGlkYXRlRm9yUmFuZ2UoZGF5cywgMSwgMzEpO1xufTtcblxuY29uc3QgbW9udGhBbGlhcyA9IHtcbiAgamFuOiAnMScsXG4gIGZlYjogJzInLFxuICBtYXI6ICczJyxcbiAgYXByOiAnNCcsXG4gIG1heTogJzUnLFxuICBqdW46ICc2JyxcbiAganVsOiAnNycsXG4gIGF1ZzogJzgnLFxuICBzZXA6ICc5JyxcbiAgb2N0OiAnMTAnLFxuICBub3Y6ICcxMScsXG4gIGRlYzogJzEyJyxcbn07XG5cbmNvbnN0IGhhc1ZhbGlkTW9udGhzID0gKG1vbnRocywgYWxpYXMpID0+IHtcbiAgLy8gUHJldmVudHMgYWxpYXMgdG8gYmUgdXNlZCBhcyBzdGVwc1xuICBpZiAobW9udGhzLnNlYXJjaCgvXFwvW2EtekEtWl0vKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoYWxpYXMpIHtcbiAgICBjb25zdCByZW1hcHBlZE1vbnRocyA9IG1vbnRocy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1thLXpdezN9L2csIChtYXRjaCkgPT4ge1xuICAgICAgcmV0dXJuIG1vbnRoQWxpYXNbbWF0Y2hdID09PSB1bmRlZmluZWQgPyBtYXRjaCA6IG1vbnRoQWxpYXNbbWF0Y2hdO1xuICAgIH0pO1xuICAgIC8vIElmIGFueSBpbnZhbGlkIGFsaWFzIHdhcyB1c2VkLCBpdCB3b24ndCBwYXNzIHRoZSBvdGhlciBjaGVja3MgYXMgdGhlcmUgd2lsbCBiZSBub24tbnVtZXJpYyB2YWx1ZXMgaW4gdGhlIG1vbnRoc1xuICAgIHJldHVybiB2YWxpZGF0ZUZvclJhbmdlKHJlbWFwcGVkTW9udGhzLCAxLCAxMik7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGb3JSYW5nZShtb250aHMsIDEsIDEyKTtcbn07XG5cbmNvbnN0IHdlZWtkYXlzQWxpYXMgPSB7XG4gIHN1bjogJzAnLFxuICBtb246ICcxJyxcbiAgdHVlOiAnMicsXG4gIHdlZDogJzMnLFxuICB0aHU6ICc0JyxcbiAgZnJpOiAnNScsXG4gIHNhdDogJzYnLFxufTtcblxuY29uc3QgaGFzVmFsaWRXZWVrZGF5cyA9ICh3ZWVrZGF5cywgYWxpYXMsIGFsbG93QmxhbmtEYXksIGFsbG93U2V2ZW5Bc1N1bmRheSkgPT4ge1xuICAvLyBJZiB0aGVyZSBpcyBhIHF1ZXN0aW9uIG1hcmssIGNoZWNrcyBpZiB0aGUgYWxsb3dCbGFua0RheSBmbGFnIGlzIHNldFxuICBpZiAoYWxsb3dCbGFua0RheSAmJiBpc1F1ZXN0aW9uTWFyayh3ZWVrZGF5cykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmICghYWxsb3dCbGFua0RheSAmJiBpc1F1ZXN0aW9uTWFyayh3ZWVrZGF5cykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBQcmV2ZW50cyBhbGlhcyB0byBiZSB1c2VkIGFzIHN0ZXBzXG4gIGlmICh3ZWVrZGF5cy5zZWFyY2goL1xcL1thLXpBLVpdLykgIT09IC0xKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGFsaWFzKSB7XG4gICAgY29uc3QgcmVtYXBwZWRXZWVrZGF5cyA9IHdlZWtkYXlzLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW2Etel17M30vZywgKG1hdGNoKSA9PiB7XG4gICAgICByZXR1cm4gd2Vla2RheXNBbGlhc1ttYXRjaF0gPT09IHVuZGVmaW5lZCA/IG1hdGNoIDogd2Vla2RheXNBbGlhc1ttYXRjaF07XG4gICAgfSk7XG4gICAgLy8gSWYgYW55IGludmFsaWQgYWxpYXMgd2FzIHVzZWQsIGl0IHdvbid0IHBhc3MgdGhlIG90aGVyIGNoZWNrcyBhcyB0aGVyZSB3aWxsIGJlIG5vbi1udW1lcmljIHZhbHVlcyBpbiB0aGUgd2Vla2RheXNcbiAgICByZXR1cm4gdmFsaWRhdGVGb3JSYW5nZShyZW1hcHBlZFdlZWtkYXlzLCAwLCBhbGxvd1NldmVuQXNTdW5kYXkgPyA3IDogNik7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGb3JSYW5nZSh3ZWVrZGF5cywgMCwgYWxsb3dTZXZlbkFzU3VuZGF5ID8gNyA6IDYpO1xufTtcblxuY29uc3QgaGFzQ29tcGF0aWJsZURheUZvcm1hdCA9IChkYXlzLCB3ZWVrZGF5cywgYWxsb3dCbGFua0RheSkgPT4ge1xuICByZXR1cm4gIShhbGxvd0JsYW5rRGF5ICYmIGlzUXVlc3Rpb25NYXJrKGRheXMpICYmIGlzUXVlc3Rpb25NYXJrKHdlZWtkYXlzKSk7XG59O1xuXG5jb25zdCBzcGxpdCA9IChjcm9uKSA9PiB7XG4gIHJldHVybiBjcm9uLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gIGFsaWFzOiBmYWxzZSxcbiAgc2Vjb25kczogZmFsc2UsXG4gIGFsbG93QmxhbmtEYXk6IGZhbHNlLFxuICBhbGxvd1NldmVuQXNTdW5kYXk6IGZhbHNlLFxufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRDcm9uID0gKGNyb24sIG9wdGlvbnMpID0+IHtcbiAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcblxuICBjb25zdCBzcGxpdHMgPSBzcGxpdChjcm9uKTtcblxuICBpZiAoc3BsaXRzLmxlbmd0aCA+IChvcHRpb25zLnNlY29uZHMgPyA2IDogNSkgfHwgc3BsaXRzLmxlbmd0aCA8IDUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjaGVja3MgPSBbXTtcbiAgaWYgKHNwbGl0cy5sZW5ndGggPT09IDYpIHtcbiAgICBjb25zdCBzZWNvbmRzID0gc3BsaXRzLnNoaWZ0KCk7XG4gICAgaWYgKHNlY29uZHMpIHtcbiAgICAgIGNoZWNrcy5wdXNoKGhhc1ZhbGlkU2Vjb25kcyhzZWNvbmRzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgY291bGQgb25seSBjaGVjayB0aGUgc3RlcHMgZ3JhZHVhbGx5IGFuZCByZXR1cm4gZmFsc2Ugb24gdGhlIGZpcnN0IGludmFsaWQgYmxvY2ssXG4gIC8vIEhvd2V2ZXIsIHRoaXMgd29uJ3QgaGF2ZSBhbnkgcGVyZm9ybWFuY2UgaW1wYWN0IHNvIHdoeSBib3RoZXIgZm9yIG5vdy5cbiAgY29uc3QgW21pbnV0ZXMsIGhvdXJzLCBkYXlzLCBtb250aHMsIHdlZWtkYXlzXSA9IHNwbGl0cztcbiAgY2hlY2tzLnB1c2goaGFzVmFsaWRNaW51dGVzKG1pbnV0ZXMpKTtcbiAgY2hlY2tzLnB1c2goaGFzVmFsaWRIb3Vycyhob3VycykpO1xuICBjaGVja3MucHVzaChoYXNWYWxpZERheXMoZGF5cywgb3B0aW9ucy5hbGxvd0JsYW5rRGF5KSk7XG4gIGNoZWNrcy5wdXNoKGhhc1ZhbGlkTW9udGhzKG1vbnRocywgb3B0aW9ucy5hbGlhcykpO1xuICBjaGVja3MucHVzaChoYXNWYWxpZFdlZWtkYXlzKHdlZWtkYXlzLCBvcHRpb25zLmFsaWFzLCBvcHRpb25zLmFsbG93QmxhbmtEYXksIG9wdGlvbnMuYWxsb3dTZXZlbkFzU3VuZGF5KSk7XG4gIGNoZWNrcy5wdXNoKGhhc0NvbXBhdGlibGVEYXlGb3JtYXQoZGF5cywgd2Vla2RheXMsIG9wdGlvbnMuYWxsb3dCbGFua0RheSkpO1xuXG4gIHJldHVybiBjaGVja3MuZXZlcnkoQm9vbGVhbik7XG59O1xuIl19
package/src/lib/date.js CHANGED
@@ -17,28 +17,37 @@ export function isInvalid(date, min, max, noTime = true, disabledDates = []) {
17
17
  if (date) {
18
18
  if (min) {
19
19
  const minDate = new Date(min * 1000);
20
+
20
21
  if (noTime) {
21
22
  minDate.setHours(0, 0);
22
23
  }
24
+
23
25
  minDate.setSeconds(0, 0);
26
+
24
27
  if (date < minDate.getTime() / 1000) {
25
28
  return true;
26
29
  }
27
30
  }
31
+
28
32
  if (max) {
29
33
  const maxDate = new Date(max * 1000);
34
+
30
35
  if (noTime) {
31
36
  maxDate.setHours(23, 59);
32
37
  }
38
+
33
39
  maxDate.setSeconds(59, 59);
40
+
34
41
  if (date > maxDate.getTime() / 1000) {
35
42
  return true;
36
43
  }
37
44
  }
38
45
 
39
- if (disabledDates.findIndex((disabledDay) => parseInt(disabledDay, 10) === date) !== -1) {
46
+ if (disabledDates.findIndex(disabledDay => parseInt(disabledDay, 10) === date) !== -1) {
40
47
  return true;
41
48
  }
42
49
  }
50
+
43
51
  return false;
44
52
  }
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2xpYi9kYXRlLmpzIl0sIm5hbWVzIjpbImlzSW52YWxpZCIsImRhdGUiLCJtaW4iLCJtYXgiLCJub1RpbWUiLCJkaXNhYmxlZERhdGVzIiwibWluRGF0ZSIsIkRhdGUiLCJzZXRIb3VycyIsInNldFNlY29uZHMiLCJnZXRUaW1lIiwibWF4RGF0ZSIsImZpbmRJbmRleCIsImRpc2FibGVkRGF5IiwicGFyc2VJbnQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsTUFBTSxHQUFHLElBQTVDLEVBQWtEQyxhQUFhLEdBQUcsRUFBbEUsRUFBc0U7QUFDM0UsTUFBSUosSUFBSixFQUFVO0FBQ1IsUUFBSUMsR0FBSixFQUFTO0FBQ1AsWUFBTUksT0FBTyxHQUFHLElBQUlDLElBQUosQ0FBU0wsR0FBRyxHQUFHLElBQWYsQ0FBaEI7O0FBQ0EsVUFBSUUsTUFBSixFQUFZO0FBQ1ZFLFFBQUFBLE9BQU8sQ0FBQ0UsUUFBUixDQUFpQixDQUFqQixFQUFvQixDQUFwQjtBQUNEOztBQUNERixNQUFBQSxPQUFPLENBQUNHLFVBQVIsQ0FBbUIsQ0FBbkIsRUFBc0IsQ0FBdEI7O0FBQ0EsVUFBSVIsSUFBSSxHQUFHSyxPQUFPLENBQUNJLE9BQVIsS0FBb0IsSUFBL0IsRUFBcUM7QUFDbkMsZUFBTyxJQUFQO0FBQ0Q7QUFDRjs7QUFDRCxRQUFJUCxHQUFKLEVBQVM7QUFDUCxZQUFNUSxPQUFPLEdBQUcsSUFBSUosSUFBSixDQUFTSixHQUFHLEdBQUcsSUFBZixDQUFoQjs7QUFDQSxVQUFJQyxNQUFKLEVBQVk7QUFDVk8sUUFBQUEsT0FBTyxDQUFDSCxRQUFSLENBQWlCLEVBQWpCLEVBQXFCLEVBQXJCO0FBQ0Q7O0FBQ0RHLE1BQUFBLE9BQU8sQ0FBQ0YsVUFBUixDQUFtQixFQUFuQixFQUF1QixFQUF2Qjs7QUFDQSxVQUFJUixJQUFJLEdBQUdVLE9BQU8sQ0FBQ0QsT0FBUixLQUFvQixJQUEvQixFQUFxQztBQUNuQyxlQUFPLElBQVA7QUFDRDtBQUNGOztBQUVELFFBQUlMLGFBQWEsQ0FBQ08sU0FBZCxDQUF5QkMsV0FBRCxJQUFpQkMsUUFBUSxDQUFDRCxXQUFELEVBQWMsRUFBZCxDQUFSLEtBQThCWixJQUF2RSxNQUFpRixDQUFDLENBQXRGLEVBQXlGO0FBQ3ZGLGFBQU8sSUFBUDtBQUNEO0FBQ0Y7O0FBQ0QsU0FBTyxLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW52YWxpZChkYXRlLCBtaW4sIG1heCwgbm9UaW1lID0gdHJ1ZSwgZGlzYWJsZWREYXRlcyA9IFtdKSB7XG4gIGlmIChkYXRlKSB7XG4gICAgaWYgKG1pbikge1xuICAgICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKG1pbiAqIDEwMDApO1xuICAgICAgaWYgKG5vVGltZSkge1xuICAgICAgICBtaW5EYXRlLnNldEhvdXJzKDAsIDApO1xuICAgICAgfVxuICAgICAgbWluRGF0ZS5zZXRTZWNvbmRzKDAsIDApO1xuICAgICAgaWYgKGRhdGUgPCBtaW5EYXRlLmdldFRpbWUoKSAvIDEwMDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChtYXgpIHtcbiAgICAgIGNvbnN0IG1heERhdGUgPSBuZXcgRGF0ZShtYXggKiAxMDAwKTtcbiAgICAgIGlmIChub1RpbWUpIHtcbiAgICAgICAgbWF4RGF0ZS5zZXRIb3VycygyMywgNTkpO1xuICAgICAgfVxuICAgICAgbWF4RGF0ZS5zZXRTZWNvbmRzKDU5LCA1OSk7XG4gICAgICBpZiAoZGF0ZSA+IG1heERhdGUuZ2V0VGltZSgpIC8gMTAwMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREYXRlcy5maW5kSW5kZXgoKGRpc2FibGVkRGF5KSA9PiBwYXJzZUludChkaXNhYmxlZERheSwgMTApID09PSBkYXRlKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
package/src/lib/events.js CHANGED
@@ -16,11 +16,13 @@
16
16
  export function dispatchCustomEvent(node, suffix, detail, options = {}) {
17
17
  const eventName = `${node.nodeName.toLocaleLowerCase()}:${suffix}`;
18
18
  /* global CustomEvent */
19
+
19
20
  const event = new CustomEvent(eventName, {
20
21
  detail,
21
22
  bubbles: true,
22
23
  composed: true,
23
- ...options,
24
+ ...options
24
25
  });
25
26
  node.dispatchEvent(event);
26
27
  }
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2xpYi9ldmVudHMuanMiXSwibmFtZXMiOlsiZGlzcGF0Y2hDdXN0b21FdmVudCIsIm5vZGUiLCJzdWZmaXgiLCJkZXRhaWwiLCJvcHRpb25zIiwiZXZlbnROYW1lIiwibm9kZU5hbWUiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsImV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJidWJibGVzIiwiY29tcG9zZWQiLCJkaXNwYXRjaEV2ZW50Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNBLG1CQUFULENBQTZCQyxJQUE3QixFQUFtQ0MsTUFBbkMsRUFBMkNDLE1BQTNDLEVBQW1EQyxPQUFPLEdBQUcsRUFBN0QsRUFBaUU7QUFDdEUsUUFBTUMsU0FBUyxHQUFJLEdBQUVKLElBQUksQ0FBQ0ssUUFBTCxDQUFjQyxpQkFBZCxFQUFrQyxJQUFHTCxNQUFPLEVBQWpFO0FBQ0E7O0FBQ0EsUUFBTU0sS0FBSyxHQUFHLElBQUlDLFdBQUosQ0FBZ0JKLFNBQWhCLEVBQTJCO0FBQ3ZDRixJQUFBQSxNQUR1QztBQUV2Q08sSUFBQUEsT0FBTyxFQUFFLElBRjhCO0FBR3ZDQyxJQUFBQSxRQUFRLEVBQUUsSUFINkI7QUFJdkMsT0FBR1A7QUFKb0MsR0FBM0IsQ0FBZDtBQU1BSCxFQUFBQSxJQUFJLENBQUNXLGFBQUwsQ0FBbUJKLEtBQW5CO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoQ3VzdG9tRXZlbnQobm9kZSwgc3VmZml4LCBkZXRhaWwsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBldmVudE5hbWUgPSBgJHtub2RlLm5vZGVOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCl9OiR7c3VmZml4fWA7XG4gIC8qIGdsb2JhbCBDdXN0b21FdmVudCAqL1xuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChldmVudE5hbWUsIHtcbiAgICBkZXRhaWwsXG4gICAgYnViYmxlczogdHJ1ZSxcbiAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbiAgbm9kZS5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbn1cbiJdfQ==
@@ -22,12 +22,12 @@ export const httpClientSchemaForm = {
22
22
  description: 'HTTP method to invoke the endpoint.',
23
23
  type: 'string',
24
24
  default: 'GET',
25
- enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE'],
25
+ enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE']
26
26
  },
27
27
  path: {
28
28
  title: 'Path',
29
29
  type: 'string',
30
- default: '/',
30
+ default: '/'
31
31
  },
32
32
  headers: {
33
33
  type: 'array',
@@ -38,15 +38,15 @@ export const httpClientSchemaForm = {
38
38
  properties: {
39
39
  name: {
40
40
  title: 'Name',
41
- type: 'string',
41
+ type: 'string'
42
42
  },
43
43
  value: {
44
44
  title: 'Value',
45
- type: 'string',
46
- },
47
- },
45
+ type: 'string'
46
+ }
47
+ }
48
48
  },
49
- required: ['name', 'value'],
49
+ required: ['name', 'value']
50
50
  },
51
51
  body: {
52
52
  title: 'Request body',
@@ -58,10 +58,11 @@ export const httpClientSchemaForm = {
58
58
  lineWrapping: true,
59
59
  lineNumbers: true,
60
60
  allowDropFileTypes: true,
61
- autoCloseTags: true,
62
- },
63
- },
64
- },
61
+ autoCloseTags: true
62
+ }
63
+ }
64
+ }
65
65
  },
66
- required: ['method', 'path'],
66
+ required: ['method', 'path']
67
67
  };
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2xpYi9odHRwLWNsaWVudC1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJodHRwQ2xpZW50U2NoZW1hRm9ybSIsInR5cGUiLCJpZCIsInByb3BlcnRpZXMiLCJtZXRob2QiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdCIsImVudW0iLCJwYXRoIiwiaGVhZGVycyIsIml0ZW1zIiwibmFtZSIsInZhbHVlIiwicmVxdWlyZWQiLCJib2R5IiwiY29kZW1pcnJvck9wdGlvbnMiLCJwbGFjZWhvbGRlciIsImxpbmVXcmFwcGluZyIsImxpbmVOdW1iZXJzIiwiYWxsb3dEcm9wRmlsZVR5cGVzIiwiYXV0b0Nsb3NlVGFncyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxvQkFBb0IsR0FBRztBQUNsQ0MsRUFBQUEsSUFBSSxFQUFFLFFBRDRCO0FBRWxDQyxFQUFBQSxFQUFFLEVBQUUsd0NBRjhCO0FBR2xDQyxFQUFBQSxVQUFVLEVBQUU7QUFDVkMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLEtBQUssRUFBRSxhQUREO0FBRU5DLE1BQUFBLFdBQVcsRUFBRSxxQ0FGUDtBQUdOTCxNQUFBQSxJQUFJLEVBQUUsUUFIQTtBQUlOTSxNQUFBQSxPQUFPLEVBQUUsS0FKSDtBQUtOQyxNQUFBQSxJQUFJLEVBQUUsQ0FBQyxLQUFELEVBQVEsTUFBUixFQUFnQixLQUFoQixFQUF1QixRQUF2QixFQUFpQyxPQUFqQyxFQUEwQyxNQUExQyxFQUFrRCxTQUFsRCxFQUE2RCxTQUE3RCxFQUF3RSxPQUF4RTtBQUxBLEtBREU7QUFRVkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pKLE1BQUFBLEtBQUssRUFBRSxNQURIO0FBRUpKLE1BQUFBLElBQUksRUFBRSxRQUZGO0FBR0pNLE1BQUFBLE9BQU8sRUFBRTtBQUhMLEtBUkk7QUFhVkcsSUFBQUEsT0FBTyxFQUFFO0FBQ1BULE1BQUFBLElBQUksRUFBRSxPQURDO0FBRVBJLE1BQUFBLEtBQUssRUFBRSxpQkFGQTtBQUdQTSxNQUFBQSxLQUFLLEVBQUU7QUFDTFYsUUFBQUEsSUFBSSxFQUFFLFFBREQ7QUFFTEksUUFBQUEsS0FBSyxFQUFFLFFBRkY7QUFHTEYsUUFBQUEsVUFBVSxFQUFFO0FBQ1ZTLFVBQUFBLElBQUksRUFBRTtBQUNKUCxZQUFBQSxLQUFLLEVBQUUsTUFESDtBQUVKSixZQUFBQSxJQUFJLEVBQUU7QUFGRixXQURJO0FBS1ZZLFVBQUFBLEtBQUssRUFBRTtBQUNMUixZQUFBQSxLQUFLLEVBQUUsT0FERjtBQUVMSixZQUFBQSxJQUFJLEVBQUU7QUFGRDtBQUxHO0FBSFAsT0FIQTtBQWlCUGEsTUFBQUEsUUFBUSxFQUFFLENBQUMsTUFBRCxFQUFTLE9BQVQ7QUFqQkgsS0FiQztBQWdDVkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0pWLE1BQUFBLEtBQUssRUFBRSxjQURIO0FBRUpKLE1BQUFBLElBQUksRUFBRSxRQUZGO0FBR0osdUJBQWlCO0FBQ2ZBLFFBQUFBLElBQUksRUFBRSxZQURTO0FBRWZlLFFBQUFBLGlCQUFpQixFQUFFO0FBQ2pCQyxVQUFBQSxXQUFXLEVBQUUsdUJBREk7QUFFakJDLFVBQUFBLFlBQVksRUFBRSxJQUZHO0FBR2pCQyxVQUFBQSxXQUFXLEVBQUUsSUFISTtBQUlqQkMsVUFBQUEsa0JBQWtCLEVBQUUsSUFKSDtBQUtqQkMsVUFBQUEsYUFBYSxFQUFFO0FBTEU7QUFGSjtBQUhiO0FBaENJLEdBSHNCO0FBa0RsQ1AsRUFBQUEsUUFBUSxFQUFFLENBQUMsUUFBRCxFQUFXLE1BQVg7QUFsRHdCLENBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBodHRwQ2xpZW50U2NoZW1hRm9ybSA9IHtcbiAgdHlwZTogJ29iamVjdCcsXG4gIGlkOiAndXJuOmpzb25zY2hlbWE6aW86Z3Jhdml0ZWU6aHR0cDpjbGllbnQnLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgbWV0aG9kOiB7XG4gICAgICB0aXRsZTogJ0hUVFAgTWV0aG9kJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnSFRUUCBtZXRob2QgdG8gaW52b2tlIHRoZSBlbmRwb2ludC4nLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0OiAnR0VUJyxcbiAgICAgIGVudW06IFsnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ0RFTEVURScsICdQQVRDSCcsICdIRUFEJywgJ0NPTk5FQ1QnLCAnT1BUSU9OUycsICdUUkFDRSddLFxuICAgIH0sXG4gICAgcGF0aDoge1xuICAgICAgdGl0bGU6ICdQYXRoJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZGVmYXVsdDogJy8nLFxuICAgIH0sXG4gICAgaGVhZGVyczoge1xuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIHRpdGxlOiAnUmVxdWVzdCBIZWFkZXJzJyxcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICB0aXRsZTogJ0hlYWRlcicsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICB0aXRsZTogJ05hbWUnLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdGl0bGU6ICdWYWx1ZScsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBbJ25hbWUnLCAndmFsdWUnXSxcbiAgICB9LFxuICAgIGJvZHk6IHtcbiAgICAgIHRpdGxlOiAnUmVxdWVzdCBib2R5JyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgJ3gtc2NoZW1hLWZvcm0nOiB7XG4gICAgICAgIHR5cGU6ICdjb2RlbWlycm9yJyxcbiAgICAgICAgY29kZW1pcnJvck9wdGlvbnM6IHtcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ1B1dCByZXF1ZXN0IGJvZHkgaGVyZScsXG4gICAgICAgICAgbGluZVdyYXBwaW5nOiB0cnVlLFxuICAgICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLFxuICAgICAgICAgIGFsbG93RHJvcEZpbGVUeXBlczogdHJ1ZSxcbiAgICAgICAgICBhdXRvQ2xvc2VUYWdzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICByZXF1aXJlZDogWydtZXRob2QnLCAncGF0aCddLFxufTtcbiJdfQ==