@otto-de/b2b-core-components 1.32.2 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/b2b-core-components/b2b-core-components.esm.js +1 -1
  2. package/dist/b2b-core-components/icons-100/b2b_icon-arrow-misdirected.svg +3 -0
  3. package/dist/b2b-core-components/icons-100/b2b_icon-clipboard-check.svg +3 -0
  4. package/dist/b2b-core-components/icons-100/b2b_icon-cosmetics.png +0 -0
  5. package/dist/b2b-core-components/icons-100/b2b_icon-cosmetics.svg +3 -0
  6. package/dist/b2b-core-components/icons-100/b2b_icon-lock-open.svg +4 -0
  7. package/dist/b2b-core-components/icons-100/b2b_icon-person-wheelchair.svg +3 -0
  8. package/dist/b2b-core-components/icons-100/b2b_icon-speech-bubble-sparkles.svg +3 -0
  9. package/dist/b2b-core-components/icons-100/b2b_icon-sustainable-organic-food.svg +3 -0
  10. package/dist/b2b-core-components/icons-100/b2b_icon-universal-access.svg +3 -0
  11. package/dist/b2b-core-components/icons-100/b2b_icon-voice-sparkles.svg +3 -0
  12. package/dist/b2b-core-components/icons-100/b2b_icon-webhook.svg +3 -0
  13. package/dist/b2b-core-components/icons-50/b2b_icon-arrow-long-left.svg +3 -0
  14. package/dist/b2b-core-components/icons-50/b2b_icon-arrow-long-right.svg +3 -0
  15. package/dist/b2b-core-components/icons-50/b2b_icon-arrow-misdirected.svg +3 -0
  16. package/dist/b2b-core-components/icons-50/b2b_icon-arrow-return.svg +3 -0
  17. package/dist/b2b-core-components/icons-50/b2b_icon-callback.svg +10 -0
  18. package/dist/b2b-core-components/icons-50/b2b_icon-feedback.svg +3 -0
  19. package/dist/b2b-core-components/icons-50/b2b_icon-flag-chequered.svg +3 -0
  20. package/dist/b2b-core-components/icons-50/b2b_icon-flame.svg +3 -0
  21. package/dist/b2b-core-components/icons-50/b2b_icon-inplace-zoom.svg +3 -0
  22. package/dist/b2b-core-components/icons-50/b2b_icon-lock-closed.svg +3 -0
  23. package/dist/b2b-core-components/icons-50/b2b_icon-lock-open.svg +10 -0
  24. package/dist/b2b-core-components/icons-50/b2b_icon-notification.svg +3 -0
  25. package/dist/b2b-core-components/icons-50/b2b_icon-pending.svg +3 -0
  26. package/dist/b2b-core-components/icons-50/b2b_icon-phone.svg +3 -0
  27. package/dist/b2b-core-components/icons-50/b2b_icon-print.svg +3 -0
  28. package/dist/b2b-core-components/icons-50/b2b_icon-qr-code.svg +10 -0
  29. package/dist/b2b-core-components/icons-50/b2b_icon-skip-link.svg +3 -0
  30. package/dist/b2b-core-components/icons-50/b2b_icon-smiley-angry.svg +13 -0
  31. package/dist/b2b-core-components/icons-50/b2b_icon-smiley-happy.svg +10 -0
  32. package/dist/b2b-core-components/icons-50/b2b_icon-smiley-negative.svg +10 -0
  33. package/dist/b2b-core-components/icons-50/b2b_icon-smiley-neutral.svg +10 -0
  34. package/dist/b2b-core-components/icons-50/b2b_icon-sparkles.svg +10 -0
  35. package/dist/b2b-core-components/icons-50/b2b_icon-voucher.svg +3 -0
  36. package/dist/b2b-core-components/p-24c6aa56.entry.js +1 -0
  37. package/dist/b2b-core-components/p-2daee203.entry.js +1 -0
  38. package/dist/b2b-core-components/p-3369f3c0.entry.js +1 -0
  39. package/dist/b2b-core-components/{p-660c758b.entry.js → p-57842105.entry.js} +1 -1
  40. package/dist/b2b-core-components/p-5dacf68a.entry.js +1 -0
  41. package/dist/b2b-core-components/p-6abfdb73.entry.js +1 -0
  42. package/dist/b2b-core-components/p-703da47c.entry.js +1 -0
  43. package/dist/b2b-core-components/p-76573f9f.entry.js +1 -0
  44. package/dist/b2b-core-components/p-76bf79ec.entry.js +1 -0
  45. package/dist/b2b-core-components/p-840dd6cd.entry.js +1 -0
  46. package/dist/b2b-core-components/{p-f661154c.entry.js → p-917a7f00.entry.js} +1 -1
  47. package/dist/b2b-core-components/p-953fc46b.js +1 -0
  48. package/dist/b2b-core-components/{p-4dad7870.entry.js → p-bc2b17c6.entry.js} +1 -1
  49. package/dist/b2b-core-components/p-fea90226.entry.js +1 -0
  50. package/dist/cjs/b2b-checkbox-group.cjs.entry.js +5 -12
  51. package/dist/cjs/b2b-checkbox.cjs.entry.js +6 -4
  52. package/dist/cjs/b2b-chip-component_2.cjs.entry.js +4 -2
  53. package/dist/cjs/b2b-core-components.cjs.js +1 -1
  54. package/dist/cjs/b2b-custom-dropdown.cjs.entry.js +13 -11
  55. package/dist/cjs/b2b-date-picker-days_5.cjs.entry.js +30 -22
  56. package/dist/cjs/b2b-date-picker.cjs.entry.js +10 -5
  57. package/dist/cjs/b2b-dropdown.cjs.entry.js +8 -7
  58. package/dist/cjs/b2b-icon-100.cjs.entry.js +402 -392
  59. package/dist/cjs/b2b-icon-50.cjs.entry.js +57 -35
  60. package/dist/cjs/b2b-icon.cjs.entry.js +355 -356
  61. package/dist/cjs/b2b-input-group_2.cjs.entry.js +4 -11
  62. package/dist/cjs/b2b-input_2.cjs.entry.js +7 -9
  63. package/dist/cjs/b2b-multiselect-dropdown.cjs.entry.js +82 -55
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/cjs/{request-801c6ba1.js → request-a16ba589.js} +1 -1
  66. package/dist/collection/components/checkbox/checkbox.js +6 -4
  67. package/dist/collection/components/checkbox-group/checkbox-group.js +5 -12
  68. package/dist/collection/components/custom-dropdown/custom-dropdown.css +6 -0
  69. package/dist/collection/components/custom-dropdown/custom-dropdown.js +32 -11
  70. package/dist/collection/components/date-picker/date-picker-months.js +38 -10
  71. package/dist/collection/components/date-picker/date-picker-years.js +35 -15
  72. package/dist/collection/components/date-picker/date-picker.css +2 -3
  73. package/dist/collection/components/date-picker/date-picker.js +9 -4
  74. package/dist/collection/components/date-picker/date-picker.stories.js +9 -3
  75. package/dist/collection/components/dropdown/dropdown.css +4 -0
  76. package/dist/collection/components/dropdown/dropdown.e2e.js +1 -1
  77. package/dist/collection/components/dropdown/dropdown.js +28 -6
  78. package/dist/collection/components/dropdown/dropdown.stories.js +17 -4
  79. package/dist/collection/components/flyout-menu/flyout-menu.e2e.js +7 -2
  80. package/dist/collection/components/icon/types.js +354 -355
  81. package/dist/collection/components/icon-100/icon-100.js +1 -1
  82. package/dist/collection/components/icon-100/icons-100/b2b_icon-arrow-misdirected.svg +3 -0
  83. package/dist/collection/components/icon-100/icons-100/b2b_icon-clipboard-check.svg +3 -0
  84. package/dist/collection/components/icon-100/icons-100/b2b_icon-cosmetics.png +0 -0
  85. package/dist/collection/components/icon-100/icons-100/b2b_icon-cosmetics.svg +3 -0
  86. package/dist/collection/components/icon-100/icons-100/b2b_icon-lock-open.svg +4 -0
  87. package/dist/collection/components/icon-100/icons-100/b2b_icon-person-wheelchair.svg +3 -0
  88. package/dist/collection/components/icon-100/icons-100/b2b_icon-speech-bubble-sparkles.svg +3 -0
  89. package/dist/collection/components/icon-100/icons-100/b2b_icon-sustainable-organic-food.svg +3 -0
  90. package/dist/collection/components/icon-100/icons-100/b2b_icon-universal-access.svg +3 -0
  91. package/dist/collection/components/icon-100/icons-100/b2b_icon-voice-sparkles.svg +3 -0
  92. package/dist/collection/components/icon-100/icons-100/b2b_icon-webhook.svg +3 -0
  93. package/dist/collection/components/icon-100/types.js +401 -391
  94. package/dist/collection/components/icon-50/icon-50.js +1 -1
  95. package/dist/collection/components/icon-50/icons-50/b2b_icon-arrow-long-left.svg +3 -0
  96. package/dist/collection/components/icon-50/icons-50/b2b_icon-arrow-long-right.svg +3 -0
  97. package/dist/collection/components/icon-50/icons-50/b2b_icon-arrow-misdirected.svg +3 -0
  98. package/dist/collection/components/icon-50/icons-50/b2b_icon-arrow-return.svg +3 -0
  99. package/dist/collection/components/icon-50/icons-50/b2b_icon-callback.svg +10 -0
  100. package/dist/collection/components/icon-50/icons-50/b2b_icon-feedback.svg +3 -0
  101. package/dist/collection/components/icon-50/icons-50/b2b_icon-flag-chequered.svg +3 -0
  102. package/dist/collection/components/icon-50/icons-50/b2b_icon-flame.svg +3 -0
  103. package/dist/collection/components/icon-50/icons-50/b2b_icon-inplace-zoom.svg +3 -0
  104. package/dist/collection/components/icon-50/icons-50/b2b_icon-lock-closed.svg +3 -0
  105. package/dist/collection/components/icon-50/icons-50/b2b_icon-lock-open.svg +10 -0
  106. package/dist/collection/components/icon-50/icons-50/b2b_icon-notification.svg +3 -0
  107. package/dist/collection/components/icon-50/icons-50/b2b_icon-pending.svg +3 -0
  108. package/dist/collection/components/icon-50/icons-50/b2b_icon-phone.svg +3 -0
  109. package/dist/collection/components/icon-50/icons-50/b2b_icon-print.svg +3 -0
  110. package/dist/collection/components/icon-50/icons-50/b2b_icon-qr-code.svg +10 -0
  111. package/dist/collection/components/icon-50/icons-50/b2b_icon-skip-link.svg +3 -0
  112. package/dist/collection/components/icon-50/icons-50/b2b_icon-smiley-angry.svg +13 -0
  113. package/dist/collection/components/icon-50/icons-50/b2b_icon-smiley-happy.svg +10 -0
  114. package/dist/collection/components/icon-50/icons-50/b2b_icon-smiley-negative.svg +10 -0
  115. package/dist/collection/components/icon-50/icons-50/b2b_icon-smiley-neutral.svg +10 -0
  116. package/dist/collection/components/icon-50/icons-50/b2b_icon-sparkles.svg +10 -0
  117. package/dist/collection/components/icon-50/icons-50/b2b_icon-voucher.svg +3 -0
  118. package/dist/collection/components/icon-50/types.js +56 -34
  119. package/dist/collection/components/input/input.js +7 -9
  120. package/dist/collection/components/input-group/input-group.js +4 -11
  121. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.e2e.js +15 -0
  122. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.js +121 -61
  123. package/dist/collection/components/multiselect-dropdown/multiselect-dropdown.stories.js +44 -11
  124. package/dist/collection/components/multiselect-dropdown/multiselect-option/multiselect-option.js +22 -3
  125. package/dist/collection/utils/icon/request.js +1 -1
  126. package/dist/components/b2b-checkbox-group.js +5 -12
  127. package/dist/components/b2b-custom-dropdown.js +16 -12
  128. package/dist/components/b2b-date-picker.js +10 -5
  129. package/dist/components/b2b-dropdown.js +9 -7
  130. package/dist/components/b2b-icon-50.js +56 -34
  131. package/dist/components/b2b-icon.js +354 -355
  132. package/dist/components/b2b-multiselect-dropdown.js +85 -55
  133. package/dist/components/checkbox.js +6 -4
  134. package/dist/components/date-picker-months.js +16 -8
  135. package/dist/components/date-picker-years.js +14 -14
  136. package/dist/components/icon-100.js +401 -391
  137. package/dist/components/input-group.js +4 -11
  138. package/dist/components/input.js +7 -9
  139. package/dist/components/multiselect-option.js +5 -2
  140. package/dist/components/request.js +1 -1
  141. package/dist/custom-elements.json +108 -1
  142. package/dist/esm/b2b-checkbox-group.entry.js +5 -12
  143. package/dist/esm/b2b-checkbox.entry.js +6 -4
  144. package/dist/esm/b2b-chip-component_2.entry.js +4 -2
  145. package/dist/esm/b2b-core-components.js +1 -1
  146. package/dist/esm/b2b-custom-dropdown.entry.js +13 -11
  147. package/dist/esm/b2b-date-picker-days_5.entry.js +30 -22
  148. package/dist/esm/b2b-date-picker.entry.js +10 -5
  149. package/dist/esm/b2b-dropdown.entry.js +8 -7
  150. package/dist/esm/b2b-icon-100.entry.js +402 -392
  151. package/dist/esm/b2b-icon-50.entry.js +57 -35
  152. package/dist/esm/b2b-icon.entry.js +355 -356
  153. package/dist/esm/b2b-input-group_2.entry.js +4 -11
  154. package/dist/esm/b2b-input_2.entry.js +7 -9
  155. package/dist/esm/b2b-multiselect-dropdown.entry.js +82 -55
  156. package/dist/esm/loader.js +1 -1
  157. package/dist/esm/{request-1d048f8a.js → request-6bb66f19.js} +1 -1
  158. package/dist/types/components/custom-dropdown/custom-dropdown.d.ts +6 -2
  159. package/dist/types/components/date-picker/date-picker-months.d.ts +7 -4
  160. package/dist/types/components/date-picker/date-picker-years.d.ts +6 -5
  161. package/dist/types/components/date-picker/date-picker.d.ts +4 -4
  162. package/dist/types/components/dropdown/dropdown.d.ts +2 -0
  163. package/dist/types/components/dropdown/dropdown.stories.d.ts +1 -0
  164. package/dist/types/components/icon/types.d.ts +1 -1
  165. package/dist/types/components/icon-100/types.d.ts +2 -2
  166. package/dist/types/components/icon-50/types.d.ts +2 -2
  167. package/dist/types/components/multiselect-dropdown/multiselect-dropdown.d.ts +19 -9
  168. package/dist/types/components/multiselect-dropdown/multiselect-dropdown.stories.d.ts +23 -4
  169. package/dist/types/components/multiselect-dropdown/multiselect-option/multiselect-option.d.ts +3 -1
  170. package/dist/types/components.d.ts +36 -8
  171. package/dist/web-types.json +51 -12
  172. package/package.json +2 -2
  173. package/dist/b2b-core-components/p-0bf2c192.entry.js +0 -1
  174. package/dist/b2b-core-components/p-54eee61c.entry.js +0 -1
  175. package/dist/b2b-core-components/p-61b2a6ad.js +0 -1
  176. package/dist/b2b-core-components/p-639d68a2.entry.js +0 -1
  177. package/dist/b2b-core-components/p-6b291a01.entry.js +0 -1
  178. package/dist/b2b-core-components/p-6c60d337.entry.js +0 -1
  179. package/dist/b2b-core-components/p-88bf92be.entry.js +0 -1
  180. package/dist/b2b-core-components/p-a614bd46.entry.js +0 -1
  181. package/dist/b2b-core-components/p-ae7ec34a.entry.js +0 -1
  182. package/dist/b2b-core-components/p-b4d46a07.entry.js +0 -1
  183. package/dist/b2b-core-components/p-f83dd748.entry.js +0 -1
@@ -1,11 +1,12 @@
1
1
  import { h, Host, } from "@stencil/core";
2
- import { MonthsGerman, MonthsEnglish } from "./date-picker.types";
2
+ import { MonthsEnglish, MonthsGerman } from "./date-picker.types";
3
3
  const keys = {
4
4
  ARROW_UP: 'ArrowUp',
5
5
  ARROW_DOWN: 'ArrowDown',
6
6
  ARROW_RIGHT: 'ArrowRight',
7
7
  ARROW_LEFT: 'ArrowLeft',
8
8
  ENTER: 'Enter',
9
+ ESC: 'Escape',
9
10
  };
10
11
  export class B2bDatePickerMonths {
11
12
  constructor() {
@@ -39,28 +40,30 @@ export class B2bDatePickerMonths {
39
40
  }
40
41
  handleKeyDown(event) {
41
42
  event.preventDefault();
42
- let index = this.selectedMonth;
43
43
  const months = this.getAllMonths();
44
44
  let currentMonth = this.getCurrentMonth();
45
+ let index = months.indexOf(currentMonth);
45
46
  switch (event.key) {
46
47
  case keys.ARROW_LEFT:
47
- index = months.indexOf(currentMonth) - 1;
48
+ index -= 1;
48
49
  break;
49
50
  case keys.ARROW_RIGHT:
50
- index = months.indexOf(currentMonth) + 1;
51
+ index += 1;
51
52
  break;
52
53
  case keys.ARROW_UP:
53
- index = months.indexOf(currentMonth) - 3;
54
+ index -= 3;
54
55
  break;
55
56
  case keys.ARROW_DOWN:
56
- index = months.indexOf(currentMonth) + 3;
57
+ index += 3;
57
58
  break;
58
59
  case keys.ENTER:
59
- index = months.indexOf(currentMonth);
60
60
  this.b2bDatePickerMonthSelected.emit({
61
61
  value: index,
62
62
  });
63
- break;
63
+ return;
64
+ case keys.ESC:
65
+ this.b2bDatePickerEscape.emit();
66
+ return;
64
67
  default:
65
68
  return;
66
69
  }
@@ -72,8 +75,12 @@ export class B2bDatePickerMonths {
72
75
  }
73
76
  this.focusCurrentMonth(months[index]);
74
77
  }
78
+ componentDidRender() {
79
+ var _a;
80
+ (_a = this.getCurrentMonth()) === null || _a === void 0 ? void 0 : _a.focus();
81
+ }
75
82
  render() {
76
- return (h(Host, { key: '9ddb8ebbb24997435ceca09cc47ba7dc12b39ba7' }, h("div", { key: 'a650207f538786bb680698ffc293fd59a717ea3a', class: "b2b-date-picker-months" }, this.renderDatePickerMonths())));
83
+ return (h(Host, { key: '92f546b998c48d274d76db47db997bcda3968033' }, h("div", { key: 'cfd9e12f5d1047d6acf2be7142d070dd64517049', class: "b2b-date-picker-months" }, this.renderDatePickerMonths())));
77
84
  }
78
85
  static get is() { return "b2b-date-picker-months"; }
79
86
  static get encapsulation() { return "shadow"; }
@@ -135,7 +142,7 @@ export class B2bDatePickerMonths {
135
142
  "composed": true,
136
143
  "docs": {
137
144
  "tags": [],
138
- "text": "Event emitted on selecting month*"
145
+ "text": "Event emitted on selecting month"
139
146
  },
140
147
  "complexType": {
141
148
  "original": "MonthSelectedEventDetail",
@@ -148,6 +155,27 @@ export class B2bDatePickerMonths {
148
155
  }
149
156
  }
150
157
  }
158
+ }, {
159
+ "method": "b2bDatePickerEscape",
160
+ "name": "b2b-date-picker-escape",
161
+ "bubbles": true,
162
+ "cancelable": true,
163
+ "composed": true,
164
+ "docs": {
165
+ "tags": [],
166
+ "text": "Event emitted on escape press"
167
+ },
168
+ "complexType": {
169
+ "original": "EscapePressed",
170
+ "resolved": "EscapePressed<any>",
171
+ "references": {
172
+ "EscapePressed": {
173
+ "location": "import",
174
+ "path": "../../utils/interfaces/form.interface",
175
+ "id": "src/utils/interfaces/form.interface.d.ts::EscapePressed"
176
+ }
177
+ }
178
+ }
151
179
  }];
152
180
  }
153
181
  static get elementRef() { return "host"; }
@@ -5,6 +5,7 @@ const keys = {
5
5
  ARROW_RIGHT: 'ArrowRight',
6
6
  ARROW_LEFT: 'ArrowLeft',
7
7
  ENTER: 'Enter',
8
+ ESC: 'Escape',
8
9
  };
9
10
  export class B2bDatePickerYears {
10
11
  constructor() {
@@ -50,32 +51,34 @@ export class B2bDatePickerYears {
50
51
  return years;
51
52
  };
52
53
  this.selectedYear = undefined;
53
- this.yearsRange = [];
54
+ this.yearsRange = Array.from({ length: 201 }, (_, i) => i + 1900);
54
55
  }
55
56
  handleKeyDown(event) {
56
57
  event.preventDefault();
57
- let index = this.yearsRange.indexOf(this.selectedYear);
58
58
  const years = this.getAllYears();
59
59
  let currentYear = this.getCurrentYear();
60
+ let index = years.indexOf(currentYear);
60
61
  switch (event.key) {
61
62
  case keys.ARROW_LEFT:
62
- index = years.indexOf(currentYear) - 1;
63
+ index -= 1;
63
64
  break;
64
65
  case keys.ARROW_RIGHT:
65
- index = years.indexOf(currentYear) + 1;
66
+ index += 1;
66
67
  break;
67
68
  case keys.ARROW_UP:
68
- index = years.indexOf(currentYear) - 3;
69
+ index -= 3;
69
70
  break;
70
71
  case keys.ARROW_DOWN:
71
- index = years.indexOf(currentYear) + 3;
72
+ index += 3;
72
73
  break;
73
74
  case keys.ENTER:
74
- index = years.indexOf(currentYear);
75
75
  this.b2bDatePickerYearSelected.emit({
76
76
  value: this.yearsRange[index],
77
77
  });
78
- break;
78
+ return;
79
+ case keys.ESC:
80
+ this.b2bDatePickerEscape.emit();
81
+ return;
79
82
  default:
80
83
  return;
81
84
  }
@@ -87,18 +90,14 @@ export class B2bDatePickerYears {
87
90
  }
88
91
  this.focusCurrentYear(years[index]);
89
92
  }
90
- componentWillLoad() {
91
- for (let i = 1900; i <= 2100; i++) {
92
- this.yearsRange.push(i);
93
- }
94
- }
95
93
  componentDidLoad() {
96
94
  if (this.selectedYear > 0) {
97
95
  this.scrollToYear(this.selectedYear);
96
+ this.getCurrentYear().focus();
98
97
  }
99
98
  }
100
99
  render() {
101
- return (h(Host, { key: '22394d693b0a966c62b74de49c00d72b346a2e64' }, h("div", { key: 'a2c33dc133169c2cb558e9b92d78b56cf7fb108e', class: "b2b-date-picker-years" }, this.renderDatePickerYears())));
100
+ return (h(Host, { key: '2e9b64e857f36f8623cb13aa5ebd5346e21bdc6f' }, h("div", { key: 'b6a82d5fbfc2f18aab9c2c64efe3c8bbe63cfc19', class: "b2b-date-picker-years" }, this.renderDatePickerYears())));
102
101
  }
103
102
  static get is() { return "b2b-date-picker-years"; }
104
103
  static get encapsulation() { return "shadow"; }
@@ -147,7 +146,7 @@ export class B2bDatePickerYears {
147
146
  "composed": true,
148
147
  "docs": {
149
148
  "tags": [],
150
- "text": "Event emitted on selecting year*"
149
+ "text": "Event emitted on selecting year"
151
150
  },
152
151
  "complexType": {
153
152
  "original": "YearSelectedEventDetail",
@@ -160,6 +159,27 @@ export class B2bDatePickerYears {
160
159
  }
161
160
  }
162
161
  }
162
+ }, {
163
+ "method": "b2bDatePickerEscape",
164
+ "name": "b2b-date-picker-escape",
165
+ "bubbles": true,
166
+ "cancelable": true,
167
+ "composed": true,
168
+ "docs": {
169
+ "tags": [],
170
+ "text": "Event emitted on escape press"
171
+ },
172
+ "complexType": {
173
+ "original": "EscapePressed",
174
+ "resolved": "EscapePressed<any>",
175
+ "references": {
176
+ "EscapePressed": {
177
+ "location": "import",
178
+ "path": "../../utils/interfaces/form.interface",
179
+ "id": "src/utils/interfaces/form.interface.d.ts::EscapePressed"
180
+ }
181
+ }
182
+ }
163
183
  }];
164
184
  }
165
185
  static get elementRef() { return "host"; }
@@ -234,7 +234,6 @@
234
234
  }
235
235
  .b2b-date-picker {
236
236
  position: relative;
237
- z-index: 300;
238
237
  }
239
238
  .b2b-date-picker__backdrop {
240
239
  position: fixed;
@@ -242,7 +241,7 @@
242
241
  left: 0;
243
242
  width: 100%;
244
243
  height: 100%;
245
- z-index: 0;
244
+ z-index: 100;
246
245
  }
247
246
  .b2b-date-picker-input-focus-wrapper {
248
247
  width: 100%;
@@ -326,7 +325,7 @@ b2b-input-label {
326
325
  padding-bottom: var(--b2b-size-40);
327
326
  outline: none;
328
327
  background-color: var(--b2b-color-white-100);
329
- z-index: 1001;
328
+ z-index: 101;
330
329
  }
331
330
  .b2b-date-picker-body--hidden {
332
331
  display: none;
@@ -137,7 +137,7 @@ export class B2bDatePicker {
137
137
  if (this.disableDatesFrom && this.disableDatesFrom !== '') {
138
138
  this.normalizedDisableDatesFrom = this.normalizeDisableDatesUntilAndFrom(this.disableDatesFrom);
139
139
  }
140
- if (this.preSelectedDate) {
140
+ if (this.preSelectedDate && this.preSelectedDate !== '') {
141
141
  const [day, month, year] = this.preSelectedDate.split('.').map(Number);
142
142
  this.selectedDay = day;
143
143
  this.selectedMonth = month - 1;
@@ -153,7 +153,12 @@ export class B2bDatePicker {
153
153
  this.userInputDate = '';
154
154
  }
155
155
  }
156
- handleEscapePress() {
156
+ handleEscapePress(event) {
157
+ if (this.datePickerView !== "Days" /* DatePickerView.Days */) {
158
+ this.datePickerView = "Days" /* DatePickerView.Days */;
159
+ event.preventDefault();
160
+ return;
161
+ }
157
162
  this.showDatePicker = false;
158
163
  }
159
164
  handleDateSelection(event) {
@@ -384,10 +389,10 @@ export class B2bDatePicker {
384
389
  : 'open date picker', icon: "b2b_icon-event", clickable: true }))))), h("div", { class: {
385
390
  'b2b-date-picker-body': true,
386
391
  'b2b-date-picker-body--hidden': !this.showDatePicker,
387
- } }, this.datePickerView === "Days" /* DatePickerView.Days */ && (h("div", null, h("b2b-date-picker-header", { language: this.language, selectedMonth: this.selectedMonth, selectedYear: this.selectedYear }), h("b2b-date-picker-days-header", { language: this.language }), h("b2b-date-picker-days", { selectedMonth: this.selectedMonth, selectedYear: this.selectedYear, selectedDay: this.selectedDay, disableWeekends: this.disableWeekends, disableFutureDates: this.disableFutureDates, disablePastDates: this.disablePastDates, disableDates: this.datesToBeDisabled, disableDatesUntil: this.normalizedDisableDatesUntil, disableEvery: this.normalizedDisableEvery, disableDatesFrom: this.normalizedDisableDatesFrom }))), this.datePickerView === "Months" /* DatePickerView.Months */ && (h("b2b-date-picker-months", { language: this.language, selectedMonth: this.selectedMonth })), this.datePickerView === "Years" /* DatePickerView.Years */ && (h("b2b-date-picker-years", { selectedYear: this.selectedYear }))), this.showDatePicker && (h("div", { class: "b2b-date-picker__backdrop", onClick: this.handleBackdropDismiss })), !this.showDatePicker && (h("span", { class: {
392
+ } }, this.datePickerView === "Days" /* DatePickerView.Days */ && (h("div", null, h("b2b-date-picker-header", { language: this.language, selectedMonth: this.selectedMonth, selectedYear: this.selectedYear }), h("b2b-date-picker-days-header", { language: this.language }), h("b2b-date-picker-days", { selectedMonth: this.selectedMonth, selectedYear: this.selectedYear, selectedDay: this.selectedDay, disableWeekends: this.disableWeekends, disableFutureDates: this.disableFutureDates, disablePastDates: this.disablePastDates, disableDates: this.datesToBeDisabled, disableDatesUntil: this.normalizedDisableDatesUntil, disableEvery: this.normalizedDisableEvery, disableDatesFrom: this.normalizedDisableDatesFrom }))), this.datePickerView === "Months" /* DatePickerView.Months */ && (h("b2b-date-picker-months", { language: this.language, selectedMonth: this.selectedMonth })), this.datePickerView === "Years" /* DatePickerView.Years */ && (h("b2b-date-picker-years", { selectedYear: this.selectedYear }))), this.showDatePicker && (h("div", { class: "b2b-date-picker__backdrop", onClick: this.handleBackdropDismiss })), h("span", { class: {
388
393
  'b2b-date-picker-hint': true,
389
394
  'b2b-date-picker-hint--error': this.invalid,
390
- } }, this.invalid ? this.errorMessage : this.showHint && this.hint))));
395
+ } }, this.invalid ? this.errorMessage : this.showHint && this.hint)));
391
396
  }
392
397
  static get is() { return "b2b-date-picker"; }
393
398
  static get encapsulation() { return "shadow"; }
@@ -83,10 +83,16 @@ export const Default = {
83
83
  args: Object.assign(Object.assign({}, meta.args), { preSelectedDate: '01.01.2025' }),
84
84
  play: async ({ canvasElement }) => {
85
85
  setTimeout(async () => {
86
- var _a;
86
+ var _a, _b, _c;
87
87
  const datePicker = canvasElement.querySelector('b2b-date-picker');
88
- const b2bDatePickerInputWrapper = (_a = datePicker.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.b2b-date-picker-input-focus-wrapper');
89
- await userEvent.click(b2bDatePickerInputWrapper);
88
+ const wrapper = (_a = datePicker.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.b2b-date-picker-input-focus-wrapper');
89
+ const days = (_b = datePicker.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('b2b-date-picker-days');
90
+ const day = (_c = days.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.b2b-date-picker-day--selected');
91
+ await userEvent.click(wrapper);
92
+ setTimeout(async () => {
93
+ day.focus();
94
+ await userEvent.keyboard('{arrowright}{arrowright}');
95
+ }, 500);
90
96
  }, 500);
91
97
  },
92
98
  };
@@ -323,6 +323,10 @@
323
323
  background-color: var(--b2b-color-white-100);
324
324
  pointer-events: none;
325
325
  }
326
+ :host(.b2b-dropdown) .b2b-dropdown__option--selected {
327
+ background-color: var(--b2b-color-black-100);
328
+ color: var(--b2b-color-white-100);
329
+ }
326
330
  :host(.b2b-dropdown) b2b-input-label {
327
331
  display: block;
328
332
  margin-bottom: var(--b2b-size-5);
@@ -73,7 +73,7 @@ describe('B2B-Dropdown', () => {
73
73
  });
74
74
  const count = await page.evaluate(async () => {
75
75
  const dropdown = document.querySelector('b2b-dropdown');
76
- if (!dropdown)
76
+ if (dropdown == null)
77
77
  return -1;
78
78
  await new Promise(resolve => setTimeout(resolve, 2000));
79
79
  const options = dropdown.querySelectorAll('option');
@@ -7,7 +7,7 @@ export class DropdownComponent {
7
7
  this.isOpen = false;
8
8
  };
9
9
  this.toggleDropdown = () => {
10
- if (!this.disabled)
10
+ if (!this.disabled && !this.groupDisabled)
11
11
  this.isOpen = !this.isOpen;
12
12
  };
13
13
  this.onFocus = (ev) => {
@@ -71,6 +71,7 @@ export class DropdownComponent {
71
71
  this.invalid = false;
72
72
  this.hint = undefined;
73
73
  this.error = undefined;
74
+ this.groupDisabled = false;
74
75
  this.isOpen = false;
75
76
  this.focused = false;
76
77
  this.selectedValue = '';
@@ -141,14 +142,14 @@ export class DropdownComponent {
141
142
  });
142
143
  }
143
144
  render() {
144
- const hasError = this.invalid && !this.disabled;
145
- const showHint = this.hint && (!this.invalid || this.disabled);
145
+ const hasError = this.invalid && !this.disabled && !this.groupDisabled;
146
+ const showHint = this.hint && !hasError;
146
147
  const showError = this.error && hasError;
147
- return (h(Host, { key: '12c5872badf4168d07a0c3e0281c4014f50c05f6', class: {
148
+ return (h(Host, { key: 'a58a7ec156677962cc7a3d7ca421d4c475d8cd77', class: {
148
149
  'b2b-dropdown': true,
149
150
  'b2b-dropdown--error': hasError,
150
- 'b2b-dropdown--disabled': this.disabled,
151
- } }, this.label && (h("b2b-input-label", { id: this.name, required: this.required }, this.label)), h("div", { key: '9c1f7ee41956ee0ea6d9913bc6f0831a3800b749', class: "b2b-dropdown__wrapper", onFocus: this.onFocus, onBlur: this.onBlur }, h("div", { key: '580dcbbcdbc6e8d7c60ff2fbfcd89e94e419862c', class: {
151
+ 'b2b-dropdown--disabled': this.disabled || this.groupDisabled,
152
+ } }, this.label && (h("b2b-input-label", { id: this.name, required: this.required }, this.label)), h("div", { key: '27d151cfb88bbfb1e112e276a8f6cc668f178a36', class: "b2b-dropdown__wrapper", onFocus: this.onFocus, onBlur: this.onBlur }, h("div", { key: 'cdce04cf08cb0256dab58d22c4a41430aa054fd1', class: {
152
153
  'b2b-dropdown__select': true,
153
154
  'b2b-dropdown__select--open': this.isOpen,
154
155
  'b2b-dropdown__select--focused': this.focused,
@@ -329,6 +330,27 @@ export class DropdownComponent {
329
330
  },
330
331
  "attribute": "error",
331
332
  "reflect": false
333
+ },
334
+ "groupDisabled": {
335
+ "type": "boolean",
336
+ "mutable": false,
337
+ "complexType": {
338
+ "original": "boolean",
339
+ "resolved": "boolean",
340
+ "references": {}
341
+ },
342
+ "required": false,
343
+ "optional": false,
344
+ "docs": {
345
+ "tags": [{
346
+ "name": "internal",
347
+ "text": "Whether the parent input group is disabled. Per default, it is false."
348
+ }],
349
+ "text": ""
350
+ },
351
+ "attribute": "group-disabled",
352
+ "reflect": false,
353
+ "defaultValue": "false"
332
354
  }
333
355
  };
334
356
  }
@@ -1,9 +1,9 @@
1
+ import { userEvent } from "@storybook/test";
1
2
  import { html } from "lit-html";
2
3
  import { getArgTypes } from "../../docs/config/utils";
3
- const Template = ({ label, required, name, disabled, invalid, hint, error, }) => {
4
- const defaultLabel = label ? label : 'Favorite Fruit';
4
+ const Template = ({ label = 'Favorite Fruit', required, name, disabled, invalid, hint, error, selected = false, }) => {
5
5
  return html `<b2b-dropdown
6
- label="${defaultLabel}"
6
+ label="${label}"
7
7
  name="${name}"
8
8
  error="${error}"
9
9
  hint="${hint}"
@@ -13,7 +13,9 @@ const Template = ({ label, required, name, disabled, invalid, hint, error, }) =>
13
13
  <option value="strawberry">Strawberry</option>
14
14
  <option value="orange">Orange</option>
15
15
  <option value="banana">Banana</option>
16
- <option value="pineapple">Pineapple</option>
16
+ ${selected
17
+ ? html `<option value="pineapple" selected="true">Pineapple</option>`
18
+ : html `<option value="pineapple">Pineapple</option>`}
17
19
  <option value="grapes">Grapes</option>
18
20
  <option value="watermelon">Watermelon</option>
19
21
  <option value="papaya">Papaya</option>
@@ -44,6 +46,17 @@ story030Error.storyName = 'Error';
44
46
  export const story040Required = Template.bind({});
45
47
  story040Required.args = Object.assign(Object.assign({}, defaultArgs), { required: true });
46
48
  story040Required.storyName = 'Required';
49
+ export const story050Selected = Template.bind({});
50
+ story050Selected.args = Object.assign(Object.assign({}, defaultArgs), { selected: true });
51
+ story050Selected.storyName = 'Selected';
52
+ story050Selected.play = async ({ canvasElement }) => {
53
+ setTimeout(async () => {
54
+ var _a;
55
+ const dropdown = canvasElement.querySelector('b2b-dropdown');
56
+ const wrapper = (_a = dropdown.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.b2b-dropdown__select');
57
+ await userEvent.click(wrapper);
58
+ }, 500);
59
+ };
47
60
  const dropdownArgs = getArgTypes('b2b-dropdown');
48
61
  export default {
49
62
  title: 'Components/Form/Dropdown',
@@ -62,8 +62,13 @@ describe('B2B-FlyoutMenu', () => {
62
62
  icon.click();
63
63
  await page.waitForChanges();
64
64
  const flyoutMenuOption = await page.find('b2b-flyout-menu-option[option="option3"]');
65
- await flyoutMenuOption.click();
66
- await page.waitForChanges();
65
+ try {
66
+ await flyoutMenuOption.click();
67
+ await page.waitForChanges();
68
+ }
69
+ catch (_a) {
70
+ // expected - not clickable
71
+ }
67
72
  expect(flyoutMenuOption).not.toBeNull();
68
73
  expect(optionSelectedEventSpy).not.toHaveReceivedEvent();
69
74
  });