yuyeon 0.1.0-rc.2 → 0.1.0-rc.21

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 (251) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +4722 -4047
  3. package/dist/yuyeon.umd.cjs +17 -13
  4. package/lib/components/badge/YBadge.scss +0 -1
  5. package/lib/components/card/YCard.mjs +16 -9
  6. package/lib/components/card/YCard.mjs.map +1 -1
  7. package/lib/components/date-picker/YDatePicker.mjs +1 -0
  8. package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
  9. package/lib/components/dialog/YDialog.mjs +4 -1
  10. package/lib/components/dialog/YDialog.mjs.map +1 -1
  11. package/lib/components/dropdown/YDropdown.mjs +10 -4
  12. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  13. package/lib/components/field-input/YFieldInput.mjs +4 -0
  14. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  15. package/lib/components/field-input/YFieldInput.scss +1 -1
  16. package/lib/components/hover/YHover.mjs +11 -4
  17. package/lib/components/hover/YHover.mjs.map +1 -1
  18. package/lib/components/hover/index.mjs +2 -0
  19. package/lib/components/hover/index.mjs.map +1 -0
  20. package/lib/components/index.mjs +4 -0
  21. package/lib/components/index.mjs.map +1 -1
  22. package/lib/components/input/YInput.mjs +6 -6
  23. package/lib/components/input/YInput.mjs.map +1 -1
  24. package/lib/components/input/YInput.scss +2 -3
  25. package/lib/components/ip-field/YIpField.scss +74 -0
  26. package/lib/components/ip-field/YIpv4Field.mjs +297 -0
  27. package/lib/components/ip-field/YIpv4Field.mjs.map +1 -0
  28. package/lib/components/ip-field/index.mjs +2 -0
  29. package/lib/components/ip-field/index.mjs.map +1 -0
  30. package/lib/components/layer/YLayer.mjs +35 -13
  31. package/lib/components/layer/YLayer.mjs.map +1 -1
  32. package/lib/components/layer/base.mjs +6 -2
  33. package/lib/components/layer/base.mjs.map +1 -1
  34. package/lib/components/layer/content.mjs +22 -0
  35. package/lib/components/layer/content.mjs.map +1 -0
  36. package/lib/components/layer/scroll-strategies.mjs +1 -1
  37. package/lib/components/layer/scroll-strategies.mjs.map +1 -1
  38. package/lib/components/list/YListItem.mjs +1 -0
  39. package/lib/components/list/YListItem.mjs.map +1 -1
  40. package/lib/components/menu/YMenu.mjs +4 -10
  41. package/lib/components/menu/YMenu.mjs.map +1 -1
  42. package/lib/components/panel/YDividePanel.scss +1 -1
  43. package/lib/components/select/YSelect.mjs +55 -10
  44. package/lib/components/select/YSelect.mjs.map +1 -1
  45. package/lib/components/switch/YSwitch.mjs +2 -1
  46. package/lib/components/switch/YSwitch.mjs.map +1 -1
  47. package/lib/components/tab/YTab.scss +3 -3
  48. package/lib/components/tab/types.mjs.map +1 -1
  49. package/lib/components/table/YDataTableBody.mjs +1 -1
  50. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  51. package/lib/components/table/YDataTableRow.mjs +30 -3
  52. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  53. package/lib/components/table/composibles/header.mjs.map +1 -1
  54. package/lib/components/table/composibles/items.mjs +3 -1
  55. package/lib/components/table/composibles/items.mjs.map +1 -1
  56. package/lib/components/table/composibles/selection.mjs.map +1 -1
  57. package/lib/components/table/types/common.mjs.map +1 -1
  58. package/lib/components/table/types/header.mjs.map +1 -1
  59. package/lib/components/text-ellipsis/YTextEllipsis.mjs +61 -0
  60. package/lib/components/text-ellipsis/YTextEllipsis.mjs.map +1 -0
  61. package/lib/components/text-ellipsis/YTextEllipsis.scss +43 -0
  62. package/lib/components/text-ellipsis/index.mjs +2 -0
  63. package/lib/components/text-ellipsis/index.mjs.map +1 -0
  64. package/lib/components/text-interpolation/YTi.mjs +46 -0
  65. package/lib/components/text-interpolation/YTi.mjs.map +1 -0
  66. package/lib/components/text-interpolation/index.mjs +2 -0
  67. package/lib/components/text-interpolation/index.mjs.map +1 -0
  68. package/lib/components/textarea/YTextarea.mjs +3 -1
  69. package/lib/components/textarea/YTextarea.mjs.map +1 -1
  70. package/lib/components/tooltip/YTooltip.mjs +13 -23
  71. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  72. package/lib/components/tree-view/YTreeViewNode.mjs +47 -21
  73. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  74. package/lib/composables/coordinate/index.mjs.map +1 -1
  75. package/lib/composables/coordinate/levitation.mjs.map +1 -1
  76. package/lib/composables/icon.mjs.map +1 -1
  77. package/lib/composables/index.mjs +1 -0
  78. package/lib/composables/index.mjs.map +1 -1
  79. package/lib/composables/theme/index.mjs +6 -3
  80. package/lib/composables/theme/index.mjs.map +1 -1
  81. package/lib/index.mjs +1 -1
  82. package/lib/index.mjs.map +1 -1
  83. package/lib/util/parser.mjs +31 -0
  84. package/lib/util/parser.mjs.map +1 -0
  85. package/lib/util/string.mjs +30 -0
  86. package/lib/util/string.mjs.map +1 -1
  87. package/package.json +12 -11
  88. package/types/abstract/items.d.ts +5 -4
  89. package/types/components/alert/YAlert.d.ts +3 -2
  90. package/types/components/app/YApp.d.ts +3 -2
  91. package/types/components/badge/YBadge.d.ts +9 -8
  92. package/types/components/bench/YBench.d.ts +4 -0
  93. package/types/components/bench/index.d.ts +1 -0
  94. package/types/components/button/YButton.d.ts +27 -29
  95. package/types/components/card/YCard.d.ts +6 -3
  96. package/types/components/card/YCardBody.d.ts +1 -1
  97. package/types/components/card/YCardFooter.d.ts +1 -1
  98. package/types/components/card/YCardHeader.d.ts +1 -1
  99. package/types/components/checkbox/YCheckbox.d.ts +4 -3
  100. package/types/components/checkbox/YInputCheckbox.d.ts +7 -6
  101. package/types/components/checkbox/index.d.ts +1 -1
  102. package/types/components/chip/YChip.d.ts +3 -2
  103. package/types/components/date-picker/YDateCalendar.d.ts +16 -15
  104. package/types/components/date-picker/YDatePicker.d.ts +47 -41
  105. package/types/components/date-picker/YDatePickerControl.d.ts +29 -28
  106. package/types/components/date-picker/YMonthPicker.d.ts +6 -5
  107. package/types/components/date-picker/YYearPicker.d.ts +3 -2
  108. package/types/components/default-provider/YDefaultProvider.d.ts +0 -0
  109. package/types/components/default-provider/index.d.ts +0 -0
  110. package/types/components/dialog/YDialog.d.ts +416 -334
  111. package/types/components/divider/YDivider.d.ts +4 -3
  112. package/types/components/dropdown/YDropdown.d.ts +495 -61
  113. package/types/components/field-input/YFieldInput.d.ts +29 -26
  114. package/types/components/form/YForm.d.ts +9 -8
  115. package/types/components/hover/YHover.d.ts +79 -0
  116. package/types/components/hover/index.d.ts +1 -0
  117. package/types/components/icon/YIcon.d.ts +5 -4
  118. package/types/components/icons/YIconCheckbox.d.ts +5 -4
  119. package/types/components/icons/YIconClear.d.ts +1 -1
  120. package/types/components/icons/YIconDropdown.d.ts +1 -1
  121. package/types/components/icons/YIconExpand.d.ts +1 -1
  122. package/types/components/icons/YIconPageControl.d.ts +6 -5
  123. package/types/components/icons/YIconSort.d.ts +5 -4
  124. package/types/components/icons/index.d.ts +26 -26
  125. package/types/components/index.d.ts +4 -0
  126. package/types/components/input/YInput.d.ts +23 -20
  127. package/types/components/ip-field/YIpv4Field.d.ts +133 -0
  128. package/types/components/ip-field/index.d.ts +1 -0
  129. package/types/components/layer/YLayer.d.ts +154 -105
  130. package/types/components/layer/active-stack.d.ts +3 -2
  131. package/types/components/layer/base.d.ts +8 -6
  132. package/types/components/layer/content.d.ts +21 -0
  133. package/types/components/layer/scroll-strategies.d.ts +41 -0
  134. package/types/components/list/YList.d.ts +8 -7
  135. package/types/components/list/YListItem.d.ts +19 -13
  136. package/types/components/loading/YSpinnerRing.d.ts +2 -1
  137. package/types/components/menu/YMenu.d.ts +166 -124
  138. package/types/components/navigation/YNavigation.d.ts +1 -0
  139. package/types/components/navigation/index.d.ts +1 -0
  140. package/types/components/pagination/YPagination.d.ts +20 -19
  141. package/types/components/panel/YDividePanel.d.ts +4 -3
  142. package/types/components/plate/YPlate.d.ts +3 -2
  143. package/types/components/progress-bar/YProgressBar.d.ts +5 -4
  144. package/types/components/select/YSelect.d.ts +1254 -942
  145. package/types/components/snackbar/YSnackbar.d.ts +12 -11
  146. package/types/components/switch/YSwitch.d.ts +4 -3
  147. package/types/components/tab/YTab.d.ts +30 -29
  148. package/types/components/tab/YTabs.d.ts +12 -11
  149. package/types/components/tab/index.d.ts +1 -1
  150. package/types/components/tab/shared.d.ts +1 -0
  151. package/types/components/tab/types.d.ts +1 -1
  152. package/types/components/table/YDataTable.d.ts +63 -62
  153. package/types/components/table/YDataTableBody.d.ts +10 -9
  154. package/types/components/table/YDataTableCell.d.ts +6 -5
  155. package/types/components/table/YDataTableControl.d.ts +5 -4
  156. package/types/components/table/YDataTableHead.d.ts +10 -10
  157. package/types/components/table/YDataTableLayer.d.ts +4 -3
  158. package/types/components/table/YDataTableRow.d.ts +3 -2
  159. package/types/components/table/YDataTableServer.d.ts +63 -62
  160. package/types/components/table/YTable.d.ts +7 -6
  161. package/types/components/table/composibles/header.d.ts +10 -9
  162. package/types/components/table/composibles/items.d.ts +5 -4
  163. package/types/components/table/composibles/options.d.ts +2 -1
  164. package/types/components/table/composibles/pagination.d.ts +6 -5
  165. package/types/components/table/composibles/selection.d.ts +7 -5
  166. package/types/components/table/composibles/sorting.d.ts +4 -3
  167. package/types/components/table/types/common.d.ts +1 -0
  168. package/types/components/table/types/header.d.ts +3 -2
  169. package/types/components/table/types/index.d.ts +5 -4
  170. package/types/components/table/types/item.d.ts +1 -0
  171. package/types/components/table/types/row.d.ts +1 -0
  172. package/types/components/text-ellipsis/YTextEllipsis.d.ts +15 -0
  173. package/types/components/text-ellipsis/index.d.ts +1 -0
  174. package/types/components/text-highlighter/YTextHighlighter.d.ts +3 -2
  175. package/types/components/text-highlighter/index.d.ts +1 -0
  176. package/types/components/text-interpolation/YTi.d.ts +20 -0
  177. package/types/components/text-interpolation/index.d.ts +1 -0
  178. package/types/components/textarea/YTextarea.d.ts +41 -39
  179. package/types/components/toggle-button/YToggleButton.d.ts +1 -0
  180. package/types/components/tooltip/YTooltip.d.ts +1975 -103
  181. package/types/components/transitions/expand-transition.d.ts +4 -3
  182. package/types/components/transitions/index.d.ts +10 -10
  183. package/types/components/tree-view/YTreeView.d.ts +20 -13
  184. package/types/components/tree-view/YTreeViewNode.d.ts +42 -20
  185. package/types/components/tree-view/types.d.ts +2 -1
  186. package/types/components/tree-view/util.d.ts +1 -0
  187. package/types/composables/choice-link.d.ts +2 -1
  188. package/types/composables/choice.d.ts +3 -2
  189. package/types/composables/communication.d.ts +2 -1
  190. package/types/composables/component.d.ts +1 -0
  191. package/types/composables/coordinate/arrangement.d.ts +2 -1
  192. package/types/composables/coordinate/index.d.ts +23 -22
  193. package/types/composables/coordinate/levitation.d.ts +2 -1
  194. package/types/composables/coordinate/types.d.ts +2 -1
  195. package/types/composables/coordinate/utils/point.d.ts +1 -0
  196. package/types/composables/date/factory.d.ts +1 -0
  197. package/types/composables/date/index.d.ts +1 -0
  198. package/types/composables/date/setting.d.ts +2 -1
  199. package/types/composables/date/types.d.ts +2 -1
  200. package/types/composables/dimension.d.ts +4 -3
  201. package/types/composables/focus.d.ts +4 -3
  202. package/types/composables/form.d.ts +7 -6
  203. package/types/composables/i18n/index.d.ts +1 -0
  204. package/types/composables/i18n/locale.d.ts +2 -1
  205. package/types/composables/i18n/rtl.d.ts +2 -1
  206. package/types/composables/icon.d.ts +9 -10
  207. package/types/composables/index.d.ts +1 -0
  208. package/types/composables/layer-group.d.ts +3 -2
  209. package/types/composables/layout.d.ts +10 -0
  210. package/types/composables/list-items.d.ts +36 -35
  211. package/types/composables/progress.d.ts +1 -1
  212. package/types/composables/ref.d.ts +2 -1
  213. package/types/composables/resize-observer.d.ts +2 -2
  214. package/types/composables/scope.d.ts +2 -1
  215. package/types/composables/theme/factory.d.ts +1 -0
  216. package/types/composables/theme/index.d.ts +5 -4
  217. package/types/composables/theme/setting.d.ts +1 -0
  218. package/types/composables/timing.d.ts +2 -1
  219. package/types/composables/transition.d.ts +2 -1
  220. package/types/composables/validation.d.ts +19 -18
  221. package/types/composables/vue-router.d.ts +3 -3
  222. package/types/directives/complement-click/index.d.ts +1 -0
  223. package/types/directives/plate-wave/index.d.ts +2 -1
  224. package/types/directives/theme-class.d.ts +1 -0
  225. package/types/globals.d.ts +1 -1
  226. package/types/i18n/built-in.d.ts +2 -1
  227. package/types/i18n/types.d.ts +2 -1
  228. package/types/index.d.ts +2 -1
  229. package/types/locales/index.d.ts +2 -0
  230. package/types/locales/ko.d.ts +6 -0
  231. package/types/mixins/di.d.ts +1 -1
  232. package/types/mixins/rebind-attrs.d.ts +2 -2
  233. package/types/shims.d.ts +5 -45
  234. package/types/types/index.d.ts +2 -1
  235. package/types/util/anchor.d.ts +1 -1
  236. package/types/util/color/contrast/contrast.d.ts +74 -0
  237. package/types/util/color/conversion.d.ts +1 -0
  238. package/types/util/color/hct/cam16.d.ts +2 -17
  239. package/types/util/color/hct/hct-solver.d.ts +131 -0
  240. package/types/util/color/hct/hct.d.ts +2 -17
  241. package/types/util/color/hct/viewing-conditions.d.ts +58 -0
  242. package/types/util/color/index.d.ts +1 -1
  243. package/types/util/color/palettes/core-palette.d.ts +44 -0
  244. package/types/util/color/palettes/tonal-palette.d.ts +40 -0
  245. package/types/util/date/adapters/yuyeon-date-adapter.d.ts +1 -0
  246. package/types/util/date/built-in.d.ts +2 -1
  247. package/types/util/date/index.d.ts +1 -1
  248. package/types/util/parser.d.ts +4 -0
  249. package/types/util/reactivity.d.ts +3 -2
  250. package/types/util/string.d.ts +4 -0
  251. package/types/util/vue-component.d.ts +4 -3
@@ -1,14 +1,16 @@
1
1
  import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  import { shallowRef } from '@vue/runtime-core';
3
+ import { nextTick, watch } from 'vue';
3
4
  import { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';
4
5
  import { useModelDuplex } from "../../composables/communication.mjs";
5
6
  import { useRender } from "../../composables/component.mjs";
6
7
  import { pressCoordinateProps } from "../../composables/coordinate/index.mjs";
7
8
  import { useI18n } from "../../composables/i18n/index.mjs";
8
9
  import { pressListItemsPropsOptions, useItems } from "../../composables/list-items.mjs";
10
+ import { getScrollParent } from "../../util/index.mjs";
9
11
  import { wrapInArray } from "../../util/array.mjs";
10
12
  import { deepEqual, getObjectValueByPath, omit } from "../../util/common.mjs";
11
- import { chooseProps, propsFactory } from "../../util/vue-component.mjs";
13
+ import { chooseProps, getHtmlElement, propsFactory } from "../../util/vue-component.mjs";
12
14
  import { YCard } from "../card/index.mjs";
13
15
  import { YFieldInput, pressYFieldInputPropsOptions } from "../field-input/index.mjs";
14
16
  import { YIcon } from "../icon/index.mjs";
@@ -79,6 +81,7 @@ export const YSelect = defineComponent({
79
81
  const fieldInputRef = ref();
80
82
  const menuRef = ref();
81
83
  const listRef = ref();
84
+ const cardRef = ref();
82
85
  const opened = useModelDuplex(props, 'opened');
83
86
  const focused = shallowRef(false);
84
87
  const {
@@ -177,12 +180,36 @@ export const YSelect = defineComponent({
177
180
  const baseEl = computed(() => {
178
181
  return menuRef.value?.baseEl;
179
182
  });
183
+ watch(opened, neo => {
184
+ if (neo) {
185
+ nextTick(() => {
186
+ scrollToActiveItem();
187
+ });
188
+ }
189
+ });
190
+ function scrollToActiveItem() {
191
+ if (selections.value.length === 0) {
192
+ return;
193
+ }
194
+ const listEl = getHtmlElement(listRef.value);
195
+ if (listEl) {
196
+ const activeEl = listEl?.querySelector('.y-list-item--active');
197
+ const contentEl = menuRef.value?.layer$?.content$;
198
+ if (activeEl && contentEl) {
199
+ const scrollEl = getScrollParent(activeEl);
200
+ if (scrollEl && (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))) {
201
+ scrollEl.scrollTo({
202
+ top: activeEl.offsetTop,
203
+ behavior: 'smooth'
204
+ });
205
+ }
206
+ }
207
+ }
208
+ }
180
209
  useRender(() => {
181
210
  const fieldInputProps = chooseProps(props, YFieldInput.props);
182
211
  const dropdownIconProps = chooseProps(typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {}, YIcon.props);
183
212
  return _createVNode(YMenu, _mergeProps({
184
- "modelValue": opened.value,
185
- "onUpdate:modelValue": $event => opened.value = $event,
186
213
  "ref": menuRef,
187
214
  "offset": props.offset,
188
215
  "position": props.position,
@@ -195,7 +222,10 @@ export const YSelect = defineComponent({
195
222
  "open-delay": props.openDelay,
196
223
  "close-delay": props.closeDelay,
197
224
  "closeCondition": closeCondition
198
- }, extraMenuProps.value), {
225
+ }, extraMenuProps.value, {
226
+ "modelValue": opened.value,
227
+ "onUpdate:modelValue": $event => opened.value = $event
228
+ }), {
199
229
  base: function () {
200
230
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
201
231
  args[_key] = arguments[_key];
@@ -243,10 +273,23 @@ export const YSelect = defineComponent({
243
273
  "class": ['y-select__icon']
244
274
  }), null);
245
275
  },
246
- 'helper-text': slots['helper-text'] ? slots['helper-text']?.() : undefined
276
+ label: slots.label ? function () {
277
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
278
+ args[_key3] = arguments[_key3];
279
+ }
280
+ return slots.label?.(...args);
281
+ } : undefined,
282
+ 'helper-text': slots['helper-text'] ? function () {
283
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
284
+ args[_key4] = arguments[_key4];
285
+ }
286
+ return slots['helper-text']?.(...args);
287
+ } : undefined
247
288
  });
248
289
  },
249
- default: slots.menu ? () => slots.menu() : () => _createVNode(YCard, null, {
290
+ default: slots.menu ? () => slots.menu() : () => _createVNode(YCard, {
291
+ "ref": cardRef
292
+ }, {
250
293
  default: () => [slots['menu-prepend']?.(), items.value.length > 0 ? _createVNode(YList, {
251
294
  "ref": listRef
252
295
  }, {
@@ -260,9 +303,9 @@ export const YSelect = defineComponent({
260
303
  };
261
304
  return _createVNode(YListItem, {
262
305
  "onClick": e => onClickItem(item, e),
263
- "class": {
306
+ "class": [{
264
307
  'y-list-item--active': isSelected(item)
265
- }
308
+ }]
266
309
  }, {
267
310
  default: () => slots.item ? slots.item?.(itemProps) : item.text,
268
311
  leading: slots['item-leading'] && (() => slots['item-leading']?.(itemProps)),
@@ -282,7 +325,8 @@ export const YSelect = defineComponent({
282
325
  });
283
326
  expose({
284
327
  fieldInputRef,
285
- baseEl
328
+ baseEl,
329
+ opened
286
330
  });
287
331
  return {
288
332
  fieldInputRef,
@@ -290,7 +334,8 @@ export const YSelect = defineComponent({
290
334
  selections,
291
335
  selected,
292
336
  menuRef,
293
- baseEl
337
+ baseEl,
338
+ opened
294
339
  };
295
340
  }
296
341
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YSelect.mjs","names":["shallowRef","computed","defineComponent","mergeProps","onMounted","ref","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","getObjectValueByPath","omit","chooseProps","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","slots","setup","_ref","attrs","expose","fieldInputRef","menuRef","listRef","focused","items","toRefineItems","toEmitItems","t","model","v","emitValue","selections","ret","found","find","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onBlur","onClickItem","select","setTimeout","onAfterLeave","focus","closeCondition","target","layer$","content$","contains","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","$event","offset","align","origin","base","_len","args","_key","rxValue","selectionProps","raw","placeholder","internalItems","leading","_len2","_key2","trailing","menu","itemProps","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\nimport { PropType, SlotsType } from 'vue';\nimport { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport { useI18n } from '../../composables/i18n';\nimport {\n ListItem,\n pressListItemsPropsOptions,\n useItems,\n} from '../../composables/list-items';\nimport { wrapInArray } from '../../util/array';\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\nimport { chooseProps, propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\nimport './YSelect.scss';\n\nexport type SelectEquals = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport function returnItemEquals(\n optionsItem: any,\n valueItem: any,\n valueKey = 'value',\n) {\n const valueItemType = typeof valueItem;\n const itemValue =\n valueItemType === 'string' || valueItemType === 'number'\n ? getObjectValueByPath(optionsItem, valueKey)\n : optionsItem;\n return deepEqual(itemValue, valueItem);\n}\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n weakEquals: Boolean,\n valueEquals: {\n type: Function as PropType<SelectEquals>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: {\n displayText: string;\n placeholder: undefined | string;\n items: any[];\n internalItems: ListItem[];\n };\n leading: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n 'item-leading': { item: any; selected: boolean; select: () => void };\n 'item-trailing': { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const { t } = useI18n();\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n (v) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n },\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.valueEquals(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return { ...props.menuProps, preventCloseBubble: true };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) {\n return;\n }\n opened.value = !opened.value;\n }\n\n function onBlur(event: FocusEvent) {\n // if (listRef.value?.$el.contains(event.relatedTarget)) {\n // opened.value = false;\n // }\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n select(item);\n if (!props.multiple) {\n setTimeout(() => {\n opened.value = false;\n }, 40);\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n model.value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n model.value = neo;\n }\n } else {\n model.value = [item];\n }\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YMenu\n v-model={opened.value}\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n {...extraMenuProps.value}\n >\n {{\n base: (...args: any[]) =>\n slots.base ? (\n slots.base?.(...args)\n ) : (\n <YFieldInput\n {...{\n ...fieldInputProps,\n ...mergeProps({ ...args[0].props }, { ref: fieldInputRef }),\n }}\n modelValue={model.value\n .map((v: any) => v.props.value)\n .join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n const selectionProps = {\n items: selections.value.map((item) => item.raw),\n displayText: displayText.value,\n placeholder: props.placeholder,\n internalItems: selections.value,\n };\n return (\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.(selectionProps)\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n 'helper-text': slots['helper-text']\n ? slots['helper-text']?.()\n : undefined,\n }}\n </YFieldInput>\n ),\n default: slots.menu\n ? () => slots.menu()\n : () => (\n <YCard>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n const itemProps = {\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n };\n return (\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={{\n 'y-list-item--active': isSelected(item),\n }}\n >\n {{\n default: () =>\n slots.item\n ? slots.item?.(itemProps)\n : item.text,\n leading:\n slots['item-leading'] &&\n (() => slots['item-leading']?.(itemProps)),\n trailing:\n slots['item-trailing'] &&\n (() => slots['item-trailing']?.(itemProps)),\n }}\n </YListItem>\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">\n {t('$yuyeon.noItems')}\n </div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n };\n },\n});\n\nexport type YSelect = InstanceType<typeof YSelect>;\n"],"mappings":";AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAE9C,SAASC,QAAQ,EAAEC,eAAe,EAAEC,UAAU,EAAEC,SAAS,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAEnEC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,oBAAoB;AAAA,SACpBC,OAAO;AAAA,SAGdC,0BAA0B,EAC1BC,QAAQ;AAAA,SAEDC,WAAW;AAAA,SACXC,SAAS,EAAEC,oBAAoB,EAAEC,IAAI;AAAA,SACrCC,WAAW,EAAEC,YAAY;AAAA,SACzBC,KAAK;AAAA,SACLC,WAAW,EAAEC,4BAA4B;AAAA,SACzCC,KAAK;AAAA,SACLC,KAAK,EAAEC,SAAS;AAAA,SAChBC,KAAK;AAEd;AAQA,OAAO,SAASC,gBAAgBA,CAC9BC,WAAgB,EAChBC,SAAc,EAEd;EAAA,IADAC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAElB,MAAMG,aAAa,GAAG,OAAOL,SAAS;EACtC,MAAMM,SAAS,GACbD,aAAa,KAAK,QAAQ,IAAIA,aAAa,KAAK,QAAQ,GACpDlB,oBAAoB,CAACY,WAAW,EAAEE,QAAQ,CAAC,GAC3CF,WAAW;EACjB,OAAOb,SAAS,CAACoB,SAAS,EAAEN,SAAS,CAAC;AACxC;AAEA,OAAO,MAAMO,uBAAuB,GAAGjB,YAAY,CACjD;EACEkB,MAAM,EAAEC,OAA4B;EACpCC,QAAQ,EAAED,OAAO;EACjBE,UAAU,EAAEF,OAAO;EACnBG,WAAW,EAAE;IACXC,IAAI,EAAEC,QAAkC;IACxCC,OAAO,EAAE7B;EACX,CAAC;EACD8B,aAAa,EAAEP,OAAO;EACtBQ,SAAS,EAAE;IACTJ,IAAI,EAAEK;EACR,CAAC;EACD,GAAGnC,0BAA0B,CAAC;AAChC,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMoC,wBAAwB,GAAG7B,YAAY,CAClD;EACE8B,SAAS,EAAE;IACTP,IAAI,EAAE,CAACQ,MAAM,EAAEC,MAAM,CAAC;IACtBP,OAAO,EAAE;EACX,CAAC;EACDQ,YAAY,EAAE;IACZV,IAAI,EAAE,CAACS,MAAM,EAAEE,KAAK,EAAEN,MAAM,CAA4B;IACxDH,OAAO,EAAE;EACX,CAAC;EACDU,SAAS,EAAE;IACTZ,IAAI,EAAEQ,MAA0B;IAChCN,OAAO,EAAE;EACX,CAAC;EACDW,UAAU,EAAE;IACVb,IAAI,EAAEQ,MAA0B;IAChCN,OAAO,EAAE;EACX,CAAC;EACD,GAAGR,uBAAuB,CAAC,CAAC;EAC5B,GAAGd,4BAA4B,CAAC,CAAC;EACjC,GAAGL,IAAI,CAACP,oBAAoB,CAAC;IAAE8C,QAAQ,EAAE;EAAqB,CAAC,CAAC,EAAE,CAChE,oBAAoB,CACrB;AACH,CAAC,EACD,SACF,CAAC;AAED,OAAO,MAAMC,OAAO,GAAGrD,eAAe,CAAC;EACrCsD,IAAI,EAAE,SAAS;EACfC,YAAY,EAAE,KAAK;EACnBC,KAAK,EAAE;IACL,GAAGZ,wBAAwB,CAAC;EAC9B,CAAC;EACDa,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK,IAAI;IACzC,eAAe,EAAGzB,MAAe,IAAK,IAAI;IAC1C,YAAY,EAAE0B,CAACC,IAAS,EAAEC,CAAa,KAAK;EAC9C,CAAC;EACDC,KAAK,EAAEnB,MAiBL;EACFoB,KAAKA,CAACP,KAAK,EAAAQ,IAAA,EAA4B;IAAA,IAA1B;MAAEF,KAAK;MAAEG,KAAK;MAAEC;IAAO,CAAC,GAAAF,IAAA;IACnC,MAAMG,aAAa,GAAGhE,GAAG,CAAC,CAAC;IAC3B,MAAMiE,OAAO,GAAGjE,GAAG,CAA6B,CAAC;IACjD,MAAMkE,OAAO,GAAGlE,GAAG,CAA6B,CAAC;IAEjD,MAAM8B,MAAM,GAAG7B,cAAc,CAACoD,KAAK,EAAE,QAAQ,CAAC;IAC9C,MAAMc,OAAO,GAAGxE,UAAU,CAAC,KAAK,CAAC;IAEjC,MAAM;MAAEyE,KAAK;MAAEC,aAAa;MAAEC;IAAY,CAAC,GAAGhE,QAAQ,CAAC+C,KAAK,CAAC;IAC7D,MAAM;MAAEkB;IAAE,CAAC,GAAGnE,OAAO,CAAC,CAAC;IACvB,MAAMoE,KAAK,GAAGvE,cAAc,CAC1BoD,KAAK,EACL,YAAY,EACZ,EAAE,EACDoB,CAAC,IAAKJ,aAAa,CAACI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,GAAGlE,WAAW,CAACkE,CAAC,CAAC,CAAC,EACzDA,CAAC,IAAK;MACL,MAAMC,SAAS,GAAGJ,WAAW,CAAC/D,WAAW,CAACkE,CAAC,CAAC,CAAC;MAC7C,OAAOpB,KAAK,CAACrB,QAAQ,GAAG0C,SAAS,GAAGA,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI;IAC1D,CACF,CAAC;IAED,MAAMC,UAAU,GAAG/E,QAAQ,CAAa,MAAM;MAC5C,MAAMgF,GAAoB,GAAG,EAAE;MAC/B,KAAK,MAAMH,CAAC,IAAID,KAAK,CAACjB,KAAK,EAAE;QAC3B,MAAMsB,KAAK,GAAGT,KAAK,CAACb,KAAK,CAACuB,IAAI,CAAErB,IAAI,IAAK;UACvC,OAAOJ,KAAK,CAACnB,WAAW,CAACuB,IAAI,CAACF,KAAK,EAAEkB,CAAC,CAAClB,KAAK,CAAC;QAC/C,CAAC,CAAC;QACF,IAAIsB,KAAK,KAAKnD,SAAS,EAAE;UACvBkD,GAAG,CAACG,IAAI,CAACF,KAAK,CAAC;QACjB;MACF;MACA,OAAOD,GAAG;IACZ,CAAC,CAAC;IAEF,MAAMI,QAAQ,GAAGpF,QAAQ,CAAC,MAAM;MAC9B,OAAO+E,UAAU,CAACpB,KAAK,CAAC0B,GAAG,CAAEC,SAAS,IAAKA,SAAS,EAAE7B,KAAK,EAAEE,KAAK,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM4B,cAAc,GAAGvF,QAAQ,CAAC,MAAM;MACpC,OAAO;QAAE,GAAGyD,KAAK,CAACd,SAAS;QAAE6C,kBAAkB,EAAE;MAAK,CAAC;IACzD,CAAC,CAAC;IAEF,SAASC,UAAUA,CAAC5B,IAAc,EAAE;MAClC,OAAO,CAAC,CAACkB,UAAU,CAACpB,KAAK,CAACuB,IAAI,CAAEQ,YAAY,IAAK;QAC/C,OAAOA,YAAY,EAAE/B,KAAK,KAAKE,IAAI,CAACF,KAAK;MAC3C,CAAC,CAAC;IACJ;;IAEA;IACA,SAASgC,kBAAkBA,CAACC,KAAiB,EAAE;MAC7C,IAAInC,KAAK,CAACoC,QAAQ,EAAE;QAClB;MACF;MACA3D,MAAM,CAACyB,KAAK,GAAG,CAACzB,MAAM,CAACyB,KAAK;IAC9B;IAEA,SAASmC,MAAMA,CAACF,KAAiB,EAAE;MACjC;MACA;MACA;IAAA;;IAGF;IACA,SAASG,WAAWA,CAAClC,IAAc,EAAEC,CAAa,EAAE;MAClDkC,MAAM,CAACnC,IAAI,CAAC;MACZ,IAAI,CAACJ,KAAK,CAACrB,QAAQ,EAAE;QACnB6D,UAAU,CAAC,MAAM;UACf/D,MAAM,CAACyB,KAAK,GAAG,KAAK;QACtB,CAAC,EAAE,EAAE,CAAC;MACR;IACF;IAEA,SAASuC,YAAYA,CAAA,EAAG;MACtB,IAAI,CAAC3B,OAAO,CAACZ,KAAK,EAAE;QAClBS,aAAa,CAACT,KAAK,EAAEwC,KAAK,CAAC,CAAC;MAC9B;IACF;IAEA,SAASC,cAAcA,CAACR,KAAiB,EAAE;MACzC,IAAIA,KAAK,CAACS,MAAM,IAAKhC,OAAO,CAACV,KAAK,EAAU2C,MAAM,EAAEC,QAAQ,EAAE;QAC5D,OAAQX,KAAK,CAACS,MAAM,EAAkBG,QAAQ,CAC3CnC,OAAO,CAACV,KAAK,EAAU2C,MAAM,EAAEC,QAClC,CAAC;MACH;IACF;IAEA,SAASP,MAAMA,CAACnC,IAAc,EAAE;MAC9B,IAAIJ,KAAK,CAACrB,QAAQ,EAAE;QAClB,MAAMqE,KAAK,GAAG1B,UAAU,CAACpB,KAAK,CAAC+C,SAAS,CAAEhB,YAAY,IAAK;UACzD,OAAOA,YAAY,CAAC/B,KAAK,KAAKE,IAAI,CAACF,KAAK;QAC1C,CAAC,CAAC;QACF,IAAI8C,KAAK,KAAK,CAAC,CAAC,EAAE;UAChB7B,KAAK,CAACjB,KAAK,GAAG,CAAC,GAAGiB,KAAK,CAACjB,KAAK,EAAEE,IAAI,CAAC;QACtC,CAAC,MAAM;UACL,MAAM8C,GAAG,GAAG/B,KAAK,CAACjB,KAAK,CAACiD,KAAK,CAAC,CAAC;UAC/BD,GAAG,CAACE,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;UACpB7B,KAAK,CAACjB,KAAK,GAAGgD,GAAG;QACnB;MACF,CAAC,MAAM;QACL/B,KAAK,CAACjB,KAAK,GAAG,CAACE,IAAI,CAAC;MACtB;IACF;IAEA,MAAMiD,WAAW,GAAG9G,QAAQ,CAAC,MAAM;MACjC,IAAIyD,KAAK,CAACrB,QAAQ,EAAE;QAClB,OAAO2C,UAAU,CAACpB,KAAK,CAAC0B,GAAG,CAAExB,IAAI,IAAKA,IAAI,CAACkD,IAAI,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;MAC7D;MACA,OAAOjC,UAAU,CAACpB,KAAK,GAAG,CAAC,CAAC,EAAEoD,IAAI,IAAI,EAAE;IAC1C,CAAC,CAAC;IAEF,MAAME,MAAM,GAAGjH,QAAQ,CAAC,MAAM;MAC5B,OAAOqE,OAAO,CAACV,KAAK,EAAEsD,MAAM;IAC9B,CAAC,CAAC;IAEF3G,SAAS,CAAC,MAAM;MACd,MAAM4G,eAAe,GAAGnG,WAAW,CAAC0C,KAAK,EAAEvC,WAAW,CAACuC,KAAK,CAAC;MAC7D,MAAM0D,iBAAiB,GAAGpG,WAAW,CACnC,OAAO0C,KAAK,CAACR,YAAY,KAAK,QAAQ,GAAGQ,KAAK,CAACR,YAAY,GAAG,CAAC,CAAC,EAChE7B,KAAK,CAACqC,KACR,CAAC;MACD,OAAA2D,YAAA,CAAA7F,KAAA,EAAA8F,WAAA;QAAA,cAEanF,MAAM,CAACyB,KAAK;QAAA,uBAAA2D,MAAA,IAAZpF,MAAM,CAACyB,KAAK,GAAA2D,MAAA;QAAA,OAChBjD,OAAO;QAAA,UACJZ,KAAK,CAAC8D,MAAM;QAAA,YACV9D,KAAK,CAACJ,QAAQ;QAAA,SACjBI,KAAK,CAAC+D,KAAK;QAAA,UACV/D,KAAK,CAACgE,MAAM;QAAA,mBACH,CAAC,mBAAmB,CAAC;QAAA,aAC3BhE,KAAK,CAACX,SAAS;QAAA,sBACN,KAAK;QAAA,gBACXoD,YAAY;QAAA,cACdzC,KAAK,CAACN,SAAS;QAAA,eACdM,KAAK,CAACL,UAAU;QAAA,kBACbgD;MAAc,GAC1Bb,cAAc,CAAC5B,KAAK;QAGtB+D,IAAI,EAAE,SAAAA,CAAA;UAAA,SAAAC,IAAA,GAAA/F,SAAA,CAAAC,MAAA,EAAI+F,IAAI,OAAA1E,KAAA,CAAAyE,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;YAAJD,IAAI,CAAAC,IAAA,IAAAjG,SAAA,CAAAiG,IAAA;UAAA;UAAA,OACZ9D,KAAK,CAAC2D,IAAI,GACR3D,KAAK,CAAC2D,IAAI,GAAG,GAAGE,IAAI,CAAC,GAAAR,YAAA,CAAAlG,WAAA,EAAAmG,WAAA;YAIjB,GAAGH,eAAe;YAClB,GAAGhH,UAAU,CAAC;cAAE,GAAG0H,IAAI,CAAC,CAAC,CAAC,CAACnE;YAAM,CAAC,EAAE;cAAErD,GAAG,EAAEgE;YAAc,CAAC;UAAC;YAAA,cAEjDQ,KAAK,CAACjB,KAAK,CACpB0B,GAAG,CAAER,CAAM,IAAKA,CAAC,CAACpB,KAAK,CAACE,KAAK,CAAC,CAC9BqD,IAAI,CAAC,IAAI,CAAC;YAAA,mBACIpC,KAAK,CAACkD,OAAO;YAAA,uBACTnC,kBAAkB;YAAA,UAC/BG,MAAM;YAAA;YAAA,SAEP,CACL,UAAU,EACV;cACE,kBAAkB,EAAE5D,MAAM,CAACyB,KAAK;cAChC,oBAAoB,EAAEyB,QAAQ,CAACzB,KAAK,CAAC9B,MAAM,GAAG;YAChD,CAAC;UACF,GACGqC,KAAK;YAAA,WACAK,OAAO,CAACZ;UAAK;YAGpBlB,OAAO,EAAEA,CAAA,KAAM;cACb,MAAMsF,cAAc,GAAG;gBACrBvD,KAAK,EAAEO,UAAU,CAACpB,KAAK,CAAC0B,GAAG,CAAExB,IAAI,IAAKA,IAAI,CAACmE,GAAG,CAAC;gBAC/ClB,WAAW,EAAEA,WAAW,CAACnD,KAAK;gBAC9BsE,WAAW,EAAExE,KAAK,CAACwE,WAAW;gBAC9BC,aAAa,EAAEnD,UAAU,CAACpB;cAC5B,CAAC;cACD,OAAAyD,YAAA;gBAAA,SACc,CAAC,qBAAqB;cAAC,IAChCrD,KAAK,CAACuB,SAAS,GACZvB,KAAK,CAACuB,SAAS,GAAGyC,cAAc,CAAC,GACjC3C,QAAQ,CAACzB,KAAK,CAAC9B,MAAM,GAAG,CAAC,GACzBiF,WAAW,CAACnD,KAAK,GACjBF,KAAK,CAACwE,WAAW;YAG3B,CAAC;YACDE,OAAO,EAAEpE,KAAK,CAACoE,OAAO,GAClB;cAAA,SAAAC,KAAA,GAAAxG,SAAA,CAAAC,MAAA,EAAI+F,IAAI,OAAA1E,KAAA,CAAAkF,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;gBAAJT,IAAI,CAAAS,KAAA,IAAAzG,SAAA,CAAAyG,KAAA;cAAA;cAAA,OAAYtE,KAAK,CAACoE,OAAO,GAAG,GAAGP,IAAI,CAAC;YAAA,IAC5C9F,SAAS;YACbwG,QAAQ,EAAE,SAAAA,CAAA,EAAoB;cAC5B,OAAOvE,KAAK,CAAC,eAAe,CAAC,GAC3BA,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,GAAAqD,YAAA,CAAAhG,KAAA,EAAAiG,WAAA,CAGlBnH,UAAU,CAACiH,iBAAiB,CAAC;gBAAA,QAC3B1D,KAAK,CAACR,YAAY;gBAAA,SACjB,CAAC,gBAAgB;cAAC,SAE5B;YACH,CAAC;YACD,aAAa,EAAEc,KAAK,CAAC,aAAa,CAAC,GAC/BA,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GACxBjC;UAAS,EAGlB;QAAA;QACHW,OAAO,EAAEsB,KAAK,CAACwE,IAAI,GACf,MAAMxE,KAAK,CAACwE,IAAI,CAAC,CAAC,GAClB,MAAAnB,YAAA,CAAAnG,KAAA;UAAAwB,OAAA,EAAAA,CAAA,MAEKsB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EACzBS,KAAK,CAACb,KAAK,CAAC9B,MAAM,GAAG,CAAC,GAAAuF,YAAA,CAAA/F,KAAA;YAAA,OACTiD;UAAO;YAAA7B,OAAA,EAAAA,CAAA,MAChB+B,KAAK,CAACb,KAAK,CAAC0B,GAAG,CAAExB,IAAI,IAAK;cACzB,MAAM2E,SAAS,GAAG;gBAChB3E,IAAI;gBACJuB,QAAQ,EAAEK,UAAU,CAAC5B,IAAI,CAAC;gBAC1BmC,MAAM,EAAEA,CAAA,KAAM;kBACZA,MAAM,CAACnC,IAAI,CAAC;gBACd;cACF,CAAC;cACD,OAAAuD,YAAA,CAAA9F,SAAA;gBAAA,WAEcwC,CAAC,IAAKiC,WAAW,CAAClC,IAAI,EAAEC,CAAC,CAAC;gBAAA,SAC7B;kBACL,qBAAqB,EAAE2B,UAAU,CAAC5B,IAAI;gBACxC;cAAC;gBAGCpB,OAAO,EAAEA,CAAA,KACPsB,KAAK,CAACF,IAAI,GACNE,KAAK,CAACF,IAAI,GAAG2E,SAAS,CAAC,GACvB3E,IAAI,CAACkD,IAAI;gBACfoB,OAAO,EACLpE,KAAK,CAAC,cAAc,CAAC,KACpB,MAAMA,KAAK,CAAC,cAAc,CAAC,GAAGyE,SAAS,CAAC,CAAC;gBAC5CF,QAAQ,EACNvE,KAAK,CAAC,eAAe,CAAC,KACrB,MAAMA,KAAK,CAAC,eAAe,CAAC,GAAGyE,SAAS,CAAC;cAAC;YAIrD,CAAC,CAAC;UAAA,KAAApB,YAAA;YAAA;UAAA,IAIDzC,CAAC,CAAC,iBAAiB,CAAC,EAExB,EACAZ,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;QAAA;MAE5B;IAIb,CAAC,CAAC;IAEF5D,SAAS,CAAC,MAAM;MACd,IACEsD,KAAK,CAACf,aAAa,KAClBe,KAAK,CAACgF,UAAU,KAAK3G,SAAS,IAC5BoB,KAAK,CAACwF,OAAO,CAACjF,KAAK,CAACgF,UAAU,CAAC,IAAIhF,KAAK,CAACgF,UAAU,CAAC5G,MAAM,KAAK,CAAE,CAAC,IACrE2C,KAAK,CAACb,KAAK,EAAE9B,MAAM,EACnB;QACAmE,MAAM,CAACxB,KAAK,CAACb,KAAK,CAAC,CAAC,CAAC,CAAC;MACxB;IACF,CAAC,CAAC;IAEFQ,MAAM,CAAC;MACLC,aAAa;MACb6C;IACF,CAAC,CAAC;IAEF,OAAO;MACL7C,aAAa;MACbQ,KAAK;MACLG,UAAU;MACVK,QAAQ;MACRf,OAAO;MACP4C;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YSelect.mjs","names":["shallowRef","nextTick","watch","computed","defineComponent","mergeProps","onMounted","ref","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","getScrollParent","wrapInArray","deepEqual","getObjectValueByPath","omit","chooseProps","getHtmlElement","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","slots","setup","_ref","attrs","expose","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","model","v","emitValue","selections","ret","found","find","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onBlur","onClickItem","select","setTimeout","onAfterLeave","focus","closeCondition","target","layer$","content$","contains","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","listEl","activeEl","querySelector","contentEl","scrollEl","isSameNode","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","offset","align","origin","$event","base","_len","args","_key","rxValue","selectionProps","raw","placeholder","internalItems","leading","_len2","_key2","trailing","label","_len3","_key3","_len4","_key4","menu","itemProps","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\nimport { PropType, SlotsType, nextTick, watch } from 'vue';\nimport { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';\n\n\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport { useI18n } from '../../composables/i18n';\nimport { ListItem, pressListItemsPropsOptions, useItems } from '../../composables/list-items';\nimport { getScrollParent } from '../../util';\nimport { wrapInArray } from '../../util/array';\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\nimport { chooseProps, getHtmlElement, propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\n\n\nimport './YSelect.scss';\n\n\nexport type SelectEquals = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport function returnItemEquals(\n optionsItem: any,\n valueItem: any,\n valueKey = 'value',\n) {\n const valueItemType = typeof valueItem;\n const itemValue =\n valueItemType === 'string' || valueItemType === 'number'\n ? getObjectValueByPath(optionsItem, valueKey)\n : optionsItem;\n return deepEqual(itemValue, valueItem);\n}\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n weakEquals: Boolean,\n valueEquals: {\n type: Function as PropType<SelectEquals>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: {\n displayText: string;\n placeholder: undefined | string;\n items: any[];\n internalItems: ListItem[];\n };\n leading: any;\n label: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n 'item-leading': { item: any; selected: boolean; select: () => void };\n 'item-trailing': { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n const cardRef = ref<any>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const { t } = useI18n();\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n (v) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n },\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.valueEquals(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return { ...props.menuProps, preventCloseBubble: true };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) {\n return;\n }\n opened.value = !opened.value;\n }\n\n function onBlur(event: FocusEvent) {\n // if (listRef.value?.$el.contains(event.relatedTarget)) {\n // opened.value = false;\n // }\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n select(item);\n if (!props.multiple) {\n setTimeout(() => {\n opened.value = false;\n }, 40);\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n model.value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n model.value = neo;\n }\n } else {\n model.value = [item];\n }\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n watch(opened, (neo) => {\n if (neo) {\n nextTick(() => {\n scrollToActiveItem();\n });\n }\n });\n\n function scrollToActiveItem() {\n if (selections.value.length === 0) {\n return;\n }\n const listEl = getHtmlElement(listRef.value);\n if (listEl) {\n const activeEl = listEl?.querySelector('.y-list-item--active') as\n | HTMLElement\n | undefined;\n const contentEl = (menuRef.value as any)?.layer$?.content$ as HTMLElement;\n if (activeEl && contentEl) {\n const scrollEl = getScrollParent(activeEl);\n if (\n scrollEl &&\n (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))\n ) {\n scrollEl.scrollTo({ top: activeEl.offsetTop, behavior: 'smooth' });\n }\n }\n }\n }\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YMenu\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n {...extraMenuProps.value}\n v-model={opened.value}\n >\n {{\n base: (...args: any[]) =>\n slots.base ? (\n slots.base?.(...args)\n ) : (\n <YFieldInput\n {...{\n ...fieldInputProps,\n ...mergeProps({ ...args[0].props }, { ref: fieldInputRef }),\n }}\n modelValue={model.value\n .map((v: any) => v.props.value)\n .join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n const selectionProps = {\n items: selections.value.map((item) => item.raw),\n displayText: displayText.value,\n placeholder: props.placeholder,\n internalItems: selections.value,\n };\n return (\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.(selectionProps)\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n label: slots.label\n ? (...args: any[]) => slots.label?.(...args)\n : undefined,\n 'helper-text': slots['helper-text']\n ? (...args: any[]) => slots['helper-text']?.(...args)\n : undefined,\n }}\n </YFieldInput>\n ),\n default: slots.menu\n ? () => slots.menu()\n : () => (\n <YCard ref={cardRef}>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n const itemProps = {\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n };\n return (\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={[\n {\n 'y-list-item--active': isSelected(item),\n },\n ]}\n >\n {{\n default: () =>\n slots.item\n ? slots.item?.(itemProps)\n : item.text,\n leading:\n slots['item-leading'] &&\n (() => slots['item-leading']?.(itemProps)),\n trailing:\n slots['item-trailing'] &&\n (() => slots['item-trailing']?.(itemProps)),\n }}\n </YListItem>\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">\n {t('$yuyeon.noItems')}\n </div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n opened,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n opened,\n };\n },\n});\n\nexport type YSelect = InstanceType<typeof YSelect>;\n"],"mappings":"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"}
@@ -145,6 +145,7 @@ export const YSwitch = defineComponent({
145
145
  const {
146
146
  checked
147
147
  } = $checkbox;
148
+ $event.stopImmediatePropagation();
148
149
  this.changeInput(checked, $event);
149
150
  },
150
151
  changeInput(checked, event) {
@@ -218,7 +219,7 @@ export const YSwitch = defineComponent({
218
219
  "class": "y-switch__thumb"
219
220
  }, [loading && _createVNode("div", {
220
221
  "class": "y-switch__spinner"
221
- }, null)])]), _createVNode("label", {
222
+ }, null)])]), $slots.label && _createVNode("label", {
222
223
  "for": inputId,
223
224
  "class": "y-switch__label"
224
225
  }, [$slots.label?.(), _createVNode("input", {
@@ -1 +1 @@
1
- {"version":3,"file":"YSwitch.mjs","names":["defineComponent","withModifiers","uidCounter","YSwitch","name","model","prop","event","props","input","type","Boolean","Array","default","value","String","Number","Object","max","loading","disabled","stickOut","stateLabel","color","labelOn","labelOff","data","innerValue","counterId","focused","created","iid","toString","isArray","inputByValue","computed","isMultipleInput","multipleInputIndex","findIndex","inp","inputId","id","trackStyles","backgroundColor","classes","methods","found","find","undefined","changeMultipleInput","checked","multipleInput","slice","length","$emit","nextChange","push","splice","$nextTick","onClick","$event","changeInput","onFocus","onBlur","onKeydown","onChange","$checkbox","target","watch","render","$slots","_createVNode","label"],"sources":["../../../src/components/switch/YSwitch.tsx"],"sourcesContent":["import { PropType, defineComponent, withModifiers } from 'vue';\r\n\r\nimport './YSwitch.scss';\r\n\r\nlet uidCounter = 0;\r\n\r\nexport const YSwitch = defineComponent({\r\n name: 'YSwitch',\r\n model: {\r\n prop: 'input',\r\n event: 'change',\r\n },\r\n props: {\r\n input: {\r\n type: [Boolean, Array] as PropType<boolean | any[]>,\r\n default: false,\r\n },\r\n value: {\r\n type: [String, Number, Object] as PropType<any>,\r\n },\r\n max: {\r\n type: Number,\r\n },\r\n loading: {\r\n type: Boolean,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n },\r\n stickOut: {\r\n type: Boolean,\r\n },\r\n stateLabel: {\r\n type: Boolean,\r\n },\r\n color: {\r\n type: String,\r\n },\r\n labelOn: {\r\n type: String,\r\n default: 'ON',\r\n },\r\n labelOff: {\r\n type: String,\r\n default: 'OFF',\r\n },\r\n },\r\n data() {\r\n return {\r\n innerValue: false,\r\n counterId: '',\r\n focused: false,\r\n };\r\n },\r\n created() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n this.counterId = iid;\r\n if (Array.isArray(this.input)) {\r\n this.inputByValue();\r\n } else {\r\n this.innerValue = this.input;\r\n }\r\n },\r\n computed: {\r\n isMultipleInput() {\r\n return Array.isArray(this.input);\r\n },\r\n multipleInputIndex() {\r\n if (!Array.isArray(this.input)) {\r\n return -1;\r\n }\r\n return this.input.findIndex((inp) => {\r\n return inp === this.value;\r\n });\r\n },\r\n inputId() {\r\n const id = this.counterId;\r\n return `y-switch--${id}`;\r\n },\r\n trackStyles() {\r\n return {\r\n backgroundColor: this.color,\r\n };\r\n },\r\n classes() {\r\n return {\r\n 'y-switch--disabled': this.disabled,\r\n 'y-switch--loading': this.loading,\r\n 'y-switch--active': this.innerValue,\r\n 'y-switch--stick-out': this.stickOut,\r\n 'y-switch--focused': this.focused,\r\n };\r\n },\r\n },\r\n methods: {\r\n inputByValue() {\r\n if (Array.isArray(this.input)) {\r\n const found = this.input.find((inp: any) => {\r\n return inp === this.value;\r\n });\r\n\r\n if (found !== undefined) {\r\n this.innerValue = true;\r\n } else {\r\n this.innerValue = false;\r\n }\r\n } else if (typeof this.input === 'boolean') {\r\n this.innerValue = this.input;\r\n }\r\n },\r\n changeMultipleInput(checked: boolean) {\r\n if (Array.isArray(this.input)) {\r\n const multipleInput = this.input.slice();\r\n if (\r\n checked &&\r\n this.max !== undefined &&\r\n multipleInput.length >= this.max\r\n ) {\r\n this.$emit('overmax');\r\n this.nextChange(false, multipleInput);\r\n return;\r\n }\r\n if (checked && this.multipleInputIndex < 0) {\r\n multipleInput.push(this.value);\r\n } else if (this.multipleInputIndex > -1) {\r\n multipleInput.splice(this.multipleInputIndex, 1);\r\n }\r\n this.$emit('change', multipleInput);\r\n }\r\n },\r\n nextChange(checked: boolean, value: any) {\r\n this.$nextTick(() => {\r\n this.innerValue = checked;\r\n });\r\n },\r\n onClick($event: Event) {\r\n if (this.disabled || this.loading) return;\r\n this.changeInput(!this.innerValue, $event);\r\n },\r\n onFocus() {\r\n this.focused = true;\r\n },\r\n onBlur() {\r\n this.focused = false;\r\n },\r\n onKeydown($event: KeyboardEvent) {\r\n // nothing\r\n },\r\n onChange($event: Event) {\r\n const $checkbox = $event.target as HTMLInputElement;\r\n const { checked } = $checkbox;\r\n this.changeInput(checked, $event);\r\n },\r\n changeInput(checked: boolean, event?: Event) {\r\n this.innerValue = checked;\r\n if (this.isMultipleInput) {\r\n this.changeMultipleInput(checked);\r\n } else {\r\n this.$emit('change', checked);\r\n }\r\n },\r\n },\r\n watch: {\r\n input() {\r\n this.inputByValue();\r\n },\r\n },\r\n render() {\r\n const {\r\n $slots,\r\n classes,\r\n onClick,\r\n onKeydown,\r\n onFocus,\r\n onBlur,\r\n onChange,\r\n inputId,\r\n innerValue,\r\n disabled,\r\n trackStyles,\r\n stateLabel,\r\n labelOn,\r\n labelOff,\r\n loading,\r\n } = this;\r\n return (\r\n <div class={{ 'y-switch': true, ...classes }}>\r\n <div class=\"y-switch__slot\">\r\n <div\r\n class=\"y-switch__input\"\r\n onClick={withModifiers(onClick, ['exact'])}\r\n onKeydown={onKeydown}\r\n >\r\n <input\r\n id={inputId}\r\n aria-checked={innerValue}\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onChange={onChange}\r\n disabled={disabled}\r\n checked={innerValue}\r\n ref=\"checkbox\"\r\n />\r\n <div class=\"y-switch__track\" style={trackStyles}>\r\n {stateLabel && (\r\n <div class=\"y-switch__state\">\r\n <span class=\"y-switch__state-label y-switch__state-label--on\">\r\n {{ labelOn }}\r\n </span>\r\n <span class=\"y-switch__state-label y-switch__state-label--off\">\r\n {{ labelOff }}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n <div class=\"y-switch__thumb\">\r\n {loading && <div class=\"y-switch__spinner\"></div>}\r\n </div>\r\n </div>\r\n <label for={inputId} class=\"y-switch__label\">\r\n {$slots.label?.()}\r\n <input hidden />\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\n\r\nexport type YSwitch = InstanceType<typeof YSwitch>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YSwitch.mjs","names":["defineComponent","withModifiers","uidCounter","YSwitch","name","model","prop","event","props","input","type","Boolean","Array","default","value","String","Number","Object","max","loading","disabled","stickOut","stateLabel","color","labelOn","labelOff","data","innerValue","counterId","focused","created","iid","toString","isArray","inputByValue","computed","isMultipleInput","multipleInputIndex","findIndex","inp","inputId","id","trackStyles","backgroundColor","classes","methods","found","find","undefined","changeMultipleInput","checked","multipleInput","slice","length","$emit","nextChange","push","splice","$nextTick","onClick","$event","changeInput","onFocus","onBlur","onKeydown","onChange","$checkbox","target","stopImmediatePropagation","watch","render","$slots","_createVNode","label"],"sources":["../../../src/components/switch/YSwitch.tsx"],"sourcesContent":["import { PropType, defineComponent, withModifiers } from 'vue';\n\nimport './YSwitch.scss';\n\nlet uidCounter = 0;\n\nexport const YSwitch = defineComponent({\n name: 'YSwitch',\n model: {\n prop: 'input',\n event: 'change',\n },\n props: {\n input: {\n type: [Boolean, Array] as PropType<boolean | any[]>,\n default: false,\n },\n value: {\n type: [String, Number, Object] as PropType<any>,\n },\n max: {\n type: Number,\n },\n loading: {\n type: Boolean,\n },\n disabled: {\n type: Boolean,\n },\n stickOut: {\n type: Boolean,\n },\n stateLabel: {\n type: Boolean,\n },\n color: {\n type: String,\n },\n labelOn: {\n type: String,\n default: 'ON',\n },\n labelOff: {\n type: String,\n default: 'OFF',\n },\n },\n data() {\n return {\n innerValue: false,\n counterId: '',\n focused: false,\n };\n },\n created() {\n const iid = uidCounter.toString();\n uidCounter += 1;\n this.counterId = iid;\n if (Array.isArray(this.input)) {\n this.inputByValue();\n } else {\n this.innerValue = this.input;\n }\n },\n computed: {\n isMultipleInput() {\n return Array.isArray(this.input);\n },\n multipleInputIndex() {\n if (!Array.isArray(this.input)) {\n return -1;\n }\n return this.input.findIndex((inp) => {\n return inp === this.value;\n });\n },\n inputId() {\n const id = this.counterId;\n return `y-switch--${id}`;\n },\n trackStyles() {\n return {\n backgroundColor: this.color,\n };\n },\n classes() {\n return {\n 'y-switch--disabled': this.disabled,\n 'y-switch--loading': this.loading,\n 'y-switch--active': this.innerValue,\n 'y-switch--stick-out': this.stickOut,\n 'y-switch--focused': this.focused,\n };\n },\n },\n methods: {\n inputByValue() {\n if (Array.isArray(this.input)) {\n const found = this.input.find((inp: any) => {\n return inp === this.value;\n });\n\n if (found !== undefined) {\n this.innerValue = true;\n } else {\n this.innerValue = false;\n }\n } else if (typeof this.input === 'boolean') {\n this.innerValue = this.input;\n }\n },\n changeMultipleInput(checked: boolean) {\n if (Array.isArray(this.input)) {\n const multipleInput = this.input.slice();\n if (\n checked &&\n this.max !== undefined &&\n multipleInput.length >= this.max\n ) {\n this.$emit('overmax');\n this.nextChange(false, multipleInput);\n return;\n }\n if (checked && this.multipleInputIndex < 0) {\n multipleInput.push(this.value);\n } else if (this.multipleInputIndex > -1) {\n multipleInput.splice(this.multipleInputIndex, 1);\n }\n this.$emit('change', multipleInput);\n }\n },\n nextChange(checked: boolean, value: any) {\n this.$nextTick(() => {\n this.innerValue = checked;\n });\n },\n onClick($event: Event) {\n if (this.disabled || this.loading) return;\n this.changeInput(!this.innerValue, $event);\n },\n onFocus() {\n this.focused = true;\n },\n onBlur() {\n this.focused = false;\n },\n onKeydown($event: KeyboardEvent) {\n // nothing\n },\n onChange($event: Event) {\n const $checkbox = $event.target as HTMLInputElement;\n const { checked } = $checkbox;\n $event.stopImmediatePropagation();\n this.changeInput(checked, $event);\n },\n changeInput(checked: boolean, event?: Event) {\n this.innerValue = checked;\n if (this.isMultipleInput) {\n this.changeMultipleInput(checked);\n } else {\n this.$emit('change', checked);\n }\n },\n },\n watch: {\n input() {\n this.inputByValue();\n },\n },\n render() {\n const {\n $slots,\n classes,\n onClick,\n onKeydown,\n onFocus,\n onBlur,\n onChange,\n inputId,\n innerValue,\n disabled,\n trackStyles,\n stateLabel,\n labelOn,\n labelOff,\n loading,\n } = this;\n return (\n <div class={{ 'y-switch': true, ...classes }}>\n <div class=\"y-switch__slot\">\n <div\n class=\"y-switch__input\"\n onClick={withModifiers(onClick, ['exact'])}\n onKeydown={onKeydown}\n >\n <input\n id={inputId}\n aria-checked={innerValue}\n type=\"checkbox\"\n role=\"switch\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n disabled={disabled}\n checked={innerValue}\n ref=\"checkbox\"\n />\n <div class=\"y-switch__track\" style={trackStyles}>\n {stateLabel && (\n <div class=\"y-switch__state\">\n <span class=\"y-switch__state-label y-switch__state-label--on\">\n {{ labelOn }}\n </span>\n <span class=\"y-switch__state-label y-switch__state-label--off\">\n {{ labelOff }}\n </span>\n </div>\n )}\n </div>\n <div class=\"y-switch__thumb\">\n {loading && <div class=\"y-switch__spinner\"></div>}\n </div>\n </div>\n {$slots.label && (\n <label for={inputId} class=\"y-switch__label\">\n {$slots.label?.()}\n <input hidden />\n </label>\n )}\n </div>\n </div>\n );\n },\n});\n\nexport type YSwitch = InstanceType<typeof YSwitch>;\n"],"mappings":"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"}
@@ -49,7 +49,7 @@
49
49
  }
50
50
  }
51
51
 
52
- &--active {
52
+ &--active, .y-button--active {
53
53
  font-weight: 700;
54
54
  color: var(--y-tab-active-color);
55
55
 
@@ -58,12 +58,12 @@
58
58
  }
59
59
  }
60
60
 
61
- &:hover:not(&--active) &__indicator {
61
+ &:hover:not(&--active) &__indicator, &:hover:not(.y-button--active) &__indicator {
62
62
  transform: scaleY(1);
63
63
  color: var(--y-tab-hover-indicator-color);
64
64
  }
65
65
 
66
- &--active &__indicator {
66
+ &--active &__indicator, .y-button--active &__indicator {
67
67
  color: var(--y-tab-active-indicator-color);
68
68
  transform: scaleY(1);
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tab/types.ts"],"sourcesContent":["export interface YTabPropItem {\r\n text: string;\r\n value: string;\r\n [Key: string]: any;\r\n}\r\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tab/types.ts"],"sourcesContent":["export interface YTabPropItem {\r\n text: string;\r\n value?: string;\r\n [Key: string]: any;\r\n}\r\n"],"mappings":""}
@@ -68,7 +68,7 @@ export const YDataTableBody = defineComponent({
68
68
  const slotProps = {
69
69
  ...stateProps,
70
70
  props: mergeProps({
71
- key: `item__${item.value ?? item.index}`,
71
+ key: `item__${item.key ?? item.index}`,
72
72
  item,
73
73
  onClick: props['onClick:row'] ? event => {
74
74
  props['onClick:row']?.(event, {
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableBody.mjs","names":["defineComponent","mergeProps","useRender","propsFactory","YDataTableRow","useHeader","useSelection","pressYDataTableBodyProps","items","type","Array","default","loading","Boolean","String","loadingText","hideNoData","noDataText","rowProps","Function","Object","rowHeight","Number","YDataTableBody","name","props","emits","setup","_ref","slots","emit","columns","isSelected","toggleSelect","_createVNode","value","length","_Fragment","body","map","item","index","stateProps","raw","internalItem","slotProps","key","onClick","event","undefined","onDblclick","onContextmenu"],"sources":["../../../src/components/table/YDataTableBody.tsx"],"sourcesContent":["import { PropType, defineComponent, mergeProps } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { propsFactory } from '../../util/vue-component';\nimport { YDataTableRow } from './YDataTableRow';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { DataTableItem, RowProps } from './types';\n\nexport const pressYDataTableBodyProps = propsFactory(\n {\n items: {\n type: Array as PropType<readonly DataTableItem[]>,\n default: () => [],\n },\n loading: [Boolean, String],\n loadingText: String,\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '',\n },\n rowProps: [Function, Object] as PropType<RowProps<any>>,\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: any) => void>,\n 'onDblclick:row': Function as PropType<(e: Event, value: any) => void>,\n 'onContextmenu:row': Function as PropType<(e: Event, value: any) => void>,\n },\n 'YDataTableBody',\n);\n\nexport const YDataTableBody = defineComponent({\n name: 'YDataTableBody',\n props: {\n ...pressYDataTableBodyProps(),\n },\n emits: ['click:row'],\n setup(props, { slots, emit }) {\n const { columns } = useHeader();\n const { isSelected, toggleSelect } = useSelection();\n\n useRender(() => {\n if (props.loading) {\n return (\n <tr>\n <td colspan={columns.value.length} class={'y-data-table__loading'}>\n {slots.loading ? slots.loading() : <div>{props.loadingText}</div>}\n </td>\n </tr>\n );\n }\n if (!props.loading && props.items.length < 1 && !props.hideNoData) {\n return (\n <tr key=\"no-data\" class=\"y-data-table__no-data\">\n <td colspan={columns.value.length}>\n {slots['no-data']?.() ?? props.noDataText}\n </td>\n </tr>\n );\n }\n return (\n <>\n {slots.body\n ? slots.body?.(props)\n : props.items.map((item, index) => {\n const stateProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n };\n const slotProps = {\n ...stateProps,\n props: mergeProps(\n {\n key: `item__${item.value ?? item.index}`,\n item,\n onClick: props['onClick:row']\n ? (event: Event) => {\n props['onClick:row']?.(event, { ...stateProps });\n }\n : undefined,\n onDblclick: props['onDblclick:row']\n ? (event: Event) => {\n props['onDblclick:row']?.(event, { ...stateProps });\n }\n : undefined,\n onContextmenu: props['onContextmenu:row']\n ? (event: Event) => {\n props['onContextmenu:row']?.(event, {\n ...stateProps,\n });\n }\n : undefined,\n index,\n },\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: stateProps.item,\n index: stateProps.index,\n internalItem: stateProps.internalItem,\n })\n : props.rowProps,\n ),\n };\n return (\n <>\n {slots.item ? (\n slots.item(slotProps)\n ) : (\n <YDataTableRow\n v-slots={slots}\n {...slotProps.props}\n ></YDataTableRow>\n )}\n </>\n );\n })}\n </>\n );\n });\n\n // end\n return {};\n },\n});\n\nexport type YDataTableBody = InstanceType<typeof YDataTableBody>;\n"],"mappings":";AAAA,SAAmBA,eAAe,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAEnDC,SAAS;AAAA,SACTC,YAAY;AAAA,SACZC,aAAa;AAAA,SACbC,SAAS;AAAA,SACTC,YAAY;AAGrB,OAAO,MAAMC,wBAAwB,GAAGJ,YAAY,CAClD;EACEK,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA2C;IACjDC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;EAC1BC,WAAW,EAAED,MAAM;EACnBE,UAAU,EAAEH,OAAO;EACnBI,UAAU,EAAE;IACVR,IAAI,EAAEK,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDO,QAAQ,EAAE,CAACC,QAAQ,EAAEC,MAAM,CAA4B;EACvDC,SAAS,EAAEC,MAAM;EACjB,aAAa,EAAEH,QAAoD;EACnE,gBAAgB,EAAEA,QAAoD;EACtE,mBAAmB,EAAEA;AACvB,CAAC,EACD,gBACF,CAAC;AAED,OAAO,MAAMI,cAAc,GAAGvB,eAAe,CAAC;EAC5CwB,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAE;IACL,GAAGlB,wBAAwB,CAAC;EAC9B,CAAC;EACDmB,KAAK,EAAE,CAAC,WAAW,CAAC;EACpBC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC1B,MAAM;MAAEG;IAAQ,CAAC,GAAG1B,SAAS,CAAC,CAAC;IAC/B,MAAM;MAAE2B,UAAU;MAAEC;IAAa,CAAC,GAAG3B,YAAY,CAAC,CAAC;IAEnDJ,SAAS,CAAC,MAAM;MACd,IAAIuB,KAAK,CAACb,OAAO,EAAE;QACjB,OAAAsB,YAAA,cAAAA,YAAA;UAAA,WAEiBH,OAAO,CAACI,KAAK,CAACC,MAAM;UAAA,SAAS;QAAuB,IAC9DP,KAAK,CAACjB,OAAO,GAAGiB,KAAK,CAACjB,OAAO,CAAC,CAAC,GAAAsB,YAAA,eAAST,KAAK,CAACV,WAAW,EAAO;MAIzE;MACA,IAAI,CAACU,KAAK,CAACb,OAAO,IAAIa,KAAK,CAACjB,KAAK,CAAC4B,MAAM,GAAG,CAAC,IAAI,CAACX,KAAK,CAACT,UAAU,EAAE;QACjE,OAAAkB,YAAA;UAAA;UAAA;QAAA,IAAAA,YAAA;UAAA,WAEiBH,OAAO,CAACI,KAAK,CAACC;QAAM,IAC9BP,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAIJ,KAAK,CAACR,UAAU;MAIjD;MACA,OAAAiB,YAAA,CAAAG,SAAA,SAEKR,KAAK,CAACS,IAAI,GACPT,KAAK,CAACS,IAAI,GAAGb,KAAK,CAAC,GACnBA,KAAK,CAACjB,KAAK,CAAC+B,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAC/B,MAAMC,UAAU,GAAG;UACjBD,KAAK;UACLD,IAAI,EAAEA,IAAI,CAACG,GAAG;UACdC,YAAY,EAAEJ,IAAI;UAClBT,OAAO,EAAEA,OAAO,CAACI,KAAK;UACtBH,UAAU;UACVC;QACF,CAAC;QACD,MAAMY,SAAS,GAAG;UAChB,GAAGH,UAAU;UACbjB,KAAK,EAAExB,UAAU,CACf;YACE6C,GAAG,EAAG,SAAQN,IAAI,CAACL,KAAK,IAAIK,IAAI,CAACC,KAAM,EAAC;YACxCD,IAAI;YACJO,OAAO,EAAEtB,KAAK,CAAC,aAAa,CAAC,GACxBuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,aAAa,CAAC,GAAGuB,KAAK,EAAE;gBAAE,GAAGN;cAAW,CAAC,CAAC;YAClD,CAAC,GACDO,SAAS;YACbC,UAAU,EAAEzB,KAAK,CAAC,gBAAgB,CAAC,GAC9BuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,gBAAgB,CAAC,GAAGuB,KAAK,EAAE;gBAAE,GAAGN;cAAW,CAAC,CAAC;YACrD,CAAC,GACDO,SAAS;YACbE,aAAa,EAAE1B,KAAK,CAAC,mBAAmB,CAAC,GACpCuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,mBAAmB,CAAC,GAAGuB,KAAK,EAAE;gBAClC,GAAGN;cACL,CAAC,CAAC;YACJ,CAAC,GACDO,SAAS;YACbR;UACF,CAAC,EACD,OAAOhB,KAAK,CAACP,QAAQ,KAAK,UAAU,GAChCO,KAAK,CAACP,QAAQ,CAAC;YACbsB,IAAI,EAAEE,UAAU,CAACF,IAAI;YACrBC,KAAK,EAAEC,UAAU,CAACD,KAAK;YACvBG,YAAY,EAAEF,UAAU,CAACE;UAC3B,CAAC,CAAC,GACFnB,KAAK,CAACP,QACZ;QACF,CAAC;QACD,OAAAgB,YAAA,CAAAG,SAAA,SAEKR,KAAK,CAACW,IAAI,GACTX,KAAK,CAACW,IAAI,CAACK,SAAS,CAAC,GAAAX,YAAA,CAAA9B,aAAA,EAIfyC,SAAS,CAACpB,KAAK,EADVI,KAAK,CAGjB;MAGP,CAAC,CAAC;IAGZ,CAAC,CAAC;;IAEF;IACA,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YDataTableBody.mjs","names":["defineComponent","mergeProps","useRender","propsFactory","YDataTableRow","useHeader","useSelection","pressYDataTableBodyProps","items","type","Array","default","loading","Boolean","String","loadingText","hideNoData","noDataText","rowProps","Function","Object","rowHeight","Number","YDataTableBody","name","props","emits","setup","_ref","slots","emit","columns","isSelected","toggleSelect","_createVNode","value","length","_Fragment","body","map","item","index","stateProps","raw","internalItem","slotProps","key","onClick","event","undefined","onDblclick","onContextmenu"],"sources":["../../../src/components/table/YDataTableBody.tsx"],"sourcesContent":["import { PropType, defineComponent, mergeProps } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { propsFactory } from '../../util/vue-component';\nimport { YDataTableRow } from './YDataTableRow';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { DataTableItem, RowProps } from './types';\n\nexport const pressYDataTableBodyProps = propsFactory(\n {\n items: {\n type: Array as PropType<readonly DataTableItem[]>,\n default: () => [],\n },\n loading: [Boolean, String],\n loadingText: String,\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '',\n },\n rowProps: [Function, Object] as PropType<RowProps<any>>,\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: any) => void>,\n 'onDblclick:row': Function as PropType<(e: Event, value: any) => void>,\n 'onContextmenu:row': Function as PropType<(e: Event, value: any) => void>,\n },\n 'YDataTableBody',\n);\n\nexport const YDataTableBody = defineComponent({\n name: 'YDataTableBody',\n props: {\n ...pressYDataTableBodyProps(),\n },\n emits: ['click:row'],\n setup(props, { slots, emit }) {\n const { columns } = useHeader();\n const { isSelected, toggleSelect } = useSelection();\n\n useRender(() => {\n if (props.loading) {\n return (\n <tr>\n <td colspan={columns.value.length} class={'y-data-table__loading'}>\n {slots.loading ? slots.loading() : <div>{props.loadingText}</div>}\n </td>\n </tr>\n );\n }\n if (!props.loading && props.items.length < 1 && !props.hideNoData) {\n return (\n <tr key=\"no-data\" class=\"y-data-table__no-data\">\n <td colspan={columns.value.length}>\n {slots['no-data']?.() ?? props.noDataText}\n </td>\n </tr>\n );\n }\n return (\n <>\n {slots.body\n ? slots.body?.(props)\n : props.items.map((item, index) => {\n const stateProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n };\n const slotProps = {\n ...stateProps,\n props: mergeProps(\n {\n key: `item__${item.key ?? item.index}`,\n item,\n onClick: props['onClick:row']\n ? (event: Event) => {\n props['onClick:row']?.(event, { ...stateProps });\n }\n : undefined,\n onDblclick: props['onDblclick:row']\n ? (event: Event) => {\n props['onDblclick:row']?.(event, { ...stateProps });\n }\n : undefined,\n onContextmenu: props['onContextmenu:row']\n ? (event: Event) => {\n props['onContextmenu:row']?.(event, {\n ...stateProps,\n });\n }\n : undefined,\n index,\n },\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: stateProps.item,\n index: stateProps.index,\n internalItem: stateProps.internalItem,\n })\n : props.rowProps,\n ),\n };\n return (\n <>\n {slots.item ? (\n slots.item(slotProps)\n ) : (\n <YDataTableRow\n v-slots={slots}\n {...slotProps.props}\n ></YDataTableRow>\n )}\n </>\n );\n })}\n </>\n );\n });\n\n // end\n return {};\n },\n});\n\nexport type YDataTableBody = InstanceType<typeof YDataTableBody>;\n"],"mappings":";AAAA,SAAmBA,eAAe,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAEnDC,SAAS;AAAA,SACTC,YAAY;AAAA,SACZC,aAAa;AAAA,SACbC,SAAS;AAAA,SACTC,YAAY;AAGrB,OAAO,MAAMC,wBAAwB,GAAGJ,YAAY,CAClD;EACEK,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA2C;IACjDC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;EAC1BC,WAAW,EAAED,MAAM;EACnBE,UAAU,EAAEH,OAAO;EACnBI,UAAU,EAAE;IACVR,IAAI,EAAEK,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDO,QAAQ,EAAE,CAACC,QAAQ,EAAEC,MAAM,CAA4B;EACvDC,SAAS,EAAEC,MAAM;EACjB,aAAa,EAAEH,QAAoD;EACnE,gBAAgB,EAAEA,QAAoD;EACtE,mBAAmB,EAAEA;AACvB,CAAC,EACD,gBACF,CAAC;AAED,OAAO,MAAMI,cAAc,GAAGvB,eAAe,CAAC;EAC5CwB,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAE;IACL,GAAGlB,wBAAwB,CAAC;EAC9B,CAAC;EACDmB,KAAK,EAAE,CAAC,WAAW,CAAC;EACpBC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC1B,MAAM;MAAEG;IAAQ,CAAC,GAAG1B,SAAS,CAAC,CAAC;IAC/B,MAAM;MAAE2B,UAAU;MAAEC;IAAa,CAAC,GAAG3B,YAAY,CAAC,CAAC;IAEnDJ,SAAS,CAAC,MAAM;MACd,IAAIuB,KAAK,CAACb,OAAO,EAAE;QACjB,OAAAsB,YAAA,cAAAA,YAAA;UAAA,WAEiBH,OAAO,CAACI,KAAK,CAACC,MAAM;UAAA,SAAS;QAAuB,IAC9DP,KAAK,CAACjB,OAAO,GAAGiB,KAAK,CAACjB,OAAO,CAAC,CAAC,GAAAsB,YAAA,eAAST,KAAK,CAACV,WAAW,EAAO;MAIzE;MACA,IAAI,CAACU,KAAK,CAACb,OAAO,IAAIa,KAAK,CAACjB,KAAK,CAAC4B,MAAM,GAAG,CAAC,IAAI,CAACX,KAAK,CAACT,UAAU,EAAE;QACjE,OAAAkB,YAAA;UAAA;UAAA;QAAA,IAAAA,YAAA;UAAA,WAEiBH,OAAO,CAACI,KAAK,CAACC;QAAM,IAC9BP,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAIJ,KAAK,CAACR,UAAU;MAIjD;MACA,OAAAiB,YAAA,CAAAG,SAAA,SAEKR,KAAK,CAACS,IAAI,GACPT,KAAK,CAACS,IAAI,GAAGb,KAAK,CAAC,GACnBA,KAAK,CAACjB,KAAK,CAAC+B,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAC/B,MAAMC,UAAU,GAAG;UACjBD,KAAK;UACLD,IAAI,EAAEA,IAAI,CAACG,GAAG;UACdC,YAAY,EAAEJ,IAAI;UAClBT,OAAO,EAAEA,OAAO,CAACI,KAAK;UACtBH,UAAU;UACVC;QACF,CAAC;QACD,MAAMY,SAAS,GAAG;UAChB,GAAGH,UAAU;UACbjB,KAAK,EAAExB,UAAU,CACf;YACE6C,GAAG,EAAG,SAAQN,IAAI,CAACM,GAAG,IAAIN,IAAI,CAACC,KAAM,EAAC;YACtCD,IAAI;YACJO,OAAO,EAAEtB,KAAK,CAAC,aAAa,CAAC,GACxBuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,aAAa,CAAC,GAAGuB,KAAK,EAAE;gBAAE,GAAGN;cAAW,CAAC,CAAC;YAClD,CAAC,GACDO,SAAS;YACbC,UAAU,EAAEzB,KAAK,CAAC,gBAAgB,CAAC,GAC9BuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,gBAAgB,CAAC,GAAGuB,KAAK,EAAE;gBAAE,GAAGN;cAAW,CAAC,CAAC;YACrD,CAAC,GACDO,SAAS;YACbE,aAAa,EAAE1B,KAAK,CAAC,mBAAmB,CAAC,GACpCuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,mBAAmB,CAAC,GAAGuB,KAAK,EAAE;gBAClC,GAAGN;cACL,CAAC,CAAC;YACJ,CAAC,GACDO,SAAS;YACbR;UACF,CAAC,EACD,OAAOhB,KAAK,CAACP,QAAQ,KAAK,UAAU,GAChCO,KAAK,CAACP,QAAQ,CAAC;YACbsB,IAAI,EAAEE,UAAU,CAACF,IAAI;YACrBC,KAAK,EAAEC,UAAU,CAACD,KAAK;YACvBG,YAAY,EAAEF,UAAU,CAACE;UAC3B,CAAC,CAAC,GACFnB,KAAK,CAACP,QACZ;QACF,CAAC;QACD,OAAAgB,YAAA,CAAAG,SAAA,SAEKR,KAAK,CAACW,IAAI,GACTX,KAAK,CAACW,IAAI,CAACK,SAAS,CAAC,GAAAX,YAAA,CAAA9B,aAAA,EAIfyC,SAAS,CAACpB,KAAK,EADVI,KAAK,CAGjB;MAGP,CAAC,CAAC;IAGZ,CAAC,CAAC;;IAEF;IACA,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -33,9 +33,24 @@ export const YDataTableRow = defineComponent({
33
33
  const {
34
34
  columns
35
35
  } = useHeader();
36
+ const selected = computed(() => props.item && isSelected(props.item));
37
+ function arrayClasses(classes) {
38
+ const ret = [];
39
+ if (typeof classes === 'string') {
40
+ ret.push(classes);
41
+ }
42
+ if (Array.isArray(classes)) {
43
+ classes.forEach(c => {
44
+ if (typeof c === 'string') ret.push(c);
45
+ });
46
+ }
47
+ return ret;
48
+ }
36
49
  useRender(() => {
37
50
  return _createVNode("tr", {
38
- "class": ['y-data-table__row'],
51
+ "class": ['y-data-table__row', {
52
+ 'y-data-table__row--selected': selected.value
53
+ }],
39
54
  "onClick": props.onClick,
40
55
  "onContextmenu": props.onContextmenu,
41
56
  "onDblclick": props.onDblclick
@@ -47,9 +62,21 @@ export const YDataTableRow = defineComponent({
47
62
  internalItem: props.item,
48
63
  columns: columns.value,
49
64
  value: getPropertyFromItem(item.columns, column.key),
50
- selected: computed(() => isSelected(item)).value,
65
+ selected: selected.value,
51
66
  toggleSelect
52
67
  };
68
+ const classes = computed(() => {
69
+ const ret = [];
70
+ if (typeof column.classes === 'function') {
71
+ const result = column.classes.call(null, slotProps.item, slotProps.index, column);
72
+ if (result) {
73
+ ret.push(...arrayClasses(result));
74
+ }
75
+ } else if (column.classes) {
76
+ ret.push(...arrayClasses(column.classes));
77
+ }
78
+ return ret;
79
+ });
53
80
  const cellProps = typeof props.cellProps === 'function' ? props.cellProps({
54
81
  index: slotProps.index,
55
82
  column,
@@ -66,7 +93,7 @@ export const YDataTableRow = defineComponent({
66
93
  "maxWidth": column.maxWidth,
67
94
  "class": ['y-data-table-data', {
68
95
  'y-data-table-data--select': column.key === 'data-table-select'
69
- }]
96
+ }, ...classes.value]
70
97
  }, cellProps), {
71
98
  default: () => {
72
99
  const slotName = `item.${column.key}`;
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableRow.mjs","names":["computed","defineComponent","useRender","getPropertyFromItem","propsFactory","YIconCheckbox","YDataTableCell","useHeader","useSelection","pressYDataTableRowProps","index","Number","onClick","Function","onContextmenu","onDblclick","onHover","YDataTableRow","name","props","item","Object","cellProps","setup","_ref","emit","slots","isSelected","toggleSelect","columns","_createVNode","value","map","column","colIndex","slotProps","raw","internalItem","key","selected","_mergeProps","align","fixed","lastFixed","undefined","fixedOffset","width","maxWidth","default","slotName","selectable","e","stopPropagation"],"sources":["../../../src/components/table/YDataTableRow.tsx"],"sourcesContent":["import { PropType, computed, defineComponent, ref } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { getPropertyFromItem } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YIconCheckbox } from '../icons';\nimport { YDataTableCell } from './YDataTableCell';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { CellProps, DataTableItem } from './types';\n\nexport const pressYDataTableRowProps = propsFactory(\n {\n index: Number as PropType<number>,\n onClick: Function as PropType<(...args: any[]) => void>,\n onContextmenu: Function as PropType<(...args: any[]) => void>,\n onDblclick: Function as PropType<(...args: any[]) => void>,\n onHover: Function as PropType<(...args: any[]) => void>,\n },\n 'YDataTableRow',\n);\n\nexport const YDataTableRow = defineComponent({\n name: 'YDataTableRow',\n props: {\n item: Object as PropType<DataTableItem>,\n cellProps: [Object, Function] as PropType<CellProps>,\n ...pressYDataTableRowProps(),\n },\n setup(props, { emit, slots }) {\n const { isSelected, toggleSelect } = useSelection();\n const { columns } = useHeader();\n\n useRender(() => {\n return (\n <tr\n class={['y-data-table__row']}\n onClick={props.onClick as any}\n onContextmenu={props.onContextmenu as any}\n onDblclick={props.onDblclick as any}\n >\n {props.item &&\n columns.value.map((column, colIndex) => {\n const item = props.item!;\n const slotProps = {\n index: props.index!,\n item: props.item!.raw,\n internalItem: props.item!,\n columns: columns.value,\n value: getPropertyFromItem(item.columns, column.key),\n selected: computed(() => isSelected(item)).value,\n toggleSelect,\n };\n\n const cellProps =\n typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n column,\n internalItem: slotProps.internalItem,\n item: slotProps.item,\n value: slotProps.value,\n selected: slotProps.selected,\n })\n : props.cellProps;\n\n return (\n <YDataTableCell\n align={column.align}\n fixed={\n column.fixed\n ? column.lastFixed\n ? 'last'\n : 'lead'\n : undefined\n }\n fixedOffset={column.fixedOffset}\n width={column.width}\n maxWidth={column.maxWidth}\n class={[\n 'y-data-table-data',\n {\n 'y-data-table-data--select':\n column.key === 'data-table-select',\n },\n ]}\n {...cellProps}\n >\n {{\n default: () => {\n const slotName = `item.${column.key}`;\n\n if (slots[slotName]) {\n return slots[slotName]?.(slotProps);\n }\n\n if (column.key === 'data-table-select') {\n return (\n slots['item.data-table-select']?.(slotProps) ?? (\n <YIconCheckbox\n checked={isSelected(item)}\n disabled={!item.selectable}\n {...{\n onClick: (e: MouseEvent) => {\n e.stopPropagation();\n toggleSelect(item);\n },\n }}\n ></YIconCheckbox>\n )\n );\n }\n\n return slotProps.value;\n },\n }}\n </YDataTableCell>\n );\n })}\n </tr>\n );\n });\n },\n});\n\nexport type YDataTableRow = InstanceType<typeof YDataTableRow>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDataTableRow.mjs","names":["computed","defineComponent","useRender","getPropertyFromItem","propsFactory","YIconCheckbox","YDataTableCell","useHeader","useSelection","pressYDataTableRowProps","index","Number","onClick","Function","onContextmenu","onDblclick","onHover","YDataTableRow","name","props","item","Object","cellProps","setup","_ref","emit","slots","isSelected","toggleSelect","columns","selected","arrayClasses","classes","ret","push","Array","isArray","forEach","c","_createVNode","value","map","column","colIndex","slotProps","raw","internalItem","key","result","call","_mergeProps","align","fixed","lastFixed","undefined","fixedOffset","width","maxWidth","default","slotName","selectable","e","stopPropagation"],"sources":["../../../src/components/table/YDataTableRow.tsx"],"sourcesContent":["import { PropType, computed, defineComponent, ref } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { getPropertyFromItem } from '../../util/common';\nimport { bindClasses, propsFactory } from '../../util/vue-component';\nimport { YIconCheckbox } from '../icons';\nimport { YDataTableCell } from './YDataTableCell';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { CellProps, DataTableItem } from './types';\n\nexport const pressYDataTableRowProps = propsFactory(\n {\n index: Number as PropType<number>,\n onClick: Function as PropType<(...args: any[]) => void>,\n onContextmenu: Function as PropType<(...args: any[]) => void>,\n onDblclick: Function as PropType<(...args: any[]) => void>,\n onHover: Function as PropType<(...args: any[]) => void>,\n },\n 'YDataTableRow',\n);\n\nexport const YDataTableRow = defineComponent({\n name: 'YDataTableRow',\n props: {\n item: Object as PropType<DataTableItem>,\n cellProps: [Object, Function] as PropType<CellProps>,\n ...pressYDataTableRowProps(),\n },\n setup(props, { emit, slots }) {\n const { isSelected, toggleSelect } = useSelection();\n const { columns } = useHeader();\n\n const selected = computed(() => props.item && isSelected(props.item));\n\n function arrayClasses(classes: string | string[]) {\n const ret: string[] = [];\n if (typeof classes === 'string') {\n ret.push(classes);\n }\n if (Array.isArray(classes)) {\n classes.forEach((c) => {\n if (typeof c === 'string') ret.push(c);\n });\n }\n return ret;\n }\n\n useRender(() => {\n return (\n <tr\n class={[\n 'y-data-table__row',\n { 'y-data-table__row--selected': selected.value },\n ]}\n onClick={props.onClick as any}\n onContextmenu={props.onContextmenu as any}\n onDblclick={props.onDblclick as any}\n >\n {props.item &&\n columns.value.map((column, colIndex) => {\n const item = props.item!;\n const slotProps = {\n index: props.index!,\n item: props.item!.raw,\n internalItem: props.item!,\n columns: columns.value,\n value: getPropertyFromItem(item.columns, column.key),\n selected: selected.value,\n toggleSelect,\n };\n\n const classes = computed(() => {\n const ret: string[] = [];\n if (typeof column.classes === 'function') {\n const result = column.classes.call(\n null,\n slotProps.item,\n slotProps.index,\n column,\n );\n if (result) {\n ret.push(...arrayClasses(result));\n }\n } else if (column.classes) {\n ret.push(...arrayClasses(column.classes));\n }\n\n return ret;\n });\n\n const cellProps =\n typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n column,\n internalItem: slotProps.internalItem,\n item: slotProps.item,\n value: slotProps.value,\n selected: slotProps.selected,\n })\n : props.cellProps;\n\n return (\n <YDataTableCell\n align={column.align}\n fixed={\n column.fixed\n ? column.lastFixed\n ? 'last'\n : 'lead'\n : undefined\n }\n fixedOffset={column.fixedOffset}\n width={column.width}\n maxWidth={column.maxWidth}\n class={[\n 'y-data-table-data',\n {\n 'y-data-table-data--select':\n column.key === 'data-table-select',\n },\n ...classes.value,\n ]}\n {...cellProps}\n >\n {{\n default: () => {\n const slotName = `item.${column.key}`;\n\n if (slots[slotName]) {\n return slots[slotName]?.(slotProps);\n }\n\n if (column.key === 'data-table-select') {\n return (\n slots['item.data-table-select']?.(slotProps) ?? (\n <YIconCheckbox\n checked={isSelected(item)}\n disabled={!item.selectable}\n {...{\n onClick: (e: MouseEvent) => {\n e.stopPropagation();\n toggleSelect(item);\n },\n }}\n ></YIconCheckbox>\n )\n );\n }\n\n return slotProps.value;\n },\n }}\n </YDataTableCell>\n );\n })}\n </tr>\n );\n });\n },\n});\n\nexport type YDataTableRow = InstanceType<typeof YDataTableRow>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"header.mjs","names":["inject","provide","ref","watchEffect","getRangeArr","propsFactory","pressDataTableHeader","headers","type","Array","default","Y_DATA_TABLE_HEADER_KEY","Symbol","for","createHeader","props","options","columns","rows","length","isArray","flat","flatMap","row","index","map","column","rowIndex","rowCount","defaultHeader","text","sortable","defaultActionHeader","width","enableSelect","value","foundIndex","findIndex","_ref","key","unshift","rowspan","splice","fixedRows","fixedOffsets","fill","forEach","_ref2","i","push","fixedOffset","Number","fixed","lastFixed","seen","Set","filtered","has","add","at","data","useHeader","Error","description"],"sources":["../../../../src/components/table/composibles/header.ts"],"sourcesContent":["import {\n DeepReadonly,\n InjectionKey,\n PropType,\n Ref,\n inject,\n provide,\n ref,\n watchEffect,\n} from 'vue';\n\nimport { getRangeArr } from '../../../util/common';\nimport { propsFactory } from '../../../util/vue-component';\nimport { DataTableHeader, InternalDataTableHeader } from '../types';\n\nexport const pressDataTableHeader = propsFactory(\n {\n headers: {\n type: Array as PropType<DataTableHeader[] | DataTableHeader[][]>,\n default: () => [],\n },\n },\n 'YDataTable--header',\n);\n\nexport const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>;\n columns: Ref<InternalDataTableHeader[]>;\n}> = Symbol.for('yuyeon.data-table.header');\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[] | DataTableHeader[][]>;\n};\n\nexport function createHeader(\n props: HeaderProps,\n options?: {\n enableSelect?: Ref<boolean>;\n },\n) {\n const headers = ref<InternalDataTableHeader[][]>([]);\n const columns = ref<InternalDataTableHeader[]>([]);\n\n watchEffect(() => {\n const rows =\n props.headers.length > 0\n ? Array.isArray(props.headers[0])\n ? (props.headers as DataTableHeader[][])\n : [props.headers as DataTableHeader[]]\n : [];\n const flat = rows.flatMap((row, index) =>\n row.map((column) => ({ column, rowIndex: index })),\n );\n const rowCount = rows.length;\n const defaultHeader = { text: '', sortable: false };\n const defaultActionHeader = { ...defaultHeader, width: 48 };\n\n if (options?.enableSelect?.value) {\n const foundIndex = flat.findIndex(\n ({ column }) => column.key === 'data-table-select',\n );\n if (foundIndex < 0) {\n flat.unshift({\n column: {\n ...defaultActionHeader,\n key: 'data-table-select',\n rowspan: rowCount,\n },\n rowIndex: 0,\n });\n } else {\n flat.splice(foundIndex, 1, {\n column: {\n ...defaultActionHeader,\n ...flat[foundIndex].column,\n },\n rowIndex: flat[foundIndex].rowIndex,\n });\n }\n }\n\n const fixedRows: InternalDataTableHeader[][] = getRangeArr(rowCount).map(\n () => [],\n );\n const fixedOffsets = getRangeArr(rowCount).fill(0);\n\n flat.forEach(({ column, rowIndex }) => {\n const { key } = column;\n for (\n let i = rowIndex;\n i <= rowIndex + (column.rowspan ?? 1) - 1;\n i += 1\n ) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!key,\n });\n fixedOffsets[i] += Number(column.width ?? 0);\n }\n });\n\n fixedRows.forEach((row) => {\n for (let i = row.length; (i -= 1); i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true;\n return;\n }\n }\n });\n\n const seen = new Set();\n headers.value = fixedRows.map((row) => {\n const filtered = [];\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key);\n filtered.push(column);\n }\n }\n return filtered;\n });\n\n columns.value = fixedRows.at(-1) ?? [];\n });\n\n const data = { headers, columns };\n\n provide(Y_DATA_TABLE_HEADER_KEY, data);\n\n return data;\n}\n\nexport function useHeader() {\n const data = inject(Y_DATA_TABLE_HEADER_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_HEADER_KEY.description}`);\n }\n return data;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"header.mjs","names":["inject","provide","ref","watchEffect","getRangeArr","propsFactory","pressDataTableHeader","headers","type","Array","default","Y_DATA_TABLE_HEADER_KEY","Symbol","for","createHeader","props","options","columns","rows","length","isArray","flat","flatMap","row","index","map","column","rowIndex","rowCount","defaultHeader","text","sortable","defaultActionHeader","width","enableSelect","value","foundIndex","findIndex","_ref","key","unshift","rowspan","splice","fixedRows","fixedOffsets","fill","forEach","_ref2","i","push","fixedOffset","Number","fixed","lastFixed","seen","Set","filtered","has","add","at","data","useHeader","Error","description"],"sources":["../../../../src/components/table/composibles/header.ts"],"sourcesContent":["import {\n DeepReadonly,\n InjectionKey,\n PropType,\n Ref,\n inject,\n provide,\n ref,\n watchEffect,\n} from 'vue';\n\nimport { getRangeArr } from '../../../util/common';\nimport { propsFactory } from '../../../util/vue-component';\nimport { DataTableHeader, InternalDataTableHeader } from '../types';\n\nexport const pressDataTableHeader = propsFactory(\n {\n headers: {\n type: Array as PropType<(DataTableHeader[] | DataTableHeader[][])>,\n default: () => [],\n },\n },\n 'YDataTable--header',\n);\n\nexport const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>;\n columns: Ref<InternalDataTableHeader[]>;\n}> = Symbol.for('yuyeon.data-table.header');\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[] | DataTableHeader[][]>;\n};\n\nexport function createHeader(\n props: HeaderProps,\n options?: {\n enableSelect?: Ref<boolean>;\n },\n) {\n const headers = ref<InternalDataTableHeader[][]>([]);\n const columns = ref<InternalDataTableHeader[]>([]);\n\n watchEffect(() => {\n const rows =\n props.headers.length > 0\n ? Array.isArray(props.headers[0])\n ? (props.headers as DataTableHeader[][])\n : [props.headers as DataTableHeader[]]\n : [];\n const flat = rows.flatMap((row, index) =>\n row.map((column) => ({ column, rowIndex: index })),\n );\n const rowCount = rows.length;\n const defaultHeader = { text: '', sortable: false };\n const defaultActionHeader = { ...defaultHeader, width: 48 };\n\n if (options?.enableSelect?.value) {\n const foundIndex = flat.findIndex(\n ({ column }) => column.key === 'data-table-select',\n );\n if (foundIndex < 0) {\n flat.unshift({\n column: {\n ...defaultActionHeader,\n key: 'data-table-select',\n rowspan: rowCount,\n },\n rowIndex: 0,\n });\n } else {\n flat.splice(foundIndex, 1, {\n column: {\n ...defaultActionHeader,\n ...flat[foundIndex].column,\n },\n rowIndex: flat[foundIndex].rowIndex,\n });\n }\n }\n\n const fixedRows: InternalDataTableHeader[][] = getRangeArr(rowCount).map(\n () => [],\n );\n const fixedOffsets = getRangeArr(rowCount).fill(0);\n\n flat.forEach(({ column, rowIndex }) => {\n const { key } = column;\n for (\n let i = rowIndex;\n i <= rowIndex + (column.rowspan ?? 1) - 1;\n i += 1\n ) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!key,\n });\n fixedOffsets[i] += Number(column.width ?? 0);\n }\n });\n\n fixedRows.forEach((row) => {\n for (let i = row.length; (i -= 1); i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true;\n return;\n }\n }\n });\n\n const seen = new Set();\n headers.value = fixedRows.map((row) => {\n const filtered = [];\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key);\n filtered.push(column);\n }\n }\n return filtered;\n });\n\n columns.value = fixedRows.at(-1) ?? [];\n });\n\n const data = { headers, columns };\n\n provide(Y_DATA_TABLE_HEADER_KEY, data);\n\n return data;\n}\n\nexport function useHeader() {\n const data = inject(Y_DATA_TABLE_HEADER_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_HEADER_KEY.description}`);\n }\n return data;\n}\n"],"mappings":"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"}
@@ -17,7 +17,8 @@ export const pressDataTableItemsProps = propsFactory({
17
17
  returnItem: Boolean
18
18
  }, 'YDataTable--items');
19
19
  export function updateItem(props, item, index, columns) {
20
- const value = props.returnItem ? item : getPropertyFromItem(item, props.itemKey);
20
+ const key = getPropertyFromItem(item, props.itemKey);
21
+ const value = props.returnItem ? item : key;
21
22
  const selectable = getPropertyFromItem(item, props.itemSelectable, true);
22
23
  const itemColumns = columns.reduce((acc, column) => {
23
24
  acc[column.key] = getPropertyFromItem(item, column.value ?? column.key);
@@ -25,6 +26,7 @@ export function updateItem(props, item, index, columns) {
25
26
  }, {});
26
27
  return {
27
28
  index,
29
+ key,
28
30
  value,
29
31
  selectable,
30
32
  columns: itemColumns,