mithril-materialized 3.2.0 → 3.2.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.
package/dist/index.esm.js CHANGED
@@ -3998,7 +3998,7 @@ const Dropdown = () => {
3998
3998
  m.redraw();
3999
3999
  }
4000
4000
  };
4001
- const handleKeyDown = (e, items, onchange) => {
4001
+ const handleKeyDown = (e, items) => {
4002
4002
  const availableItems = items.filter((item) => !item.divider && !item.disabled);
4003
4003
  switch (e.key) {
4004
4004
  case 'ArrowDown':
@@ -4008,15 +4008,15 @@ const Dropdown = () => {
4008
4008
  state.focusedIndex = availableItems.length > 0 ? 0 : -1;
4009
4009
  }
4010
4010
  else {
4011
- state.focusedIndex = Math.min(state.focusedIndex + 1, availableItems.length - 1);
4011
+ state.focusedIndex = (state.focusedIndex + 1) % availableItems.length;
4012
4012
  }
4013
- break;
4013
+ return undefined;
4014
4014
  case 'ArrowUp':
4015
4015
  e.preventDefault();
4016
4016
  if (state.isOpen) {
4017
- state.focusedIndex = Math.max(state.focusedIndex - 1, 0);
4017
+ state.focusedIndex = state.focusedIndex <= 0 ? availableItems.length - 1 : state.focusedIndex - 1;
4018
4018
  }
4019
- break;
4019
+ return undefined;
4020
4020
  case 'Enter':
4021
4021
  case ' ':
4022
4022
  e.preventDefault();
@@ -4025,18 +4025,20 @@ const Dropdown = () => {
4025
4025
  const value = (selectedItem.id || selectedItem.label);
4026
4026
  state.isOpen = false;
4027
4027
  state.focusedIndex = -1;
4028
- return value; // Return value to be handled in view
4028
+ return value;
4029
4029
  }
4030
4030
  else if (!state.isOpen) {
4031
4031
  state.isOpen = true;
4032
4032
  state.focusedIndex = availableItems.length > 0 ? 0 : -1;
4033
4033
  }
4034
- break;
4034
+ return undefined;
4035
4035
  case 'Escape':
4036
4036
  e.preventDefault();
4037
4037
  state.isOpen = false;
4038
4038
  state.focusedIndex = -1;
4039
- break;
4039
+ return undefined;
4040
+ default:
4041
+ return undefined;
4040
4042
  }
4041
4043
  };
4042
4044
  return {
@@ -4069,7 +4071,9 @@ const Dropdown = () => {
4069
4071
  }
4070
4072
  };
4071
4073
  const selectedItem = currentCheckedId
4072
- ? items.filter((i) => (i.id ? i.id === currentCheckedId : i.label === currentCheckedId)).shift()
4074
+ ? items
4075
+ .filter((i) => (i.id ? i.id === currentCheckedId : i.label === currentCheckedId))
4076
+ .shift()
4073
4077
  : undefined;
4074
4078
  const title = selectedItem ? selectedItem.label : label || 'Select';
4075
4079
  const availableItems = items.filter((item) => !item.divider && !item.disabled);
@@ -4077,12 +4081,14 @@ const Dropdown = () => {
4077
4081
  iconName ? m('i.material-icons.prefix', iconName) : undefined,
4078
4082
  m(HelperText, { helperText }),
4079
4083
  m('.select-wrapper', {
4080
- onkeydown: disabled ? undefined : (e) => {
4081
- const selectedValue = handleKeyDown(e, items);
4082
- if (selectedValue) {
4083
- handleSelection(selectedValue);
4084
- }
4085
- },
4084
+ onkeydown: disabled
4085
+ ? undefined
4086
+ : (e) => {
4087
+ const selectedValue = handleKeyDown(e, items);
4088
+ if (selectedValue) {
4089
+ handleSelection(selectedValue);
4090
+ }
4091
+ },
4086
4092
  tabindex: disabled ? -1 : 0,
4087
4093
  'aria-expanded': state.isOpen ? 'true' : 'false',
4088
4094
  'aria-haspopup': 'listbox',
package/dist/index.js CHANGED
@@ -4000,7 +4000,7 @@ const Dropdown = () => {
4000
4000
  m.redraw();
4001
4001
  }
4002
4002
  };
4003
- const handleKeyDown = (e, items, onchange) => {
4003
+ const handleKeyDown = (e, items) => {
4004
4004
  const availableItems = items.filter((item) => !item.divider && !item.disabled);
4005
4005
  switch (e.key) {
4006
4006
  case 'ArrowDown':
@@ -4010,15 +4010,15 @@ const Dropdown = () => {
4010
4010
  state.focusedIndex = availableItems.length > 0 ? 0 : -1;
4011
4011
  }
4012
4012
  else {
4013
- state.focusedIndex = Math.min(state.focusedIndex + 1, availableItems.length - 1);
4013
+ state.focusedIndex = (state.focusedIndex + 1) % availableItems.length;
4014
4014
  }
4015
- break;
4015
+ return undefined;
4016
4016
  case 'ArrowUp':
4017
4017
  e.preventDefault();
4018
4018
  if (state.isOpen) {
4019
- state.focusedIndex = Math.max(state.focusedIndex - 1, 0);
4019
+ state.focusedIndex = state.focusedIndex <= 0 ? availableItems.length - 1 : state.focusedIndex - 1;
4020
4020
  }
4021
- break;
4021
+ return undefined;
4022
4022
  case 'Enter':
4023
4023
  case ' ':
4024
4024
  e.preventDefault();
@@ -4027,18 +4027,20 @@ const Dropdown = () => {
4027
4027
  const value = (selectedItem.id || selectedItem.label);
4028
4028
  state.isOpen = false;
4029
4029
  state.focusedIndex = -1;
4030
- return value; // Return value to be handled in view
4030
+ return value;
4031
4031
  }
4032
4032
  else if (!state.isOpen) {
4033
4033
  state.isOpen = true;
4034
4034
  state.focusedIndex = availableItems.length > 0 ? 0 : -1;
4035
4035
  }
4036
- break;
4036
+ return undefined;
4037
4037
  case 'Escape':
4038
4038
  e.preventDefault();
4039
4039
  state.isOpen = false;
4040
4040
  state.focusedIndex = -1;
4041
- break;
4041
+ return undefined;
4042
+ default:
4043
+ return undefined;
4042
4044
  }
4043
4045
  };
4044
4046
  return {
@@ -4071,7 +4073,9 @@ const Dropdown = () => {
4071
4073
  }
4072
4074
  };
4073
4075
  const selectedItem = currentCheckedId
4074
- ? items.filter((i) => (i.id ? i.id === currentCheckedId : i.label === currentCheckedId)).shift()
4076
+ ? items
4077
+ .filter((i) => (i.id ? i.id === currentCheckedId : i.label === currentCheckedId))
4078
+ .shift()
4075
4079
  : undefined;
4076
4080
  const title = selectedItem ? selectedItem.label : label || 'Select';
4077
4081
  const availableItems = items.filter((item) => !item.divider && !item.disabled);
@@ -4079,12 +4083,14 @@ const Dropdown = () => {
4079
4083
  iconName ? m('i.material-icons.prefix', iconName) : undefined,
4080
4084
  m(HelperText, { helperText }),
4081
4085
  m('.select-wrapper', {
4082
- onkeydown: disabled ? undefined : (e) => {
4083
- const selectedValue = handleKeyDown(e, items);
4084
- if (selectedValue) {
4085
- handleSelection(selectedValue);
4086
- }
4087
- },
4086
+ onkeydown: disabled
4087
+ ? undefined
4088
+ : (e) => {
4089
+ const selectedValue = handleKeyDown(e, items);
4090
+ if (selectedValue) {
4091
+ handleSelection(selectedValue);
4092
+ }
4093
+ },
4088
4094
  tabindex: disabled ? -1 : 0,
4089
4095
  'aria-expanded': state.isOpen ? 'true' : 'false',
4090
4096
  'aria-haspopup': 'listbox',
package/dist/index.umd.js CHANGED
@@ -4002,7 +4002,7 @@
4002
4002
  m.redraw();
4003
4003
  }
4004
4004
  };
4005
- const handleKeyDown = (e, items, onchange) => {
4005
+ const handleKeyDown = (e, items) => {
4006
4006
  const availableItems = items.filter((item) => !item.divider && !item.disabled);
4007
4007
  switch (e.key) {
4008
4008
  case 'ArrowDown':
@@ -4012,15 +4012,15 @@
4012
4012
  state.focusedIndex = availableItems.length > 0 ? 0 : -1;
4013
4013
  }
4014
4014
  else {
4015
- state.focusedIndex = Math.min(state.focusedIndex + 1, availableItems.length - 1);
4015
+ state.focusedIndex = (state.focusedIndex + 1) % availableItems.length;
4016
4016
  }
4017
- break;
4017
+ return undefined;
4018
4018
  case 'ArrowUp':
4019
4019
  e.preventDefault();
4020
4020
  if (state.isOpen) {
4021
- state.focusedIndex = Math.max(state.focusedIndex - 1, 0);
4021
+ state.focusedIndex = state.focusedIndex <= 0 ? availableItems.length - 1 : state.focusedIndex - 1;
4022
4022
  }
4023
- break;
4023
+ return undefined;
4024
4024
  case 'Enter':
4025
4025
  case ' ':
4026
4026
  e.preventDefault();
@@ -4029,18 +4029,20 @@
4029
4029
  const value = (selectedItem.id || selectedItem.label);
4030
4030
  state.isOpen = false;
4031
4031
  state.focusedIndex = -1;
4032
- return value; // Return value to be handled in view
4032
+ return value;
4033
4033
  }
4034
4034
  else if (!state.isOpen) {
4035
4035
  state.isOpen = true;
4036
4036
  state.focusedIndex = availableItems.length > 0 ? 0 : -1;
4037
4037
  }
4038
- break;
4038
+ return undefined;
4039
4039
  case 'Escape':
4040
4040
  e.preventDefault();
4041
4041
  state.isOpen = false;
4042
4042
  state.focusedIndex = -1;
4043
- break;
4043
+ return undefined;
4044
+ default:
4045
+ return undefined;
4044
4046
  }
4045
4047
  };
4046
4048
  return {
@@ -4073,7 +4075,9 @@
4073
4075
  }
4074
4076
  };
4075
4077
  const selectedItem = currentCheckedId
4076
- ? items.filter((i) => (i.id ? i.id === currentCheckedId : i.label === currentCheckedId)).shift()
4078
+ ? items
4079
+ .filter((i) => (i.id ? i.id === currentCheckedId : i.label === currentCheckedId))
4080
+ .shift()
4077
4081
  : undefined;
4078
4082
  const title = selectedItem ? selectedItem.label : label || 'Select';
4079
4083
  const availableItems = items.filter((item) => !item.divider && !item.disabled);
@@ -4081,12 +4085,14 @@
4081
4085
  iconName ? m('i.material-icons.prefix', iconName) : undefined,
4082
4086
  m(HelperText, { helperText }),
4083
4087
  m('.select-wrapper', {
4084
- onkeydown: disabled ? undefined : (e) => {
4085
- const selectedValue = handleKeyDown(e, items);
4086
- if (selectedValue) {
4087
- handleSelection(selectedValue);
4088
- }
4089
- },
4088
+ onkeydown: disabled
4089
+ ? undefined
4090
+ : (e) => {
4091
+ const selectedValue = handleKeyDown(e, items);
4092
+ if (selectedValue) {
4093
+ handleSelection(selectedValue);
4094
+ }
4095
+ },
4090
4096
  tabindex: disabled ? -1 : 0,
4091
4097
  'aria-expanded': state.isOpen ? 'true' : 'false',
4092
4098
  'aria-haspopup': 'listbox',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mithril-materialized",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "A materialize library for mithril.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",