@shoper/phoenix_design_system 1.15.11 → 1.15.13-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 (63) hide show
  1. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +9 -2
  2. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +23 -5
  4. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/form/radio/radio_control.js +5 -0
  6. package/build/cjs/packages/phoenix/src/components/form/radio/radio_control.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/form/select/components/search/select_search.js +31 -0
  8. package/build/cjs/packages/phoenix/src/components/form/select/components/search/select_search.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/form/select/components/select_options.js +1 -2
  10. package/build/cjs/packages/phoenix/src/components/form/select/components/select_options.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller.js +98 -0
  12. package/build/cjs/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller.js.map +1 -0
  13. package/build/cjs/packages/phoenix/src/components/form/select/select.js +78 -19
  14. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -1
  15. package/build/cjs/packages/phoenix/src/components/modal/modal.js +3 -1
  16. package/build/cjs/packages/phoenix/src/components/modal/modal.js.map +1 -1
  17. package/build/cjs/packages/phoenix/src/components/slider/slider.js +39 -0
  18. package/build/cjs/packages/phoenix/src/components/slider/slider.js.map +1 -1
  19. package/build/cjs/packages/phoenix/src/components/slider/slider_constants.js +11 -0
  20. package/build/cjs/packages/phoenix/src/components/slider/slider_constants.js.map +1 -0
  21. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js +76 -30
  22. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js.map +1 -1
  23. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +1 -0
  24. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +9 -2
  25. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  26. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.d.ts +3 -0
  27. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +23 -5
  28. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  29. package/build/esm/packages/phoenix/src/components/form/radio/radio_control.d.ts +1 -0
  30. package/build/esm/packages/phoenix/src/components/form/radio/radio_control.js +5 -0
  31. package/build/esm/packages/phoenix/src/components/form/radio/radio_control.js.map +1 -1
  32. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search.d.ts +4 -0
  33. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search.js +31 -0
  34. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search.js.map +1 -1
  35. package/build/esm/packages/phoenix/src/components/form/select/components/select_options.js +1 -2
  36. package/build/esm/packages/phoenix/src/components/form/select/components/select_options.js.map +1 -1
  37. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller.d.ts +15 -0
  38. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller.js +94 -0
  39. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller.js.map +1 -0
  40. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller_types.d.ts +8 -0
  41. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller_types.js +3 -0
  42. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_toggler_keyboard_controller/select_toggler_keyboard_controller_types.js.map +1 -0
  43. package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +14 -5
  44. package/build/esm/packages/phoenix/src/components/form/select/select.js +78 -19
  45. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -1
  46. package/build/esm/packages/phoenix/src/components/modal/modal.js +3 -1
  47. package/build/esm/packages/phoenix/src/components/modal/modal.js.map +1 -1
  48. package/build/esm/packages/phoenix/src/components/slider/slider.d.ts +5 -0
  49. package/build/esm/packages/phoenix/src/components/slider/slider.js +40 -1
  50. package/build/esm/packages/phoenix/src/components/slider/slider.js.map +1 -1
  51. package/build/esm/packages/phoenix/src/components/slider/slider_constants.d.ts +4 -0
  52. package/build/esm/packages/phoenix/src/components/slider/slider_constants.js +7 -0
  53. package/build/esm/packages/phoenix/src/components/slider/slider_constants.js.map +1 -0
  54. package/build/esm/packages/phoenix/src/components/slider/slider_types.d.ts +3 -0
  55. package/build/esm/packages/phoenix/src/components/slider/slider_types.js +2 -0
  56. package/build/esm/packages/phoenix/src/components/slider/slider_types.js.map +1 -1
  57. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.d.ts +6 -2
  58. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.js +1 -0
  59. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.js.map +1 -1
  60. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.d.ts +8 -3
  61. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js +76 -30
  62. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js.map +1 -1
  63. package/package.json +2 -2
@@ -1,37 +1,64 @@
1
1
  import { __classPrivateFieldGet, __classPrivateFieldSet } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import 'lit';
3
3
  import { UiDomUtils } from '@dreamcommerce/utilities';
4
- import { KeystrokesController } from '../keystrokes_controller/keystrokes_controller.js';
5
4
  import { LIST_BOX_KEYBOARD_NAVIGATION_DIRECTIONS } from './list_box_controller_constants.js';
6
5
 
7
- var _ListBoxKeyboardController_host, _ListBoxKeyboardController__$list, _ListBoxKeyboardController_currentOptionIndex, _ListBoxKeyboardController__$options, _ListBoxKeyboardController_listItemSelector, _ListBoxKeyboardController_keys;
6
+ var _ListBoxKeyboardController_host, _ListBoxKeyboardController__$list, _ListBoxKeyboardController__$options, _ListBoxKeyboardController_listItemSelector, _ListBoxKeyboardController_keys;
8
7
  class ListBoxKeyboardController {
9
8
  constructor({ host, $list, listItemSelector = '[role="option"]', orientation = LIST_BOX_KEYBOARD_NAVIGATION_DIRECTIONS.vertical }) {
10
9
  _ListBoxKeyboardController_host.set(this, void 0);
11
10
  _ListBoxKeyboardController__$list.set(this, void 0);
12
- _ListBoxKeyboardController_currentOptionIndex.set(this, void 0);
13
11
  _ListBoxKeyboardController__$options.set(this, void 0);
14
12
  _ListBoxKeyboardController_listItemSelector.set(this, void 0);
15
13
  _ListBoxKeyboardController_keys.set(this, void 0);
14
+ this._handleKeyboardNavigation = (ev) => {
15
+ if (__classPrivateFieldGet(this, _ListBoxKeyboardController_keys, "f").find((key) => key === ev.key)) {
16
+ this._handleArrowNavigation(ev);
17
+ return;
18
+ }
19
+ this._handleWriteableCharacter(ev);
20
+ };
16
21
  this._handleArrowNavigation = (event) => {
17
22
  event.preventDefault();
18
23
  const { key } = event;
19
- const prevOptionIndex = __classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f");
24
+ const $availableOptions = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").filter(($option) => {
25
+ return !$option.getAttribute('inactive') && !$option.getAttribute('disabled') && !$option.hidden;
26
+ });
27
+ const prevOptionIndex = this._findCurrentIndex();
20
28
  let newOptionIndex = key === 'ArrowDown' || key === 'ArrowRight' ? this._getNextOptionIndex() : this._getPrevOptionIndex();
21
29
  if (newOptionIndex === undefined) {
22
- const selectedOptionIndex = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").findIndex(($option) => $option.selected);
23
- newOptionIndex = selectedOptionIndex !== -1 ? selectedOptionIndex : 0;
30
+ newOptionIndex = this._findCurrentIndex();
24
31
  }
25
- if (newOptionIndex === __classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f"))
32
+ if (newOptionIndex === this.currentOptionIndex)
26
33
  return;
27
34
  if (prevOptionIndex !== undefined) {
28
35
  const $prevOption = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f")[prevOptionIndex];
29
- UiDomUtils.makeUnnavigable($prevOption);
36
+ $prevOption && UiDomUtils.makeUnnavigable($prevOption);
30
37
  }
31
- __classPrivateFieldSet(this, _ListBoxKeyboardController_currentOptionIndex, newOptionIndex, "f");
32
- const $focusedOption = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f")[newOptionIndex];
33
- UiDomUtils.makeNavigable($focusedOption);
34
- $focusedOption.focus();
38
+ this.currentOptionIndex = newOptionIndex;
39
+ const $focusedOption = $availableOptions[newOptionIndex];
40
+ if ($focusedOption) {
41
+ UiDomUtils.makeNavigable($focusedOption);
42
+ $focusedOption.focus();
43
+ }
44
+ };
45
+ this._findCurrentIndex = () => {
46
+ const $availableOptions = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").filter(($option) => {
47
+ return !$option.getAttribute('inactive') && !$option.getAttribute('disabled') && !$option.hidden;
48
+ });
49
+ const selectedOptionIndex = $availableOptions.findIndex(($option) => $option.selected);
50
+ return selectedOptionIndex !== -1 ? selectedOptionIndex : 0;
51
+ };
52
+ this._handleWriteableCharacter = (ev) => {
53
+ var _a;
54
+ const $searchInput = (_a = __classPrivateFieldGet(this, _ListBoxKeyboardController_host, "f").$search.value) === null || _a === void 0 ? void 0 : _a.querySelector('[role="search"]');
55
+ if (!$searchInput)
56
+ return;
57
+ $searchInput === null || $searchInput === void 0 ? void 0 : $searchInput.focus();
58
+ };
59
+ this.calculateSelectedOptionIndex = () => {
60
+ const selectedOptionIndex = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").findIndex(($option) => $option.selected);
61
+ this.currentOptionIndex = selectedOptionIndex !== -1 ? selectedOptionIndex : 0;
35
62
  };
36
63
  __classPrivateFieldSet(this, _ListBoxKeyboardController_host, host, "f");
37
64
  __classPrivateFieldSet(this, _ListBoxKeyboardController__$list, $list, "f");
@@ -41,40 +68,59 @@ class ListBoxKeyboardController {
41
68
  __classPrivateFieldGet(this, _ListBoxKeyboardController_host, "f").addController(this);
42
69
  }
43
70
  hostConnected() {
44
- new KeystrokesController({
45
- host: __classPrivateFieldGet(this, _ListBoxKeyboardController_host, "f"),
46
- keys: __classPrivateFieldGet(this, _ListBoxKeyboardController_keys, "f"),
47
- callback: this._handleArrowNavigation,
48
- target: __classPrivateFieldGet(this, _ListBoxKeyboardController__$list, "f")
49
- });
71
+ __classPrivateFieldGet(this, _ListBoxKeyboardController__$list, "f").addEventListener('keydown', this._handleKeyboardNavigation);
50
72
  UiDomUtils.makeNavigable(__classPrivateFieldGet(this, _ListBoxKeyboardController__$list, "f"));
51
73
  __classPrivateFieldGet(this, _ListBoxKeyboardController__$list, "f").addEventListener('focusin', (event) => {
52
74
  if (event.target !== __classPrivateFieldGet(this, _ListBoxKeyboardController__$list, "f"))
53
75
  return;
54
- if (__classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") === undefined)
76
+ if (this.currentOptionIndex === undefined)
55
77
  return;
56
- const $prevOption = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f")[__classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f")];
78
+ const $prevOption = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f")[this.currentOptionIndex];
57
79
  UiDomUtils.makeUnnavigable($prevOption);
58
- __classPrivateFieldSet(this, _ListBoxKeyboardController_currentOptionIndex, undefined, "f");
80
+ this.currentOptionIndex = undefined;
59
81
  });
60
82
  __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").forEach(($option) => UiDomUtils.makeUnnavigable($option));
61
83
  }
62
84
  _getPrevOptionIndex() {
63
- if (__classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") === undefined)
85
+ if (this.currentOptionIndex === undefined)
64
86
  return undefined;
65
- if (__classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") <= 0)
66
- return __classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f");
67
- return __classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") - 1;
87
+ if (this.currentOptionIndex <= 0)
88
+ return this.currentOptionIndex;
89
+ if (this.currentOptionIndex <= 0)
90
+ return this.currentOptionIndex;
91
+ const $availableOptions = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").filter(($option) => {
92
+ return !$option.getAttribute('inactive') && !$option.getAttribute('disabled') && !$option.hidden;
93
+ });
94
+ if (!!$availableOptions[this.currentOptionIndex - 1])
95
+ return this.currentOptionIndex - 1;
96
+ // bo ktoś wpisał coś w searcha i index obecnie wybranej opcji jest inny
97
+ const newIndexOfCurrentlySelectedOption = $availableOptions.findIndex(($option) => $option.selected);
98
+ if (newIndexOfCurrentlySelectedOption)
99
+ return newIndexOfCurrentlySelectedOption - 1;
100
+ return this.currentOptionIndex - 1;
68
101
  }
69
102
  _getNextOptionIndex() {
70
- if (__classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") === undefined)
103
+ if (this.currentOptionIndex === undefined)
71
104
  return undefined;
72
- if (__classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") >= __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").length - 1)
73
- return __classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f");
74
- return __classPrivateFieldGet(this, _ListBoxKeyboardController_currentOptionIndex, "f") + 1;
105
+ const $availableOptions = __classPrivateFieldGet(this, _ListBoxKeyboardController__$options, "f").filter(($option) => {
106
+ return !$option.getAttribute('inactive') && !$option.getAttribute('disabled') && !$option.hidden;
107
+ });
108
+ if (this.currentOptionIndex === $availableOptions.length - 1)
109
+ return this.currentOptionIndex;
110
+ if (this.currentOptionIndex > $availableOptions.length - 1) {
111
+ // bo ktoś wpisał coś w searcha i index obecnie wybranej opcji jest inny
112
+ const newIndexOfCurrentlySelectedOption = $availableOptions.findIndex(($option) => $option.selected);
113
+ if (newIndexOfCurrentlySelectedOption)
114
+ return newIndexOfCurrentlySelectedOption + 1;
115
+ return 0;
116
+ }
117
+ return this.currentOptionIndex + 1;
118
+ }
119
+ hostDisconnected() {
120
+ __classPrivateFieldGet(this, _ListBoxKeyboardController__$list, "f").removeEventListener('keydown', this._handleKeyboardNavigation);
75
121
  }
76
122
  }
77
- _ListBoxKeyboardController_host = new WeakMap(), _ListBoxKeyboardController__$list = new WeakMap(), _ListBoxKeyboardController_currentOptionIndex = new WeakMap(), _ListBoxKeyboardController__$options = new WeakMap(), _ListBoxKeyboardController_listItemSelector = new WeakMap(), _ListBoxKeyboardController_keys = new WeakMap();
123
+ _ListBoxKeyboardController_host = new WeakMap(), _ListBoxKeyboardController__$list = new WeakMap(), _ListBoxKeyboardController__$options = new WeakMap(), _ListBoxKeyboardController_listItemSelector = new WeakMap(), _ListBoxKeyboardController_keys = new WeakMap();
78
124
 
79
125
  export { ListBoxKeyboardController };
80
126
  //# sourceMappingURL=list_box_keyboard_controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,+DAA+D,4CAAgD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@shoper/phoenix_design_system",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "1.15.11",
5
+ "version": "1.15.13-0",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  "@splidejs/splide": "^4.0.7"
31
31
  },
32
32
  "devDependencies": {
33
- "@dreamcommerce/utilities": "^1.20.0",
33
+ "@dreamcommerce/utilities": "^1.20.1-0",
34
34
  "@shoper/jest_config": "^0.0.0",
35
35
  "@shoper/tsconfig": "^0.0.0",
36
36
  "@splidejs/splide": "4.0.7",