yuyeon 0.2.3-rc.9 → 0.3.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +2849 -2720
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/components/button/YButton.mjs +1 -0
  5. package/lib/components/button/YButton.mjs.map +1 -1
  6. package/lib/components/button/YButton.scss +9 -0
  7. package/lib/components/date-picker/YDatePicker.mjs +6 -2
  8. package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
  9. package/lib/components/dialog/YDialog.mjs +2 -1
  10. package/lib/components/dialog/YDialog.mjs.map +1 -1
  11. package/lib/components/dropdown/YDropdown.mjs +9 -3
  12. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  13. package/lib/components/field-input/YFieldInput.mjs +5 -2
  14. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  15. package/lib/components/index.mjs +1 -0
  16. package/lib/components/index.mjs.map +1 -1
  17. package/lib/components/input/YInput.mjs +4 -1
  18. package/lib/components/input/YInput.mjs.map +1 -1
  19. package/lib/components/layer/YLayer.mjs.map +1 -1
  20. package/lib/components/progress-bar/YProgressBar.mjs +1 -1
  21. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  22. package/lib/components/progress-ring/YProgressRing.mjs +128 -0
  23. package/lib/components/progress-ring/YProgressRing.mjs.map +1 -0
  24. package/lib/components/progress-ring/YProgressRing.scss +38 -0
  25. package/lib/components/progress-ring/index.mjs +2 -0
  26. package/lib/components/progress-ring/index.mjs.map +1 -0
  27. package/lib/components/select/YSelect.mjs +97 -106
  28. package/lib/components/select/YSelect.mjs.map +1 -1
  29. package/lib/components/switch/YSwitch.mjs.map +1 -1
  30. package/lib/components/switch/YSwitch.scss +211 -211
  31. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  32. package/lib/components/table/YDataTableCell.mjs +8 -4
  33. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  34. package/lib/components/table/YDataTableHead.mjs +23 -11
  35. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  36. package/lib/components/table/YDataTableRow.mjs +14 -8
  37. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  38. package/lib/components/table/YDataTableServer.mjs.map +1 -1
  39. package/lib/components/table/YTable.mjs +0 -2
  40. package/lib/components/table/YTable.mjs.map +1 -1
  41. package/lib/components/table/composibles/header.mjs +14 -4
  42. package/lib/components/table/composibles/header.mjs.map +1 -1
  43. package/lib/components/table/composibles/measure.mjs +25 -21
  44. package/lib/components/table/composibles/measure.mjs.map +1 -1
  45. package/lib/components/table/types/header.mjs.map +1 -1
  46. package/lib/components/table/types/index.mjs.map +1 -1
  47. package/lib/components/tooltip/YTooltip.mjs +2 -2
  48. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  49. package/lib/composables/layer-group.mjs +0 -6
  50. package/lib/composables/layer-group.mjs.map +1 -1
  51. package/lib/composables/progress.mjs +2 -1
  52. package/lib/composables/progress.mjs.map +1 -1
  53. package/lib/directives/plate-wave/index.mjs +2 -2
  54. package/lib/directives/plate-wave/index.mjs.map +1 -1
  55. package/lib/i18n/built-in.mjs.map +1 -1
  56. package/lib/index.mjs.map +1 -1
  57. package/lib/util/component/component.mjs.map +1 -1
  58. package/package.json +120 -120
  59. package/types/components/checkbox/YInputCheckbox.d.ts +2 -2
  60. package/types/components/dialog/YDialog.d.ts +8 -7
  61. package/types/components/dropdown/YDropdown.d.ts +11 -11
  62. package/types/components/field-input/YFieldInput.d.ts +1 -1
  63. package/types/components/icons/YIconCheckbox.d.ts +1 -1
  64. package/types/components/icons/YIconPageControl.d.ts +1 -1
  65. package/types/components/icons/YIconSort.d.ts +1 -1
  66. package/types/components/icons/index.d.ts +5 -5
  67. package/types/components/index.d.ts +1 -0
  68. package/types/components/layer/YLayer.d.ts +5 -5
  69. package/types/components/menu/YMenu.d.ts +4 -4
  70. package/types/components/progress-bar/YProgressBar.d.ts +1 -1
  71. package/types/components/progress-ring/YProgressRing.d.ts +34 -0
  72. package/types/components/progress-ring/index.d.ts +1 -0
  73. package/types/components/snackbar/YSnackbar.d.ts +3 -3
  74. package/types/components/table/YDataTable.d.ts +7 -7
  75. package/types/components/table/YDataTableCell.d.ts +5 -1
  76. package/types/components/table/YDataTableServer.d.ts +7 -7
  77. package/types/components/table/composibles/header.d.ts +14 -10
  78. package/types/components/table/composibles/measure.d.ts +5 -5
  79. package/types/components/table/types/header.d.ts +2 -1
  80. package/types/components/table/types/index.d.ts +1 -0
  81. package/types/components/text-highlighter/YTextHighlighter.d.ts +1 -1
  82. package/types/composables/coordinate/index.d.ts +4 -4
  83. package/types/shims.d.ts +56 -55
  84. package/types/util/anchor.d.ts +1 -1
  85. package/types/util/component/component.d.ts +3 -2
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
2
  import { computed, mergeProps, nextTick, onMounted, ref, shallowRef, vShow, watch, withDirectives } from 'vue';
3
3
  import { useModelDuplex } from "../../composables/communication.mjs";
4
4
  import { useRender } from "../../composables/component.mjs";
@@ -17,6 +17,7 @@ import { YMenu } from "../menu/index.mjs";
17
17
  import "./YSelect.scss";
18
18
  export const pressSelectPropsOptions = propsFactory({
19
19
  opened: Boolean,
20
+ closeOnBlur: Boolean,
20
21
  multiple: Boolean,
21
22
  itemComparator: {
22
23
  type: Function,
@@ -135,7 +136,7 @@ export const YSelect = defineComponent({
135
136
  if (contentEl?.contains(document.activeElement)) {
136
137
  return;
137
138
  }
138
- if (opened.value) {
139
+ if (opened.value && props.closeOnBlur) {
139
140
  opened.value = false;
140
141
  }
141
142
  });
@@ -218,115 +219,105 @@ export const YSelect = defineComponent({
218
219
  useRender(() => {
219
220
  const fieldInputProps = chooseProps(props, YFieldInput.props);
220
221
  const dropdownIconProps = chooseProps(typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {}, YIcon.props);
221
- return _createVNode(YMenu, _mergeProps({
222
- "ref": menuRef,
223
- "offset": props.offset,
224
- "position": props.position,
225
- "align": props.align,
226
- "origin": props.origin,
227
- "content-classes": ['y-select__content'],
228
- "maxHeight": props.maxHeight,
229
- "open-on-click-base": false,
230
- "onAfterLeave": onAfterLeave,
231
- "open-delay": props.openDelay,
232
- "close-delay": props.closeDelay,
233
- "closeCondition": closeCondition
234
- }, extraMenuProps.value, {
235
- "modelValue": opened.value,
236
- "onUpdate:modelValue": $event => opened.value = $event
222
+ return _createVNode(YFieldInput, _mergeProps({
223
+ "ref": fieldInputRef
224
+ }, fieldInputProps, {
225
+ "modelValue": model.value.map(v => v.props.value).join(', '),
226
+ "validationValue": model.rxValue,
227
+ "onMousedown:display": onMousedownDisplay,
228
+ "onKeydown:display": onKeydownDisplay,
229
+ "onBlur": onBlur,
230
+ "readonly": true,
231
+ "class": ['y-select', {
232
+ 'y-select--opened': opened.value,
233
+ 'y-select--selected': selected.value.length > 0
234
+ }]
235
+ }, attrs, {
236
+ "focused": focused.value
237
237
  }), {
238
- base: function () {
238
+ default: () => {
239
+ const selectionProps = {
240
+ items: selections.value.map(item => item.raw),
241
+ displayText: displayText.value,
242
+ placeholder: props.placeholder,
243
+ internalItems: selections.value
244
+ };
245
+ return _createVNode(_Fragment, null, [_createVNode("div", {
246
+ "class": ['y-select__selection']
247
+ }, [slots.selection ? slots.selection?.(selectionProps) : selected.value.length > 0 ? displayText.value : props.placeholder]), _createVNode(YMenu, _mergeProps({
248
+ "ref": menuRef,
249
+ "offset": props.offset,
250
+ "position": props.position,
251
+ "align": props.align,
252
+ "origin": props.origin,
253
+ "content-classes": ['y-select__content'],
254
+ "maxHeight": props.maxHeight,
255
+ "open-on-click-base": false,
256
+ "onAfterLeave": onAfterLeave,
257
+ "open-delay": props.openDelay,
258
+ "close-delay": props.closeDelay,
259
+ "closeCondition": closeCondition,
260
+ "base": "parent"
261
+ }, extraMenuProps.value, {
262
+ "modelValue": opened.value,
263
+ "onUpdate:modelValue": $event => opened.value = $event
264
+ }), {
265
+ default: slots.menu ? () => slots.menu() : () => _createVNode(YCard, {
266
+ "ref": cardRef
267
+ }, {
268
+ default: () => [slots['menu-prepend']?.(), items.value.length > 0 ? _createVNode(YList, {
269
+ "ref": listRef
270
+ }, {
271
+ default: () => [items.value.map(item => {
272
+ const itemProps = {
273
+ item,
274
+ selected: isSelected(item),
275
+ select: () => {
276
+ select(item);
277
+ }
278
+ };
279
+ return withDirectives(_createVNode(YListItem, {
280
+ "onClick": e => onClickItem(item, e),
281
+ "class": [{
282
+ 'y-list-item--active': isSelected(item)
283
+ }],
284
+ "disabled": item.disabled
285
+ }, {
286
+ default: () => slots.item ? slots.item?.(itemProps) : item.text,
287
+ leading: slots['item-leading'] && (() => slots['item-leading']?.(itemProps)),
288
+ trailing: slots['item-trailing'] && (() => slots['item-trailing']?.(itemProps))
289
+ }), [[vShow, !item.hide]]);
290
+ })]
291
+ }) : _createVNode("div", {
292
+ "class": "y-select__no-options"
293
+ }, [t('$yuyeon.noItems')]), slots['menu-append']?.()]
294
+ })
295
+ })]);
296
+ },
297
+ leading: slots.leading ? function () {
239
298
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
240
299
  args[_key] = arguments[_key];
241
300
  }
242
- return slots.base ? slots.base?.(...args) : _createVNode(YFieldInput, _mergeProps({
243
- ...fieldInputProps,
244
- ...mergeProps({
245
- ...args[0].props
246
- }, {
247
- ref: fieldInputRef
248
- })
249
- }, {
250
- "modelValue": model.value.map(v => v.props.value).join(', '),
251
- "validationValue": model.rxValue,
252
- "onMousedown:display": onMousedownDisplay,
253
- "onKeydown:display": onKeydownDisplay,
254
- "onBlur": onBlur,
255
- "readonly": true,
256
- "class": ['y-select', {
257
- 'y-select--opened': opened.value,
258
- 'y-select--selected': selected.value.length > 0
259
- }]
260
- }, attrs, {
261
- "focused": focused.value
262
- }), {
263
- default: () => {
264
- const selectionProps = {
265
- items: selections.value.map(item => item.raw),
266
- displayText: displayText.value,
267
- placeholder: props.placeholder,
268
- internalItems: selections.value
269
- };
270
- return _createVNode("div", {
271
- "class": ['y-select__selection']
272
- }, [slots.selection ? slots.selection?.(selectionProps) : selected.value.length > 0 ? displayText.value : props.placeholder]);
273
- },
274
- leading: slots.leading ? function () {
275
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
276
- args[_key2] = arguments[_key2];
277
- }
278
- return slots.leading?.(...args);
279
- } : undefined,
280
- trailing: function () {
281
- return slots['dropdown-icon'] ? slots['dropdown-icon']() : _createVNode(YIcon, _mergeProps(mergeProps(dropdownIconProps), {
282
- "icon": props.dropdownIcon,
283
- "class": ['y-select__icon']
284
- }), null);
285
- },
286
- label: slots.label ? function () {
287
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
288
- args[_key3] = arguments[_key3];
289
- }
290
- return slots.label?.(...args);
291
- } : undefined,
292
- 'helper-text': slots['helper-text'] ? function () {
293
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
294
- args[_key4] = arguments[_key4];
295
- }
296
- return slots['helper-text']?.(...args);
297
- } : undefined
298
- });
301
+ return slots.leading?.(...args);
302
+ } : undefined,
303
+ trailing: function () {
304
+ return slots['dropdown-icon'] ? slots['dropdown-icon']() : _createVNode(YIcon, _mergeProps(mergeProps(dropdownIconProps), {
305
+ "icon": props.dropdownIcon,
306
+ "class": ['y-select__icon']
307
+ }), null);
299
308
  },
300
- default: slots.menu ? () => slots.menu() : () => _createVNode(YCard, {
301
- "ref": cardRef
302
- }, {
303
- default: () => [slots['menu-prepend']?.(), items.value.length > 0 ? _createVNode(YList, {
304
- "ref": listRef
305
- }, {
306
- default: () => [items.value.map(item => {
307
- const itemProps = {
308
- item,
309
- selected: isSelected(item),
310
- select: () => {
311
- select(item);
312
- }
313
- };
314
- return withDirectives(_createVNode(YListItem, {
315
- "onClick": e => onClickItem(item, e),
316
- "class": [{
317
- 'y-list-item--active': isSelected(item)
318
- }],
319
- "disabled": item.disabled
320
- }, {
321
- default: () => slots.item ? slots.item?.(itemProps) : item.text,
322
- leading: slots['item-leading'] && (() => slots['item-leading']?.(itemProps)),
323
- trailing: slots['item-trailing'] && (() => slots['item-trailing']?.(itemProps))
324
- }), [[vShow, !item.hide]]);
325
- })]
326
- }) : _createVNode("div", {
327
- "class": "y-select__no-options"
328
- }, [t('$yuyeon.noItems')]), slots['menu-append']?.()]
329
- })
309
+ label: slots.label ? function () {
310
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
311
+ args[_key2] = arguments[_key2];
312
+ }
313
+ return slots.label?.(...args);
314
+ } : undefined,
315
+ 'helper-text': slots['helper-text'] ? function () {
316
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
317
+ args[_key3] = arguments[_key3];
318
+ }
319
+ return slots['helper-text']?.(...args);
320
+ } : undefined
330
321
  });
331
322
  });
332
323
  onMounted(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"YSelect.mjs","names":["computed","mergeProps","nextTick","onMounted","ref","shallowRef","vShow","watch","withDirectives","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","omit","chooseProps","defineComponent","getHtmlElement","propsFactory","getScrollParent","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","pressSelectPropsOptions","opened","Boolean","multiple","itemComparator","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","change","slots","setup","_ref","attrs","expose","emit","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","setOut","v","emitValue","model","selections","ret","found","find","undefined","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onKeydownDisplay","console","log","key","onBlur","requestAnimationFrame","contentEl","layer$","content$","contains","document","activeElement","onClickItem","select","setTimeout","onAfterLeave","closeCondition","target","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","length","listEl","activeEl","querySelector","scrollEl","isSameNode","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","offset","align","origin","$event","base","_len","arguments","args","_key","rxValue","selectionProps","raw","placeholder","internalItems","leading","_len2","_key2","trailing","label","_len3","_key3","_len4","_key4","menu","itemProps","hide","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import {\n type PropType,\n type SlotsType,\n computed,\n mergeProps,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} 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, omit } from '@/util/common';\nimport {\n chooseProps,\n defineComponent,\n getHtmlElement,\n propsFactory,\n} from '@/util/component';\nimport { getScrollParent } from '@/util/scroll';\n\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 ItemComparator = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n itemComparator: {\n type: Function as PropType<ItemComparator>,\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 change: (value: any) => 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, emit }) {\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 setOut = (v: any) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n };\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n setOut,\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.itemComparator(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) return;\n opened.value = !opened.value;\n }\n\n function onKeydownDisplay(event: KeyboardEvent) {\n console.log(event);\n if (props.disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n opened.value = !opened.value;\n }\n }\n\n function onBlur(event: FocusEvent) {\n requestAnimationFrame(() => {\n const contentEl = (menuRef.value as any)?.layer$?.content$;\n if (contentEl?.contains(document.activeElement)) {\n return;\n }\n if (opened.value) {\n opened.value = false;\n }\n });\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n if (item.disabled) return;\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 let value;\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n value = neo;\n }\n } else {\n value = [item];\n }\n model.value = value;\n emit('change', setOut(value));\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$\n ?.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 onKeydown:display={onKeydownDisplay}\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 withDirectives(\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={[\n {\n 'y-list-item--active': isSelected(item),\n },\n ]}\n disabled={item.disabled}\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 [[vShow, !item.hide]],\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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"}
1
+ {"version":3,"file":"YSelect.mjs","names":["computed","mergeProps","nextTick","onMounted","ref","shallowRef","vShow","watch","withDirectives","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","omit","chooseProps","defineComponent","getHtmlElement","propsFactory","getScrollParent","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","pressSelectPropsOptions","opened","Boolean","closeOnBlur","multiple","itemComparator","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","change","slots","setup","_ref","attrs","expose","emit","fieldInputRef","menuRef","listRef","cardRef","focused","items","toRefineItems","toEmitItems","t","setOut","v","emitValue","model","selections","ret","found","find","undefined","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onKeydownDisplay","console","log","key","onBlur","requestAnimationFrame","contentEl","layer$","content$","contains","document","activeElement","onClickItem","select","setTimeout","onAfterLeave","closeCondition","target","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","scrollToActiveItem","length","listEl","activeEl","querySelector","scrollEl","isSameNode","scrollTo","top","offsetTop","behavior","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","rxValue","selectionProps","raw","placeholder","internalItems","_Fragment","offset","align","origin","$event","menu","itemProps","leading","trailing","hide","_len","arguments","args","_key","label","_len2","_key2","_len3","_key3","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n type SlotsType,\r\n computed,\r\n mergeProps,\r\n nextTick,\r\n onMounted,\r\n ref,\r\n shallowRef,\r\n vShow,\r\n watch,\r\n withDirectives,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { pressCoordinateProps } from '@/composables/coordinate';\r\nimport { useI18n } from '@/composables/i18n';\r\nimport {\r\n ListItem,\r\n pressListItemsPropsOptions,\r\n useItems,\r\n} from '@/composables/list-items';\r\nimport { wrapInArray } from '@/util/array';\r\nimport { deepEqual, omit } from '@/util/common';\r\nimport {\r\n chooseProps,\r\n defineComponent,\r\n getHtmlElement,\r\n propsFactory,\r\n} from '@/util/component';\r\nimport { getScrollParent } from '@/util/scroll';\r\n\r\nimport { YCard } from '../card';\r\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\r\nimport { YIcon, YIconIconProp } from '../icon';\r\nimport { YList, YListItem } from '../list';\r\nimport { YMenu } from '../menu';\r\n\r\nimport './YSelect.scss';\r\n\r\nexport type ItemComparator = (\r\n optionsItem: any,\r\n valueItem: any,\r\n valueKey?: string,\r\n) => boolean;\r\n\r\nexport const pressSelectPropsOptions = propsFactory(\r\n {\r\n opened: Boolean as PropType<boolean>,\r\n closeOnBlur: Boolean as PropType<boolean>,\r\n multiple: Boolean,\r\n itemComparator: {\r\n type: Function as PropType<ItemComparator>,\r\n default: deepEqual,\r\n },\r\n defaultSelect: Boolean,\r\n menuProps: {\r\n type: Object as PropType<YMenu['$props']>,\r\n },\r\n ...pressListItemsPropsOptions(),\r\n },\r\n 'Select',\r\n);\r\n\r\nexport const pressYSelectPropsOptions = propsFactory(\r\n {\r\n maxHeight: {\r\n type: [Number, String],\r\n default: 310,\r\n },\r\n dropdownIcon: {\r\n type: [String, Array, Object] as PropType<YIconIconProp>,\r\n default: '$dropdown',\r\n },\r\n openDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n closeDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n ...pressSelectPropsOptions(),\r\n ...pressYFieldInputPropsOptions(),\r\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\r\n 'coordinateStrategy',\r\n ]),\r\n },\r\n 'YSelect',\r\n);\r\n\r\nexport const YSelect = defineComponent({\r\n name: 'YSelect',\r\n inheritAttrs: false,\r\n props: {\r\n ...pressYSelectPropsOptions(),\r\n },\r\n emits: {\r\n 'update:modelValue': (value: any) => true,\r\n 'update:opened': (opened: boolean) => true,\r\n 'click:item': (item: any, e: MouseEvent) => true,\r\n change: (value: any) => true,\r\n },\r\n slots: Object as SlotsType<{\r\n base: any;\r\n selection: {\r\n displayText: string;\r\n placeholder: undefined | string;\r\n items: any[];\r\n internalItems: ListItem[];\r\n };\r\n leading: any;\r\n label: any;\r\n 'helper-text': any;\r\n menu: any;\r\n 'menu-prepend': any;\r\n 'menu-append': any;\r\n 'dropdown-icon': any;\r\n item: { item: any; selected: boolean; select: () => void };\r\n 'item-leading': { item: any; selected: boolean; select: () => void };\r\n 'item-trailing': { item: any; selected: boolean; select: () => void };\r\n }>,\r\n setup(props, { slots, attrs, expose, emit }) {\r\n const fieldInputRef = ref();\r\n const menuRef = ref<InstanceType<typeof YMenu>>();\r\n const listRef = ref<InstanceType<typeof YList>>();\r\n const cardRef = ref<any>();\r\n\r\n const opened = useModelDuplex(props, 'opened');\r\n const focused = shallowRef(false);\r\n\r\n const { items, toRefineItems, toEmitItems } = useItems(props);\r\n const { t } = useI18n();\r\n const setOut = (v: any) => {\r\n const emitValue = toEmitItems(wrapInArray(v));\r\n return props.multiple ? emitValue : emitValue[0] ?? null;\r\n };\r\n const model = useModelDuplex(\r\n props,\r\n 'modelValue',\r\n [],\r\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\r\n setOut,\r\n );\r\n\r\n const selections = computed<ListItem[]>(() => {\r\n const ret: ListItem<any>[] = [];\r\n for (const v of model.value) {\r\n const found = items.value.find((item) => {\r\n return props.itemComparator(item.value, v.value);\r\n });\r\n if (found !== undefined) {\r\n ret.push(found);\r\n }\r\n }\r\n return ret;\r\n });\r\n\r\n const selected = computed(() => {\r\n return selections.value.map((selection) => selection?.props?.value);\r\n });\r\n\r\n const extraMenuProps = computed(() => {\r\n return { ...props.menuProps, preventCloseBubble: true };\r\n });\r\n\r\n function isSelected(item: ListItem) {\r\n return !!selections.value.find((selectedItem) => {\r\n return selectedItem?.value === item.value;\r\n });\r\n }\r\n\r\n // Field\r\n function onMousedownDisplay(event: MouseEvent) {\r\n if (props.disabled) return;\r\n opened.value = !opened.value;\r\n }\r\n\r\n function onKeydownDisplay(event: KeyboardEvent) {\r\n console.log(event);\r\n if (props.disabled) return;\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n opened.value = !opened.value;\r\n }\r\n }\r\n\r\n function onBlur(event: FocusEvent) {\r\n requestAnimationFrame(() => {\r\n const contentEl = (menuRef.value as any)?.layer$?.content$;\r\n if (contentEl?.contains(document.activeElement)) {\r\n return;\r\n }\r\n if (opened.value && props.closeOnBlur) {\r\n opened.value = false;\r\n }\r\n });\r\n }\r\n\r\n // Menu Contents\r\n function onClickItem(item: ListItem, e: MouseEvent) {\r\n if (item.disabled) return;\r\n select(item);\r\n if (!props.multiple) {\r\n setTimeout(() => {\r\n opened.value = false;\r\n }, 40);\r\n }\r\n }\r\n\r\n function onAfterLeave() {\r\n if (!focused.value) {\r\n // fieldInputRef.value?.focus();\r\n }\r\n }\r\n\r\n function closeCondition(event: MouseEvent) {\r\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\r\n return (event.target as HTMLElement)?.contains(\r\n (menuRef.value as any)?.layer$?.content$,\r\n );\r\n }\r\n }\r\n\r\n function select(item: ListItem) {\r\n let value;\r\n if (props.multiple) {\r\n const index = selections.value.findIndex((selectedItem) => {\r\n return selectedItem.value === item.value;\r\n });\r\n if (index === -1) {\r\n value = [...model.value, item];\r\n } else {\r\n const neo = model.value.slice();\r\n neo.splice(index, 1);\r\n value = neo;\r\n }\r\n } else {\r\n value = [item];\r\n }\r\n model.value = value;\r\n emit('change', setOut(value));\r\n }\r\n\r\n const displayText = computed(() => {\r\n if (props.multiple) {\r\n return selections.value.map((item) => item.text).join(', ');\r\n }\r\n return selections.value?.[0]?.text ?? '';\r\n });\r\n\r\n const baseEl = computed(() => {\r\n return menuRef.value?.baseEl;\r\n });\r\n\r\n watch(opened, (neo) => {\r\n if (neo) {\r\n nextTick(() => {\r\n scrollToActiveItem();\r\n });\r\n }\r\n });\r\n\r\n function scrollToActiveItem() {\r\n if (selections.value.length === 0) {\r\n return;\r\n }\r\n const listEl = getHtmlElement(listRef.value);\r\n if (listEl) {\r\n const activeEl = listEl?.querySelector('.y-list-item--active') as\r\n | HTMLElement\r\n | undefined;\r\n const contentEl = (menuRef.value as any)?.layer$\r\n ?.content$ as HTMLElement;\r\n if (activeEl && contentEl) {\r\n const scrollEl = getScrollParent(activeEl);\r\n if (\r\n scrollEl &&\r\n (contentEl.contains(scrollEl) || contentEl.isSameNode(scrollEl))\r\n ) {\r\n scrollEl.scrollTo({ top: activeEl.offsetTop, behavior: 'smooth' });\r\n }\r\n }\r\n }\r\n }\r\n\r\n useRender(() => {\r\n const fieldInputProps = chooseProps(props, YFieldInput.props);\r\n const dropdownIconProps = chooseProps(\r\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\r\n YIcon.props,\r\n );\r\n return (\r\n <YFieldInput\r\n ref={fieldInputRef}\r\n {...fieldInputProps}\r\n modelValue={model.value\r\n .map((v: any) => v.props.value)\r\n .join(', ')}\r\n validationValue={model.rxValue}\r\n onMousedown:display={onMousedownDisplay}\r\n onKeydown:display={onKeydownDisplay}\r\n onBlur={onBlur}\r\n readonly\r\n class={[\r\n 'y-select',\r\n {\r\n 'y-select--opened': opened.value,\r\n 'y-select--selected': selected.value.length > 0,\r\n },\r\n ]}\r\n {...attrs}\r\n focused={focused.value}\r\n >\r\n {{\r\n default: () => {\r\n const selectionProps = {\r\n items: selections.value.map((item) => item.raw),\r\n displayText: displayText.value,\r\n placeholder: props.placeholder,\r\n internalItems: selections.value,\r\n };\r\n return <>\r\n <div class={['y-select__selection']}>\r\n {slots.selection\r\n ? slots.selection?.(selectionProps)\r\n : selected.value.length > 0\r\n ? displayText.value\r\n : props.placeholder}\r\n </div>\r\n <YMenu\r\n ref={menuRef}\r\n offset={props.offset}\r\n position={props.position}\r\n align={props.align}\r\n origin={props.origin}\r\n content-classes={['y-select__content']}\r\n maxHeight={props.maxHeight}\r\n open-on-click-base={false}\r\n onAfterLeave={onAfterLeave}\r\n open-delay={props.openDelay}\r\n close-delay={props.closeDelay}\r\n closeCondition={closeCondition}\r\n base=\"parent\"\r\n {...extraMenuProps.value}\r\n v-model={opened.value}\r\n >\r\n {{\r\n default: slots.menu\r\n ? () => slots.menu()\r\n : () => (\r\n <YCard ref={cardRef}>\r\n {slots['menu-prepend']?.()}\r\n {items.value.length > 0 ? (\r\n <YList ref={listRef}>\r\n {items.value.map((item) => {\r\n const itemProps = {\r\n item,\r\n selected: isSelected(item),\r\n select: () => {\r\n select(item);\r\n },\r\n };\r\n return withDirectives(\r\n <YListItem\r\n onClick={(e) => onClickItem(item, e)}\r\n class={[\r\n {\r\n 'y-list-item--active': isSelected(item),\r\n },\r\n ]}\r\n disabled={item.disabled}\r\n >\r\n {{\r\n default: () =>\r\n slots.item\r\n ? slots.item?.(itemProps)\r\n : item.text,\r\n leading:\r\n slots['item-leading'] &&\r\n (() => slots['item-leading']?.(itemProps)),\r\n trailing:\r\n slots['item-trailing'] &&\r\n (() => slots['item-trailing']?.(itemProps)),\r\n }}\r\n </YListItem>,\r\n [[vShow, !item.hide]],\r\n );\r\n })}\r\n </YList>\r\n ) : (\r\n <div class=\"y-select__no-options\">\r\n {t('$yuyeon.noItems')}\r\n </div>\r\n )}\r\n {slots['menu-append']?.()}\r\n </YCard>\r\n ),\r\n }}\r\n </YMenu>\r\n </>\r\n },\r\n leading: slots.leading\r\n ? (...args: any[]) => slots.leading?.(...args)\r\n : undefined,\r\n trailing: (...args: any[]) => {\r\n return slots['dropdown-icon'] ? (\r\n slots['dropdown-icon']()\r\n ) : (\r\n <YIcon\r\n {...mergeProps(dropdownIconProps)}\r\n icon={props.dropdownIcon}\r\n class={['y-select__icon']}\r\n ></YIcon>\r\n );\r\n },\r\n label: slots.label\r\n ? (...args: any[]) => slots.label?.(...args)\r\n : undefined,\r\n 'helper-text': slots['helper-text']\r\n ? (...args: any[]) => slots['helper-text']?.(...args)\r\n : undefined,\r\n }}\r\n </YFieldInput>\r\n );\r\n });\r\n\r\n onMounted(() => {\r\n if (\r\n props.defaultSelect &&\r\n (props.modelValue === undefined ||\r\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\r\n items.value?.length\r\n ) {\r\n select(items.value[0]);\r\n }\r\n });\r\n\r\n expose({\r\n fieldInputRef,\r\n baseEl,\r\n opened,\r\n });\r\n\r\n return {\r\n fieldInputRef,\r\n model,\r\n selections,\r\n selected,\r\n menuRef,\r\n baseEl,\r\n opened,\r\n };\r\n },\r\n});\r\n\r\nexport type YSelect = InstanceType<typeof YSelect>;\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YSwitch.mjs","names":["computed","nextTick","ref","watch","withModifiers","useModelDuplex","useRender","defineComponent","getUid","propsFactory","pressYSwitchPropsOptions","modelValue","type","Boolean","Array","default","value","String","Number","Object","max","loading","disabled","stickOut","stateLabel","color","labelOn","labelOff","YSwitch","name","props","emits","setup","_ref","emit","slots","counterId","toString","inputId","input$","model","checked","focused","isMultipleInput","isArray","multipleInputIndex","findIndex","item","classes","inputByProp","immediate","found","find","undefined","changeMultipleInput","to","multipleInput","slice","length","nextChange","push","splice","onFocus","e","onBlur","onClick","$event","changeInput","event","onKeydown","trackStyles","backgroundColor","_createVNode","label"],"sources":["../../../src/components/switch/YSwitch.tsx"],"sourcesContent":["import {\n type PropType,\n computed,\n nextTick,\n ref,\n watch,\n withModifiers,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { defineComponent, getUid, propsFactory } from '@/util/component';\n\nimport './YSwitch.scss';\n\nexport const pressYSwitchPropsOptions = propsFactory(\n {\n modelValue: {\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 'YSwitch',\n);\n\nexport const YSwitch = defineComponent({\n name: 'YSwitch',\n props: {\n ...pressYSwitchPropsOptions(),\n },\n emits: [\n 'update:modelValue',\n 'change',\n 'click',\n 'focus',\n 'blur',\n 'keydown',\n 'overmax',\n ],\n setup(props, { emit, slots }) {\n const counterId = (getUid() ?? '').toString();\n const inputId = `input-${counterId}`;\n const input$ = ref<HTMLInputElement>();\n const model = useModelDuplex(props);\n const checked = ref(false);\n const focused = ref(false);\n\n const isMultipleInput = computed(() => {\n return Array.isArray(model.value);\n });\n\n const multipleInputIndex = computed(() => {\n if (!isMultipleInput.value) return -1;\n return model.value.findIndex((item: any) => item === props.value);\n });\n\n const classes = computed(() => {\n return {\n 'y-switch--active': checked.value,\n 'y-switch--focused': focused.value,\n 'y-switch--disabled': !!props.disabled,\n 'y-switch--loading': !!props.loading,\n 'y-switch--stick-out': !!props.stickOut,\n };\n });\n\n watch(model, () => {\n inputByProp();\n }, { immediate: true });\n\n function inputByProp() {\n const modelValue = model.value;\n if (Array.isArray(modelValue)) {\n const found = modelValue.find((item: any) => {\n return item === props.value;\n });\n checked.value = found !== undefined;\n } else if (typeof modelValue === 'boolean') {\n checked.value = modelValue;\n }\n }\n\n function changeMultipleInput(to: boolean) {\n const modelValue = model.value;\n if (Array.isArray(modelValue)) {\n const multipleInput = modelValue.slice();\n if (\n to &&\n props.max !== undefined &&\n multipleInput.length >= props.max\n ) {\n emit('overmax');\n nextChange(false, multipleInput);\n return;\n }\n if (to && multipleInputIndex.value < 0) {\n multipleInput.push(props.value);\n } else if (multipleInputIndex.value > -1) {\n multipleInput.splice(multipleInputIndex.value, 1);\n }\n emit('change', multipleInput);\n }\n }\n\n function nextChange(to: boolean, value: any) {\n nextTick(() => {\n checked.value = to;\n });\n }\n\n function onFocus(e: FocusEvent) {\n focused.value = true;\n emit('focus', e);\n }\n\n function onBlur(e: FocusEvent) {\n focused.value = false;\n emit('blur', e);\n }\n\n function onClick($event: Event) {\n if (props.disabled || props.loading) return;\n changeInput(!checked.value, $event);\n }\n\n function changeInput(to: boolean, event?: Event) {\n checked.value = to;\n if (isMultipleInput.value) {\n changeMultipleInput(to);\n } else {\n model.value = to;\n emit('change', to);\n }\n }\n\n function onKeydown($event: KeyboardEvent) {\n emit('keydown', $event);\n }\n\n useRender(() => {\n const trackStyles = {\n backgroundColor: props.color,\n };\n\n return (\n <div class={{ 'y-switch': true, ...classes.value }}>\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 ref={input$}\n id={inputId}\n aria-checked={checked.value}\n type=\"checkbox\"\n role=\"switch\"\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={props.disabled}\n checked={checked.value}\n />\n <div class=\"y-switch__track\" style={trackStyles}>\n {props.stateLabel && (\n <div class=\"y-switch__state\">\n <span class=\"y-switch__state-label y-switch__state-label--on\">\n {props.labelOn}\n </span>\n <span class=\"y-switch__state-label y-switch__state-label--off\">\n {props.labelOff}\n </span>\n </div>\n )}\n </div>\n <div class=\"y-switch__thumb\">\n {props.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});\n\nexport type YSwitch = InstanceType<typeof YSwitch>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YSwitch.mjs","names":["computed","nextTick","ref","watch","withModifiers","useModelDuplex","useRender","defineComponent","getUid","propsFactory","pressYSwitchPropsOptions","modelValue","type","Boolean","Array","default","value","String","Number","Object","max","loading","disabled","stickOut","stateLabel","color","labelOn","labelOff","YSwitch","name","props","emits","setup","_ref","emit","slots","counterId","toString","inputId","input$","model","checked","focused","isMultipleInput","isArray","multipleInputIndex","findIndex","item","classes","inputByProp","immediate","found","find","undefined","changeMultipleInput","to","multipleInput","slice","length","nextChange","push","splice","onFocus","e","onBlur","onClick","$event","changeInput","event","onKeydown","trackStyles","backgroundColor","_createVNode","label"],"sources":["../../../src/components/switch/YSwitch.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n computed,\r\n nextTick,\r\n ref,\r\n watch,\r\n withModifiers,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { defineComponent, getUid, propsFactory } from '@/util/component';\r\n\r\nimport './YSwitch.scss';\r\n\r\nexport const pressYSwitchPropsOptions = propsFactory(\r\n {\r\n modelValue: {\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 'YSwitch',\r\n);\r\n\r\nexport const YSwitch = defineComponent({\r\n name: 'YSwitch',\r\n props: {\r\n ...pressYSwitchPropsOptions(),\r\n },\r\n emits: [\r\n 'update:modelValue',\r\n 'change',\r\n 'click',\r\n 'focus',\r\n 'blur',\r\n 'keydown',\r\n 'overmax',\r\n ],\r\n setup(props, { emit, slots }) {\r\n const counterId = (getUid() ?? '').toString();\r\n const inputId = `input-${counterId}`;\r\n const input$ = ref<HTMLInputElement>();\r\n const model = useModelDuplex(props);\r\n const checked = ref(false);\r\n const focused = ref(false);\r\n\r\n const isMultipleInput = computed(() => {\r\n return Array.isArray(model.value);\r\n });\r\n\r\n const multipleInputIndex = computed(() => {\r\n if (!isMultipleInput.value) return -1;\r\n return model.value.findIndex((item: any) => item === props.value);\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-switch--active': checked.value,\r\n 'y-switch--focused': focused.value,\r\n 'y-switch--disabled': !!props.disabled,\r\n 'y-switch--loading': !!props.loading,\r\n 'y-switch--stick-out': !!props.stickOut,\r\n };\r\n });\r\n\r\n watch(model, () => {\r\n inputByProp();\r\n }, { immediate: true });\r\n\r\n function inputByProp() {\r\n const modelValue = model.value;\r\n if (Array.isArray(modelValue)) {\r\n const found = modelValue.find((item: any) => {\r\n return item === props.value;\r\n });\r\n checked.value = found !== undefined;\r\n } else if (typeof modelValue === 'boolean') {\r\n checked.value = modelValue;\r\n }\r\n }\r\n\r\n function changeMultipleInput(to: boolean) {\r\n const modelValue = model.value;\r\n if (Array.isArray(modelValue)) {\r\n const multipleInput = modelValue.slice();\r\n if (\r\n to &&\r\n props.max !== undefined &&\r\n multipleInput.length >= props.max\r\n ) {\r\n emit('overmax');\r\n nextChange(false, multipleInput);\r\n return;\r\n }\r\n if (to && multipleInputIndex.value < 0) {\r\n multipleInput.push(props.value);\r\n } else if (multipleInputIndex.value > -1) {\r\n multipleInput.splice(multipleInputIndex.value, 1);\r\n }\r\n emit('change', multipleInput);\r\n }\r\n }\r\n\r\n function nextChange(to: boolean, value: any) {\r\n nextTick(() => {\r\n checked.value = to;\r\n });\r\n }\r\n\r\n function onFocus(e: FocusEvent) {\r\n focused.value = true;\r\n emit('focus', e);\r\n }\r\n\r\n function onBlur(e: FocusEvent) {\r\n focused.value = false;\r\n emit('blur', e);\r\n }\r\n\r\n function onClick($event: Event) {\r\n if (props.disabled || props.loading) return;\r\n changeInput(!checked.value, $event);\r\n }\r\n\r\n function changeInput(to: boolean, event?: Event) {\r\n checked.value = to;\r\n if (isMultipleInput.value) {\r\n changeMultipleInput(to);\r\n } else {\r\n model.value = to;\r\n emit('change', to);\r\n }\r\n }\r\n\r\n function onKeydown($event: KeyboardEvent) {\r\n emit('keydown', $event);\r\n }\r\n\r\n useRender(() => {\r\n const trackStyles = {\r\n backgroundColor: props.color,\r\n };\r\n\r\n return (\r\n <div class={{ 'y-switch': true, ...classes.value }}>\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 ref={input$}\r\n id={inputId}\r\n aria-checked={checked.value}\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n disabled={props.disabled}\r\n checked={checked.value}\r\n />\r\n <div class=\"y-switch__track\" style={trackStyles}>\r\n {props.stateLabel && (\r\n <div class=\"y-switch__state\">\r\n <span class=\"y-switch__state-label y-switch__state-label--on\">\r\n {props.labelOn}\r\n </span>\r\n <span class=\"y-switch__state-label y-switch__state-label--off\">\r\n {props.labelOff}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n <div class=\"y-switch__thumb\">\r\n {props.loading && <div class=\"y-switch__spinner\"></div>}\r\n </div>\r\n </div>\r\n {slots.label && (\r\n <label for={inputId} class=\"y-switch__label\">\r\n {slots.label?.()}\r\n <input hidden />\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YSwitch = InstanceType<typeof YSwitch>;\r\n"],"mappings":"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"}