yuyeon 0.3.7-beta.2 → 0.3.7-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/yuyeon.js +495 -485
- package/dist/yuyeon.umd.cjs +2 -2
- package/lib/components/list/YListItem.js +1 -1
- package/lib/components/list/YListItem.js.map +1 -1
- package/lib/components/menu/YMenu.js +22 -22
- package/lib/components/menu/YMenu.js.map +1 -1
- package/lib/components/pagination/YPagination.js +25 -9
- package/lib/components/pagination/YPagination.js.map +1 -1
- package/package.json +1 -1
- package/types/components/date-picker/YDatePickerControl.d.ts +2 -2
- package/types/components/list/YListItem.d.ts +5 -5
- package/types/components/menu/YMenu.d.ts +1 -1
- package/types/components/pagination/YPagination.d.ts +11 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YListItem.js","names":["computed","createVNode","_createVNode","useRender","pressThemePropsOptions","useLocalTheme","defineComponent","propsFactory","pressYListItemProps","tag","type","String","default","onClick","Function","disabled","Boolean","YListItem","name","props","emits","click","e","slots","
|
|
1
|
+
{"version":3,"file":"YListItem.js","names":["computed","createVNode","_createVNode","useRender","pressThemePropsOptions","useLocalTheme","defineComponent","propsFactory","pressYListItemProps","tag","type","String","Object","default","onClick","Function","disabled","Boolean","YListItem","name","props","emits","click","e","slots","setup","_ref","emit","themeClasses","clickable","ElTag","value","leading","trailing"],"sources":["../../../src/components/list/YListItem.tsx"],"sourcesContent":["import { computed, SlotsType } from 'vue';\r\n\r\nimport { useRender } from '@/composables/component';\r\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport './YListItem.scss';\r\n\r\nexport const pressYListItemProps = propsFactory(\r\n {\r\n tag: {\r\n type: [String, Object],\r\n default: 'div',\r\n },\r\n onClick: Function,\r\n disabled: Boolean,\r\n ...pressThemePropsOptions(),\r\n },\r\n 'YListItem',\r\n);\r\n\r\nexport const YListItem = defineComponent({\r\n name: 'YListItem',\r\n props: {\r\n ...pressYListItemProps(),\r\n },\r\n emits: {\r\n click: (e: MouseEvent) => true,\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, emit }) {\r\n const { themeClasses } = useLocalTheme(props);\r\n\r\n function onClick(e: MouseEvent) {\r\n emit('click', e);\r\n }\r\n\r\n const clickable = computed(() => {\r\n return !props.disabled && !!props.onClick;\r\n });\r\n\r\n useRender(() => {\r\n const ElTag = props.tag as keyof HTMLElementTagNameMap;\r\n return (\r\n <ElTag\r\n class={[\r\n 'y-list-item',\r\n {\r\n 'y-list-item--pointer': clickable.value,\r\n 'y-list-item--disabled': props.disabled,\r\n },\r\n themeClasses.value,\r\n ]}\r\n onClick={onClick}\r\n >\r\n {slots.leading && (\r\n <div class={'y-list-item__leading'}>{slots.leading()}</div>\r\n )}\r\n <div class={'y-list-item__content'}>{slots.default?.()}</div>\r\n {slots.trailing && (\r\n <div class={'y-list-item__trailing'}>{slots.trailing()}</div>\r\n )}\r\n </ElTag>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YListItem = InstanceType<typeof YListItem>;\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAAC,WAAA,IAAAC,YAAA,QAAmB,KAAK;AAAC,SAEjCC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,eAAe,EAAEC,YAAY;AAEtC;AAEA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAC7C;EACEE,GAAG,EAAE;IACHC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,OAAO,EAAEC,QAAQ;EACjBC,QAAQ,EAAEC,OAAO;EACjB,GAAGb,sBAAsB,CAAC;AAC5B,CAAC,EACD,WACF,CAAC;AAED,OAAO,MAAMc,SAAS,GAAGZ,eAAe,CAAC;EACvCa,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACL,GAAGZ,mBAAmB,CAAC;EACzB,CAAC;EACDa,KAAK,EAAE;IACLC,KAAK,EAAGC,CAAa,IAAK;EAC5B,CAAC;EACDC,KAAK,EAAEZ,MAIL;EACFa,KAAKA,CAACL,KAAK,EAAAM,IAAA,EAAmB;IAAA,IAAjB;MAAEF,KAAK;MAAEG;IAAK,CAAC,GAAAD,IAAA;IAC1B,MAAM;MAAEE;IAAa,CAAC,GAAGvB,aAAa,CAACe,KAAK,CAAC;IAE7C,SAASN,OAAOA,CAACS,CAAa,EAAE;MAC9BI,IAAI,CAAC,OAAO,EAAEJ,CAAC,CAAC;IAClB;IAEA,MAAMM,SAAS,GAAG7B,QAAQ,CAAC,MAAM;MAC/B,OAAO,CAACoB,KAAK,CAACJ,QAAQ,IAAI,CAAC,CAACI,KAAK,CAACN,OAAO;IAC3C,CAAC,CAAC;IAEFX,SAAS,CAAC,MAAM;MACd,MAAM2B,KAAK,GAAGV,KAAK,CAACX,GAAkC;MACtD,OAAAP,YAAA,CAAA4B,KAAA;QAAA,SAEW,CACL,aAAa,EACb;UACE,sBAAsB,EAAED,SAAS,CAACE,KAAK;UACvC,uBAAuB,EAAEX,KAAK,CAACJ;QACjC,CAAC,EACDY,YAAY,CAACG,KAAK,CACnB;QAAA,WACQjB;MAAO;QAAAD,OAAA,EAAAA,CAAA,MAEfW,KAAK,CAACQ,OAAO,IAAA9B,YAAA;UAAA,SACA;QAAsB,IAAGsB,KAAK,CAACQ,OAAO,CAAC,CAAC,EACrD,EAAA9B,YAAA;UAAA,SACW;QAAsB,IAAGsB,KAAK,CAACX,OAAO,GAAG,CAAC,IACrDW,KAAK,CAACS,QAAQ,IAAA/B,YAAA;UAAA,SACD;QAAuB,IAAGsB,KAAK,CAACS,QAAQ,CAAC,CAAC,EACvD;MAAA;IAGP,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, getCurrentInstance, ref, toRef, watch, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from
|
|
1
|
+
import { computed, getCurrentInstance, ref, toRef, watch, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from 'vue';
|
|
2
2
|
import { useModelDuplex } from "../../composables/communication.js";
|
|
3
3
|
import { useRender } from "../../composables/component.js";
|
|
4
4
|
import { pressPolyTransitionPropsOptions } from "../../composables/transition.js";
|
|
@@ -9,7 +9,7 @@ import { pressYLayerProps, YLayer } from "../layer/index.js";
|
|
|
9
9
|
import { useDelay } from "../layer/active-delay.js";
|
|
10
10
|
import { useActiveStack } from "../layer/active-stack.js";
|
|
11
11
|
import "./YMenu.scss";
|
|
12
|
-
const NAME =
|
|
12
|
+
const NAME = 'YMenu';
|
|
13
13
|
const CLASS_NAME = toKebabCase(NAME);
|
|
14
14
|
export const YMenuPropOptions = {
|
|
15
15
|
menuClasses: {
|
|
@@ -28,8 +28,8 @@ export const YMenuPropOptions = {
|
|
|
28
28
|
default: true
|
|
29
29
|
},
|
|
30
30
|
...pressYLayerProps({
|
|
31
|
-
coordinateStrategy:
|
|
32
|
-
scrollStrategy:
|
|
31
|
+
coordinateStrategy: 'levitation',
|
|
32
|
+
scrollStrategy: 'reposition'
|
|
33
33
|
}),
|
|
34
34
|
preventCloseBubble: Boolean
|
|
35
35
|
};
|
|
@@ -42,12 +42,12 @@ export const YMenu = defineComponent({
|
|
|
42
42
|
props: {
|
|
43
43
|
...YMenuPropOptions,
|
|
44
44
|
...pressPolyTransitionPropsOptions({
|
|
45
|
-
transition:
|
|
45
|
+
transition: 'fade'
|
|
46
46
|
})
|
|
47
47
|
},
|
|
48
|
-
emits: [
|
|
48
|
+
emits: ['update:modelValue', 'afterLeave', 'hoverContent'],
|
|
49
49
|
slots: Object,
|
|
50
|
-
expose: [
|
|
50
|
+
expose: ['layer$', 'baseEl'],
|
|
51
51
|
setup(props, _ref) {
|
|
52
52
|
let {
|
|
53
53
|
slots,
|
|
@@ -60,7 +60,7 @@ export const YMenu = defineComponent({
|
|
|
60
60
|
const boundClasses = bindClasses(props.menuClasses);
|
|
61
61
|
return {
|
|
62
62
|
...boundClasses,
|
|
63
|
-
|
|
63
|
+
'y-menu': true
|
|
64
64
|
};
|
|
65
65
|
});
|
|
66
66
|
const active = useModelDuplex(props);
|
|
@@ -69,7 +69,7 @@ export const YMenu = defineComponent({
|
|
|
69
69
|
const {
|
|
70
70
|
children,
|
|
71
71
|
parent
|
|
72
|
-
} = useActiveStack(layer$, active, toRef(props,
|
|
72
|
+
} = useActiveStack(layer$, active, toRef(props, 'preventCloseBubble'));
|
|
73
73
|
const {
|
|
74
74
|
startOpenDelay,
|
|
75
75
|
startCloseDelay
|
|
@@ -91,7 +91,7 @@ export const YMenu = defineComponent({
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
watch(hovered, value => {
|
|
94
|
-
emit(
|
|
94
|
+
emit('hoverContent', value);
|
|
95
95
|
if (!value) {
|
|
96
96
|
startCloseDelay();
|
|
97
97
|
}
|
|
@@ -113,7 +113,7 @@ export const YMenu = defineComponent({
|
|
|
113
113
|
if (props.closeCondition === false) {
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
-
if (typeof props.closeCondition ===
|
|
116
|
+
if (typeof props.closeCondition === 'function') {
|
|
117
117
|
if (props.closeCondition(e) === false) {
|
|
118
118
|
active.value = false;
|
|
119
119
|
return;
|
|
@@ -131,20 +131,20 @@ export const YMenu = defineComponent({
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
function bindHover(el) {
|
|
134
|
-
el.addEventListener(
|
|
135
|
-
el.addEventListener(
|
|
134
|
+
el.addEventListener('mouseenter', onMouseenter);
|
|
135
|
+
el.addEventListener('mouseleave', onMouseleave);
|
|
136
136
|
}
|
|
137
137
|
function unbindHover(el) {
|
|
138
|
-
el.removeEventListener(
|
|
139
|
-
el.removeEventListener(
|
|
138
|
+
el.removeEventListener('mouseenter', onMouseenter);
|
|
139
|
+
el.removeEventListener('mouseleave', onMouseleave);
|
|
140
140
|
}
|
|
141
141
|
watch(() => layer$.value?.baseEl, (neo, old) => {
|
|
142
142
|
if (neo) {
|
|
143
143
|
bindHover(neo);
|
|
144
|
-
neo.addEventListener(
|
|
144
|
+
neo.addEventListener('click', onClick);
|
|
145
145
|
} else if (old) {
|
|
146
146
|
unbindHover(old);
|
|
147
|
-
old.removeEventListener(
|
|
147
|
+
old.removeEventListener('click', onClick);
|
|
148
148
|
}
|
|
149
149
|
}, {
|
|
150
150
|
immediate: true
|
|
@@ -163,17 +163,17 @@ export const YMenu = defineComponent({
|
|
|
163
163
|
baseEl
|
|
164
164
|
});
|
|
165
165
|
useRender(() => {
|
|
166
|
-
return _createVNode(
|
|
166
|
+
return _createVNode(YLayer, _mergeProps({
|
|
167
167
|
"ref": layer$,
|
|
168
168
|
"transition": props.transition,
|
|
169
169
|
"onClick:complement": onComplementClick,
|
|
170
|
-
"onAfterLeave": () => emit(
|
|
170
|
+
"onAfterLeave": () => emit('afterLeave')
|
|
171
171
|
}, {
|
|
172
172
|
...chooseProps(props, YLayer.props),
|
|
173
173
|
classes: classes.value,
|
|
174
174
|
scrim: false,
|
|
175
175
|
contentClasses: {
|
|
176
|
-
|
|
176
|
+
'y-menu__content': true,
|
|
177
177
|
...computedContentClasses.value
|
|
178
178
|
}
|
|
179
179
|
}, {
|
|
@@ -184,7 +184,7 @@ export const YMenu = defineComponent({
|
|
|
184
184
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
185
185
|
args[_key] = arguments[_key];
|
|
186
186
|
}
|
|
187
|
-
return _createVNode(_Fragment, null, [slots.default?.(...args) ??
|
|
187
|
+
return _createVNode(_Fragment, null, [slots.default?.(...args) ?? '']);
|
|
188
188
|
},
|
|
189
189
|
base: function () {
|
|
190
190
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
@@ -192,7 +192,7 @@ export const YMenu = defineComponent({
|
|
|
192
192
|
}
|
|
193
193
|
return slots.base?.(...args);
|
|
194
194
|
}
|
|
195
|
-
})
|
|
195
|
+
});
|
|
196
196
|
});
|
|
197
197
|
return {
|
|
198
198
|
layer$,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YMenu.js","names":["computed","getCurrentInstance","ref","toRef","watch","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","useModelDuplex","useRender","pressPolyTransitionPropsOptions","bindClasses","chooseProps","defineComponent","hasElementMouseEvent","toKebabCase","pressYLayerProps","YLayer","useDelay","useActiveStack","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnClickBase","Boolean","default","closeCondition","Function","undefined","preventClip","coordinateStrategy","scrollStrategy","preventCloseBubble","YMenu","name","props","transition","emits","slots","expose","setup","_ref","emit","vm","layer$","classes","boundClasses","active","hovered","value","finish","children","parent","startOpenDelay","startCloseDelay","changeActive","openOnHover","length","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","disabled","onComplementClick","parentContent","$el","content$","parentModal","modal","clear","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","immediate","computedContentClasses","contentClasses","onAfterLeave","scrim","$event","_len","arguments","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\ttype PropType,\r\n\tref,\r\n\ttype SlotsType,\r\n\ttoRef,\r\n\twatch,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { pressPolyTransitionPropsOptions } from \"@/composables/transition\";\r\nimport { bindClasses, chooseProps, defineComponent } from \"@/util/component\";\r\nimport { hasElementMouseEvent } from \"@/util/dom\";\r\nimport { toKebabCase } from \"@/util/string\";\r\n\r\nimport { pressYLayerProps, YLayer } from \"../layer\";\r\nimport { useDelay } from \"../layer/active-delay\";\r\nimport { useActiveStack } from \"../layer/active-stack\";\r\n\r\nimport \"./YMenu.scss\";\r\n\r\nconst NAME = \"YMenu\";\r\nconst CLASS_NAME = toKebabCase(NAME);\r\n\r\nexport const YMenuPropOptions = {\r\n\tmenuClasses: {\r\n\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\tstring[] | string | Record<string, any>\r\n\t\t>,\r\n\t},\r\n\topenOnClickBase: {\r\n\t\ttype: Boolean as PropType<boolean>,\r\n\t\tdefault: true,\r\n\t},\r\n\tcloseCondition: {\r\n\t\ttype: [Boolean, Function],\r\n\t\tdefault: undefined,\r\n\t},\r\n\tpreventClip: {\r\n\t\ttype: Boolean as PropType<boolean>,\r\n\t\tdefault: true,\r\n\t},\r\n\t...pressYLayerProps({\r\n\t\tcoordinateStrategy: \"levitation\" as const,\r\n\t\tscrollStrategy: \"reposition\" as const,\r\n\t}),\r\n\tpreventCloseBubble: Boolean as PropType<boolean>,\r\n};\r\n\r\n/**\r\n * # Component\r\n */\r\nexport const YMenu = defineComponent({\r\n\tname: NAME,\r\n\tprops: {\r\n\t\t...YMenuPropOptions,\r\n\t\t...pressPolyTransitionPropsOptions({\r\n\t\t\ttransition: \"fade\",\r\n\t\t}),\r\n\t},\r\n\temits: [\"update:modelValue\", \"afterLeave\", \"hoverContent\"],\r\n\tslots: Object as SlotsType<{\r\n\t\tdefault: any;\r\n\t\tbase: any;\r\n\t}>,\r\n\texpose: [\"layer$\", \"baseEl\"],\r\n\tsetup(props, { slots, emit, expose }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst layer$ = ref<typeof YLayer>();\r\n\r\n\t\tconst classes = computed(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.menuClasses);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-menu\": true,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst active = useModelDuplex(props);\r\n\t\tconst hovered = computed(() => !!layer$.value?.hovered);\r\n\t\tconst finish = computed(() => !!layer$.value?.finish);\r\n\t\tconst { children, parent } = useActiveStack(\r\n\t\t\tlayer$,\r\n\t\t\tactive,\r\n\t\t\ttoRef(props, \"preventCloseBubble\"),\r\n\t\t);\r\n\t\tconst { startOpenDelay, startCloseDelay } = useDelay(\r\n\t\t\tprops,\r\n\t\t\t(changeActive) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!changeActive &&\r\n\t\t\t\t\tprops.openOnHover &&\r\n\t\t\t\t\t!hovered.value &&\r\n\t\t\t\t\tchildren.value.length === 0\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t} else if (changeActive) {\r\n\t\t\t\t\tactive.value = true;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\tfunction onMouseenter(e: MouseEvent) {\r\n\t\t\tif (props.openOnHover) {\r\n\t\t\t\tstartOpenDelay();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onMouseleave(e: MouseEvent) {\r\n\t\t\tif (props.openOnHover) {\r\n\t\t\t\tstartCloseDelay();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twatch(hovered, (value) => {\r\n\t\t\temit(\"hoverContent\", value);\r\n\t\t\tif (!value) {\r\n\t\t\t\tstartCloseDelay();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction onClick(e: MouseEvent) {\r\n\t\t\te.stopPropagation();\r\n\t\t\tif (!props.openOnClickBase) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst currentActive = active.value;\r\n\t\t\tif (!props.disabled) {\r\n\t\t\t\tif (props.openOnHover && finish.value && currentActive) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tactive.value = !currentActive;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onComplementClick(e: Event) {\r\n\t\t\tif (props.closeCondition === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (typeof props.closeCondition === \"function\") {\r\n\t\t\t\tif (props.closeCondition(e) === false) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (active.value) {\r\n\t\t\t\tif (children.value.length === 0) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t}\r\n\t\t\t\tconst parentContent = parent?.$el.value?.content$;\r\n\t\t\t\tconst parentModal = parent?.$el.value?.modal;\r\n\t\t\t\tif (\r\n\t\t\t\t\t!(parentContent && !hasElementMouseEvent(e, parentContent)) &&\r\n\t\t\t\t\t!parentModal &&\r\n\t\t\t\t\t!props.preventCloseBubble\r\n\t\t\t\t) {\r\n\t\t\t\t\tparent?.clear();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction bindHover(el: HTMLElement) {\r\n\t\t\tel.addEventListener(\"mouseenter\", onMouseenter);\r\n\t\t\tel.addEventListener(\"mouseleave\", onMouseleave);\r\n\t\t}\r\n\r\n\t\tfunction unbindHover(el: HTMLElement) {\r\n\t\t\tel.removeEventListener(\"mouseenter\", onMouseenter);\r\n\t\t\tel.removeEventListener(\"mouseleave\", onMouseleave);\r\n\t\t}\r\n\r\n\t\twatch(\r\n\t\t\t() => layer$.value?.baseEl,\r\n\t\t\t(neo, old) => {\r\n\t\t\t\tif (neo) {\r\n\t\t\t\t\tbindHover(neo);\r\n\t\t\t\t\tneo.addEventListener(\"click\", onClick);\r\n\t\t\t\t} else if (old) {\r\n\t\t\t\t\tunbindHover(old);\r\n\t\t\t\t\told.removeEventListener(\"click\", onClick);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timmediate: true,\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst baseEl = computed(() => {\r\n\t\t\treturn layer$.value?.baseEl;\r\n\t\t});\r\n\r\n\t\texpose({\r\n\t\t\tlayer$,\r\n\t\t\tbaseEl,\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<YLayer\r\n\t\t\t\t\t\tref={layer$}\r\n\t\t\t\t\t\ttransition={props.transition}\r\n\t\t\t\t\t\tonClick:complement={onComplementClick}\r\n\t\t\t\t\t\tonAfterLeave={() => emit(\"afterLeave\")}\r\n\t\t\t\t\t\t{...{\r\n\t\t\t\t\t\t\t...chooseProps(props, YLayer.props),\r\n\t\t\t\t\t\t\tclasses: classes.value,\r\n\t\t\t\t\t\t\tscrim: false,\r\n\t\t\t\t\t\t\tcontentClasses: {\r\n\t\t\t\t\t\t\t\t\"y-menu__content\": true,\r\n\t\t\t\t\t\t\t\t...computedContentClasses.value,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tv-model={active.value}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (...args: any) => {\r\n\t\t\t\t\t\t\t\treturn <>{slots.default?.(...args) ?? \"\"}</>;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbase: (...args: any[]) => slots.base?.(...args),\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</YLayer>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tlayer$,\r\n\t\t\tbaseEl,\r\n\t\t\tclasses,\r\n\t\t\tchildren,\r\n\t\t\tparent,\r\n\t\t\tactive,\r\n\t\t\thovered,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport type YMenu = InstanceType<typeof YMenu>;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YMenu.js","names":["computed","getCurrentInstance","ref","toRef","watch","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","useModelDuplex","useRender","pressPolyTransitionPropsOptions","bindClasses","chooseProps","defineComponent","hasElementMouseEvent","toKebabCase","pressYLayerProps","YLayer","useDelay","useActiveStack","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnClickBase","Boolean","default","closeCondition","Function","undefined","preventClip","coordinateStrategy","scrollStrategy","preventCloseBubble","YMenu","name","props","transition","emits","slots","expose","setup","_ref","emit","vm","layer$","classes","boundClasses","active","hovered","value","finish","children","parent","startOpenDelay","startCloseDelay","changeActive","openOnHover","length","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","disabled","onComplementClick","parentContent","$el","content$","parentModal","modal","clear","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","immediate","computedContentClasses","contentClasses","onAfterLeave","scrim","$event","_len","arguments","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import {\r\n computed,\r\n getCurrentInstance,\r\n type PropType,\r\n ref,\r\n type SlotsType,\r\n toRef,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { pressPolyTransitionPropsOptions } from '@/composables/transition';\r\nimport { bindClasses, chooseProps, defineComponent } from '@/util/component';\r\nimport { hasElementMouseEvent } from '@/util/dom';\r\nimport { toKebabCase } from '@/util/string';\r\n\r\nimport { pressYLayerProps, YLayer } from '../layer';\r\nimport { useDelay } from '../layer/active-delay';\r\nimport { useActiveStack } from '../layer/active-stack';\r\n\r\nimport './YMenu.scss';\r\n\r\nconst NAME = 'YMenu';\r\nconst CLASS_NAME = toKebabCase(NAME);\r\n\r\nexport const YMenuPropOptions = {\r\n menuClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n openOnClickBase: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n closeCondition: {\r\n type: [Boolean, Function],\r\n default: undefined,\r\n },\r\n preventClip: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n ...pressYLayerProps({\r\n coordinateStrategy: 'levitation' as const,\r\n scrollStrategy: 'reposition' as const,\r\n }),\r\n preventCloseBubble: Boolean as PropType<boolean>,\r\n};\r\n\r\n/**\r\n * # Component\r\n */\r\nexport const YMenu = defineComponent({\r\n name: NAME,\r\n props: {\r\n ...YMenuPropOptions,\r\n ...pressPolyTransitionPropsOptions({\r\n transition: 'fade',\r\n }),\r\n },\r\n emits: ['update:modelValue', 'afterLeave', 'hoverContent'],\r\n slots: Object as SlotsType<{\r\n default: any;\r\n base: any;\r\n }>,\r\n expose: ['layer$', 'baseEl'],\r\n setup(props, { slots, emit, expose }) {\r\n const vm = getCurrentInstance();\r\n const layer$ = ref<typeof YLayer>();\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.menuClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-menu': true,\r\n };\r\n });\r\n\r\n const active = useModelDuplex(props);\r\n const hovered = computed(() => !!layer$.value?.hovered);\r\n const finish = computed(() => !!layer$.value?.finish);\r\n const { children, parent } = useActiveStack(\r\n layer$,\r\n active,\r\n toRef(props, 'preventCloseBubble'),\r\n );\r\n const { startOpenDelay, startCloseDelay } = useDelay(\r\n props,\r\n (changeActive) => {\r\n if (\r\n !changeActive &&\r\n props.openOnHover &&\r\n !hovered.value &&\r\n children.value.length === 0\r\n ) {\r\n active.value = false;\r\n } else if (changeActive) {\r\n active.value = true;\r\n }\r\n },\r\n );\r\n\r\n function onMouseenter(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startOpenDelay();\r\n }\r\n }\r\n\r\n function onMouseleave(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startCloseDelay();\r\n }\r\n }\r\n\r\n watch(hovered, (value) => {\r\n emit('hoverContent', value);\r\n if (!value) {\r\n startCloseDelay();\r\n }\r\n });\r\n\r\n function onClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (!props.openOnClickBase) {\r\n return;\r\n }\r\n const currentActive = active.value;\r\n if (!props.disabled) {\r\n if (props.openOnHover && finish.value && currentActive) {\r\n return;\r\n }\r\n active.value = !currentActive;\r\n }\r\n }\r\n\r\n function onComplementClick(e: Event) {\r\n if (props.closeCondition === false) {\r\n return;\r\n }\r\n if (typeof props.closeCondition === 'function') {\r\n if (props.closeCondition(e) === false) {\r\n active.value = false;\r\n return;\r\n }\r\n }\r\n if (active.value) {\r\n if (children.value.length === 0) {\r\n active.value = false;\r\n }\r\n const parentContent = parent?.$el.value?.content$;\r\n const parentModal = parent?.$el.value?.modal;\r\n if (\r\n !(parentContent && !hasElementMouseEvent(e, parentContent)) &&\r\n !parentModal &&\r\n !props.preventCloseBubble\r\n ) {\r\n parent?.clear();\r\n }\r\n }\r\n }\r\n\r\n function bindHover(el: HTMLElement) {\r\n el.addEventListener('mouseenter', onMouseenter);\r\n el.addEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n function unbindHover(el: HTMLElement) {\r\n el.removeEventListener('mouseenter', onMouseenter);\r\n el.removeEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n watch(\r\n () => layer$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n bindHover(neo);\r\n neo.addEventListener('click', onClick);\r\n } else if (old) {\r\n unbindHover(old);\r\n old.removeEventListener('click', onClick);\r\n }\r\n },\r\n {\r\n immediate: true,\r\n },\r\n );\r\n\r\n const computedContentClasses = computed<Record<string, boolean>>(() => {\r\n const boundClasses = bindClasses(props.contentClasses);\r\n return {\r\n ...boundClasses,\r\n };\r\n });\r\n\r\n const baseEl = computed(() => {\r\n return layer$.value?.baseEl;\r\n });\r\n\r\n expose({\r\n layer$,\r\n baseEl,\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <YLayer\r\n ref={layer$}\r\n transition={props.transition}\r\n onClick:complement={onComplementClick}\r\n onAfterLeave={() => emit('afterLeave')}\r\n {...{\r\n ...chooseProps(props, YLayer.props),\r\n classes: classes.value,\r\n scrim: false,\r\n contentClasses: {\r\n 'y-menu__content': true,\r\n ...computedContentClasses.value,\r\n },\r\n }}\r\n v-model={active.value}\r\n >\r\n {{\r\n default: (...args: any) => {\r\n return <>{slots.default?.(...args) ?? ''}</>;\r\n },\r\n base: (...args: any[]) => slots.base?.(...args),\r\n }}\r\n </YLayer>\r\n );\r\n });\r\n\r\n return {\r\n layer$,\r\n baseEl,\r\n classes,\r\n children,\r\n parent,\r\n active,\r\n hovered,\r\n };\r\n },\r\n});\r\n\r\nexport type YMenu = InstanceType<typeof YMenu>;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import { useModelDuplex } from "../../composables/communication.js";
|
|
|
3
3
|
import { useRender } from "../../composables/component.js";
|
|
4
4
|
import { useRefs } from "../../composables/ref.js";
|
|
5
5
|
import { useResizeObserver } from "../../composables/resize-observer.js";
|
|
6
|
-
import { getRangeArr } from "../../util/common.js";
|
|
6
|
+
import { clamp, getRangeArr } from "../../util/common.js";
|
|
7
7
|
import { defineComponent, propsFactory } from "../../util/component/index.js";
|
|
8
8
|
import { toStyleSizeValue } from "../../util/ui.js";
|
|
9
9
|
import { YButton } from "../button/index.js";
|
|
@@ -26,7 +26,9 @@ export const pressYPaginationProps = propsFactory({
|
|
|
26
26
|
},
|
|
27
27
|
totalVisible: [Number, String],
|
|
28
28
|
maxVisible: [Number, String],
|
|
29
|
-
|
|
29
|
+
endButton: {
|
|
30
|
+
type: [Boolean, Number]
|
|
31
|
+
},
|
|
30
32
|
gap: {
|
|
31
33
|
type: [String, Number],
|
|
32
34
|
default: 4
|
|
@@ -81,7 +83,7 @@ export const YPagination = defineComponent({
|
|
|
81
83
|
}
|
|
82
84
|
});
|
|
83
85
|
function calcItemCount(listWidth, itemWidth) {
|
|
84
|
-
const fixedCount = props.
|
|
86
|
+
const fixedCount = props.endButton ? 5 : 3;
|
|
85
87
|
const gap = +(props.gap ?? 4);
|
|
86
88
|
const fixedWidth = (itemWidth + gap) * fixedCount - gap;
|
|
87
89
|
const count = Math.max(0, Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)));
|
|
@@ -111,8 +113,17 @@ export const YPagination = defineComponent({
|
|
|
111
113
|
variation: props.buttonVariation,
|
|
112
114
|
onClick: e => {
|
|
113
115
|
e.preventDefault();
|
|
114
|
-
page.value
|
|
115
|
-
|
|
116
|
+
let to = page.value;
|
|
117
|
+
if (props.endButton === true) {
|
|
118
|
+
to = 1;
|
|
119
|
+
} else {
|
|
120
|
+
const del = Number(props.endButton);
|
|
121
|
+
if (!Number.isNaN(del)) {
|
|
122
|
+
to = clamp(to - del, 1, +length.value);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
page.value = to;
|
|
126
|
+
emit('change', to, 'first');
|
|
116
127
|
}
|
|
117
128
|
},
|
|
118
129
|
prev: {
|
|
@@ -140,8 +151,13 @@ export const YPagination = defineComponent({
|
|
|
140
151
|
variation: props.buttonVariation,
|
|
141
152
|
onClick: e => {
|
|
142
153
|
e.preventDefault();
|
|
143
|
-
|
|
144
|
-
|
|
154
|
+
let to = page.value;
|
|
155
|
+
if (props.endButton === true) {
|
|
156
|
+
to = +length.value;
|
|
157
|
+
} else if (typeof props.endButton === 'number') {
|
|
158
|
+
to = clamp(to + props.endButton, 1, +length.value);
|
|
159
|
+
}
|
|
160
|
+
page.value = to;
|
|
145
161
|
emit('change', to, 'last');
|
|
146
162
|
}
|
|
147
163
|
}
|
|
@@ -238,7 +254,7 @@ export const YPagination = defineComponent({
|
|
|
238
254
|
"style": styles.value
|
|
239
255
|
}, [_createVNode("ul", {
|
|
240
256
|
"class": ['y-pagination__list']
|
|
241
|
-
}, [props.
|
|
257
|
+
}, [props.endButton && _createVNode("li", {
|
|
242
258
|
"key": "first",
|
|
243
259
|
"class": "y-pagination__first"
|
|
244
260
|
}, [slots.first ? slots.first(controls.value.first) : _createVNode(YButton, controls.value.first, {
|
|
@@ -268,7 +284,7 @@ export const YPagination = defineComponent({
|
|
|
268
284
|
default: () => [slots['next-icon'] ? slots['next-icon']() : _createVNode(YIconPageControl, {
|
|
269
285
|
"type": 'next'
|
|
270
286
|
}, null)]
|
|
271
|
-
})]), props.
|
|
287
|
+
})]), props.endButton && _createVNode("li", {
|
|
272
288
|
"key": "last",
|
|
273
289
|
"class": "y-pagination__last"
|
|
274
290
|
}, [slots.last ? slots.last(controls.value.last) : _createVNode(YButton, controls.value.last, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YPagination.js","names":["computed","shallowRef","createVNode","_createVNode","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","defineComponent","propsFactory","toStyleSizeValue","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","activeButtonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n type ComponentPublicInstance,\n computed,\n type PropType,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useRefs } from '@/composables/ref';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n activeButtonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!Number.isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!Number.isNaN(maxVisible)) {\n return Math.min(total, maxVisible);\n }\n return total;\n } else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n Number.isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: active\n ? props.activeButtonVariation\n : props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap: string | undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!Number.isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <nav\n ref={resizeObservedRef}\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n style={styles.value}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </nav>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YPagination.js","names":["computed","shallowRef","createVNode","_createVNode","useModelDuplex","useRender","useRefs","useResizeObserver","clamp","getRangeArr","defineComponent","propsFactory","toStyleSizeValue","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","endButton","gap","color","activeColor","buttonVariation","activeButtonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","to","del","prev","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n type ComponentPublicInstance,\n computed,\n type PropType,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useRefs } from '@/composables/ref';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { clamp, getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n endButton: {\n type: [Boolean, Number] as PropType<boolean | number>,\n },\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n activeButtonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.endButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!Number.isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!Number.isNaN(maxVisible)) {\n return Math.min(total, maxVisible);\n }\n return total;\n } else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n let to = page.value;\n if (props.endButton === true) {\n to = 1;\n } else {\n const del = Number(props.endButton);\n if (!Number.isNaN(del)) {\n to = clamp(to - del, 1, +length.value);\n }\n }\n page.value = to;\n emit('change', to, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n let to = page.value;\n if (props.endButton === true) {\n to = +length.value;\n } else if (typeof props.endButton === 'number') {\n to = clamp(to + props.endButton, 1, +length.value);\n }\n page.value = to;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n Number.isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: active\n ? props.activeButtonVariation\n : props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap: string | undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!Number.isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <nav\n ref={resizeObservedRef}\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n style={styles.value}\n >\n <ul class={['y-pagination__list']}>\n {props.endButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.endButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </nav>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -26,8 +26,8 @@ export declare const pressYDatePickerControlPropsOptions: <Defaults extends {
|
|
|
26
26
|
type: (ObjectConstructor | StringConstructor)[];
|
|
27
27
|
default: string;
|
|
28
28
|
}, "type" | "default"> & {
|
|
29
|
-
type: PropType<unknown extends Defaults["nextIcon"] ? string | Record<string, any> :
|
|
30
|
-
default: unknown extends Defaults["nextIcon"] ? string | Record<string, any> :
|
|
29
|
+
type: PropType<unknown extends Defaults["nextIcon"] ? string | Record<string, any> : NonNullable<string | Record<string, any>> | Defaults["nextIcon"]>;
|
|
30
|
+
default: unknown extends Defaults["nextIcon"] ? string | Record<string, any> : NonNullable<string | Record<string, any>> | Defaults["nextIcon"];
|
|
31
31
|
};
|
|
32
32
|
prevIcon: unknown extends Defaults["prevIcon"] ? {
|
|
33
33
|
type: (ObjectConstructor | StringConstructor)[];
|
|
@@ -10,14 +10,14 @@ export declare const pressYListItemProps: <Defaults extends {
|
|
|
10
10
|
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
|
11
11
|
};
|
|
12
12
|
tag: unknown extends Defaults["tag"] ? {
|
|
13
|
-
type: StringConstructor;
|
|
13
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
14
14
|
default: string;
|
|
15
15
|
} : Omit<{
|
|
16
|
-
type: StringConstructor;
|
|
16
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
17
17
|
default: string;
|
|
18
18
|
}, "type" | "default"> & {
|
|
19
|
-
type: import('vue').PropType<unknown extends Defaults["tag"] ? string
|
|
20
|
-
default: unknown extends Defaults["tag"] ? string
|
|
19
|
+
type: import('vue').PropType<unknown extends Defaults["tag"] ? string | Record<string, any> : Defaults["tag"] | NonNullable<string | Record<string, any>>>;
|
|
20
|
+
default: unknown extends Defaults["tag"] ? string | Record<string, any> : Defaults["tag"] | NonNullable<string | Record<string, any>>;
|
|
21
21
|
};
|
|
22
22
|
onClick: unknown extends Defaults["onClick"] ? FunctionConstructor : {
|
|
23
23
|
type: import('vue').PropType<unknown extends Defaults["onClick"] ? Function : Function | Defaults["onClick"]>;
|
|
@@ -31,7 +31,7 @@ export declare const pressYListItemProps: <Defaults extends {
|
|
|
31
31
|
export declare const YListItem: import('vue').DefineComponent<{
|
|
32
32
|
theme: import('vue').PropType<string>;
|
|
33
33
|
tag: {
|
|
34
|
-
type: StringConstructor;
|
|
34
|
+
type: (ObjectConstructor | StringConstructor)[];
|
|
35
35
|
default: string;
|
|
36
36
|
};
|
|
37
37
|
onClick: FunctionConstructor;
|
|
@@ -511,7 +511,7 @@ export declare const YMenu: import('vue').DefineComponent<{
|
|
|
511
511
|
}, string> | undefined>;
|
|
512
512
|
baseEl: import('vue').ComputedRef<any>;
|
|
513
513
|
classes: import('vue').ComputedRef<{
|
|
514
|
-
|
|
514
|
+
'y-menu': boolean;
|
|
515
515
|
}>;
|
|
516
516
|
children: import('vue').ShallowRef<any[], any[]>;
|
|
517
517
|
parent: import('../layer/active-stack').ActiveStackProvide | null;
|
|
@@ -7,7 +7,7 @@ export declare const pressYPaginationProps: <Defaults extends {
|
|
|
7
7
|
length?: unknown;
|
|
8
8
|
totalVisible?: unknown;
|
|
9
9
|
maxVisible?: unknown;
|
|
10
|
-
|
|
10
|
+
endButton?: unknown;
|
|
11
11
|
gap?: unknown;
|
|
12
12
|
color?: unknown;
|
|
13
13
|
activeColor?: unknown;
|
|
@@ -59,9 +59,13 @@ export declare const pressYPaginationProps: <Defaults extends {
|
|
|
59
59
|
type: PropType<unknown extends Defaults["maxVisible"] ? string | number : NonNullable<string | number> | Defaults["maxVisible"]>;
|
|
60
60
|
default: unknown extends Defaults["maxVisible"] ? string | number : NonNullable<string | number> | Defaults["maxVisible"];
|
|
61
61
|
};
|
|
62
|
-
|
|
63
|
-
type: PropType<
|
|
64
|
-
|
|
62
|
+
endButton: unknown extends Defaults["endButton"] ? {
|
|
63
|
+
type: PropType<boolean | number>;
|
|
64
|
+
} : Omit<{
|
|
65
|
+
type: PropType<boolean | number>;
|
|
66
|
+
}, "type" | "default"> & {
|
|
67
|
+
type: PropType<unknown extends Defaults["endButton"] ? number | boolean : NonNullable<number | boolean> | Defaults["endButton"]>;
|
|
68
|
+
default: unknown extends Defaults["endButton"] ? number | boolean : NonNullable<number | boolean> | Defaults["endButton"];
|
|
65
69
|
};
|
|
66
70
|
gap: unknown extends Defaults["gap"] ? {
|
|
67
71
|
type: (StringConstructor | NumberConstructor)[];
|
|
@@ -117,7 +121,9 @@ export declare const YPagination: import('vue').DefineComponent<{
|
|
|
117
121
|
};
|
|
118
122
|
totalVisible: (StringConstructor | NumberConstructor)[];
|
|
119
123
|
maxVisible: (StringConstructor | NumberConstructor)[];
|
|
120
|
-
|
|
124
|
+
endButton: {
|
|
125
|
+
type: PropType<boolean | number>;
|
|
126
|
+
};
|
|
121
127
|
gap: {
|
|
122
128
|
type: (StringConstructor | NumberConstructor)[];
|
|
123
129
|
default: number;
|