@element-plus/nightly 0.0.20220207 → 0.0.20220208
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.full.js +47984 -48654
- package/dist/index.full.min.js +11 -11
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +11 -11
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +41761 -42431
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/alert/src/alert2.mjs +4 -2
- package/es/components/alert/src/alert2.mjs.map +1 -1
- package/es/components/autocomplete/src/index.mjs +1 -1
- package/es/components/autocomplete/src/index.mjs.map +1 -1
- package/es/components/badge/src/badge2.mjs +4 -2
- package/es/components/badge/src/badge2.mjs.map +1 -1
- package/es/components/carousel/src/main.mjs +1 -1
- package/es/components/carousel/src/main.mjs.map +1 -1
- package/es/components/cascader/src/index.mjs +1 -1
- package/es/components/cascader/src/index.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.mjs +1 -1
- package/es/components/cascader-panel/src/index.mjs.map +1 -1
- package/es/components/cascader-panel/src/store.mjs +1 -1
- package/es/components/cascader-panel/src/store.mjs.map +1 -1
- package/es/components/col/src/col.mjs +8 -5
- package/es/components/col/src/col.mjs.map +1 -1
- package/es/components/collapse/index.d.ts +33 -0
- package/es/components/collapse/src/collapse-item.mjs +26 -16
- package/es/components/collapse/src/collapse-item.mjs.map +1 -1
- package/es/components/collapse/src/collapse-item.vue.d.ts +11 -0
- package/es/components/collapse/src/collapse.mjs +11 -8
- package/es/components/collapse/src/collapse.mjs.map +1 -1
- package/es/components/collapse/src/collapse.vue.d.ts +11 -0
- package/es/components/collapse-transition/index.d.ts +22 -0
- package/es/components/collapse-transition/src/collapse-transition.mjs +8 -2
- package/es/components/collapse-transition/src/collapse-transition.mjs.map +1 -1
- package/es/components/collapse-transition/src/collapse-transition.vue.d.ts +11 -0
- package/es/components/color-picker/index.d.ts +24 -2
- package/es/components/color-picker/src/index.mjs +41 -34
- package/es/components/color-picker/src/index.mjs.map +1 -1
- package/es/components/color-picker/src/index.vue.d.ts +12 -1
- package/es/components/index.mjs +2 -2
- package/es/components/infinite-scroll/src/index.mjs +1 -1
- package/es/components/infinite-scroll/src/index.mjs.map +1 -1
- package/es/components/notification/src/notification.vue.d.ts +11 -0
- package/es/components/notification/src/notification2.mjs +24 -19
- package/es/components/notification/src/notification2.mjs.map +1 -1
- package/es/components/overlay/src/overlay.mjs +3 -1
- package/es/components/overlay/src/overlay.mjs.map +1 -1
- package/es/components/page-header/index.d.ts +11 -0
- package/es/components/page-header/src/page-header.vue.d.ts +11 -0
- package/es/components/page-header/src/page-header2.mjs +24 -19
- package/es/components/page-header/src/page-header2.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.mjs +1 -1
- package/es/components/pagination/src/components/sizes.mjs.map +1 -1
- package/es/components/popconfirm/index.d.ts +11 -0
- package/es/components/popconfirm/src/popconfirm.vue.d.ts +11 -0
- package/es/components/popconfirm/src/popconfirm2.mjs +20 -14
- package/es/components/popconfirm/src/popconfirm2.mjs.map +1 -1
- package/es/components/progress/index.d.ts +11 -0
- package/es/components/progress/src/progress.vue.d.ts +11 -0
- package/es/components/progress/src/progress2.mjs +39 -36
- package/es/components/progress/src/progress2.mjs.map +1 -1
- package/es/components/select/src/useSelect.mjs +1 -2
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/src/useSelect.mjs +1 -2
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/slider/src/useSliderButton.mjs +1 -1
- package/es/components/slider/src/useSliderButton.mjs.map +1 -1
- package/es/components/switch/index.mjs +2 -2
- package/es/components/switch/src/switch.mjs +86 -247
- package/es/components/switch/src/switch.mjs.map +1 -1
- package/es/components/switch/src/switch2.mjs +247 -86
- package/es/components/switch/src/switch2.mjs.map +1 -1
- package/es/components/table/src/store/helper.mjs +1 -1
- package/es/components/table/src/store/helper.mjs.map +1 -1
- package/es/components/table/src/table-body/events-helper.mjs +1 -1
- package/es/components/table/src/table-body/events-helper.mjs.map +1 -1
- package/es/components/table/src/table.mjs +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/teleport/index.d.ts +11 -0
- package/es/components/teleport/src/teleport.vue.d.ts +11 -0
- package/es/components/teleport/src/teleport2.mjs +7 -3
- package/es/components/teleport/src/teleport2.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.mjs +1 -1
- package/es/components/time-picker/src/common/picker.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.mjs +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.mjs +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.mjs.map +1 -1
- package/es/components/timeline/index.mjs +2 -2
- package/es/components/timeline/src/timeline-item.mjs +37 -73
- package/es/components/timeline/src/timeline-item.mjs.map +1 -1
- package/es/components/timeline/src/timeline-item2.mjs +73 -37
- package/es/components/timeline/src/timeline-item2.mjs.map +1 -1
- package/es/components/upload/src/useHandlers.mjs +1 -1
- package/es/components/upload/src/useHandlers.mjs.map +1 -1
- package/es/components/virtual-list/src/hooks/use-cache.mjs +2 -2
- package/es/components/virtual-list/src/hooks/use-cache.mjs.map +1 -1
- package/es/hooks/use-attrs/index.mjs +1 -1
- package/es/hooks/use-attrs/index.mjs.map +1 -1
- package/es/hooks/use-locale/index.mjs +1 -1
- package/es/hooks/use-locale/index.mjs.map +1 -1
- package/es/index.mjs +2 -2
- package/es/utils/props.mjs +1 -1
- package/es/utils/props.mjs.map +1 -1
- package/es/utils/util.mjs +1 -1
- package/es/utils/util.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/alert/src/alert2.js +4 -2
- package/lib/components/alert/src/alert2.js.map +1 -1
- package/lib/components/autocomplete/src/index.js +2 -6
- package/lib/components/autocomplete/src/index.js.map +1 -1
- package/lib/components/badge/src/badge2.js +4 -2
- package/lib/components/badge/src/badge2.js.map +1 -1
- package/lib/components/carousel/src/main.js +3 -7
- package/lib/components/carousel/src/main.js.map +1 -1
- package/lib/components/cascader/src/index.js +2 -6
- package/lib/components/cascader/src/index.js.map +1 -1
- package/lib/components/cascader-panel/src/index.js +3 -7
- package/lib/components/cascader-panel/src/index.js.map +1 -1
- package/lib/components/cascader-panel/src/store.js +3 -7
- package/lib/components/cascader-panel/src/store.js.map +1 -1
- package/lib/components/col/src/col.js +8 -5
- package/lib/components/col/src/col.js.map +1 -1
- package/lib/components/collapse/index.d.ts +33 -0
- package/lib/components/collapse/src/collapse-item.js +26 -16
- package/lib/components/collapse/src/collapse-item.js.map +1 -1
- package/lib/components/collapse/src/collapse-item.vue.d.ts +11 -0
- package/lib/components/collapse/src/collapse.js +10 -7
- package/lib/components/collapse/src/collapse.js.map +1 -1
- package/lib/components/collapse/src/collapse.vue.d.ts +11 -0
- package/lib/components/collapse-transition/index.d.ts +22 -0
- package/lib/components/collapse-transition/src/collapse-transition.js +8 -2
- package/lib/components/collapse-transition/src/collapse-transition.js.map +1 -1
- package/lib/components/collapse-transition/src/collapse-transition.vue.d.ts +11 -0
- package/lib/components/color-picker/index.d.ts +24 -2
- package/lib/components/color-picker/src/index.js +43 -40
- package/lib/components/color-picker/src/index.js.map +1 -1
- package/lib/components/color-picker/src/index.vue.d.ts +12 -1
- package/lib/components/index.js +2 -2
- package/lib/components/infinite-scroll/src/index.js +3 -7
- package/lib/components/infinite-scroll/src/index.js.map +1 -1
- package/lib/components/notification/src/notification.vue.d.ts +11 -0
- package/lib/components/notification/src/notification2.js +24 -19
- package/lib/components/notification/src/notification2.js.map +1 -1
- package/lib/components/overlay/src/overlay.js +5 -3
- package/lib/components/overlay/src/overlay.js.map +1 -1
- package/lib/components/page-header/index.d.ts +11 -0
- package/lib/components/page-header/src/page-header.vue.d.ts +11 -0
- package/lib/components/page-header/src/page-header2.js +23 -18
- package/lib/components/page-header/src/page-header2.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.js +2 -6
- package/lib/components/pagination/src/components/sizes.js.map +1 -1
- package/lib/components/popconfirm/index.d.ts +11 -0
- package/lib/components/popconfirm/src/popconfirm.vue.d.ts +11 -0
- package/lib/components/popconfirm/src/popconfirm2.js +19 -13
- package/lib/components/popconfirm/src/popconfirm2.js.map +1 -1
- package/lib/components/progress/index.d.ts +11 -0
- package/lib/components/progress/src/progress.vue.d.ts +11 -0
- package/lib/components/progress/src/progress2.js +39 -36
- package/lib/components/progress/src/progress2.js.map +1 -1
- package/lib/components/select/src/useSelect.js +5 -11
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/src/useSelect.js +4 -10
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/slider/src/useSliderButton.js +3 -7
- package/lib/components/slider/src/useSliderButton.js.map +1 -1
- package/lib/components/switch/index.js +2 -2
- package/lib/components/switch/src/switch.js +87 -247
- package/lib/components/switch/src/switch.js.map +1 -1
- package/lib/components/switch/src/switch2.js +247 -87
- package/lib/components/switch/src/switch2.js.map +1 -1
- package/lib/components/table/src/store/helper.js +2 -6
- package/lib/components/table/src/store/helper.js.map +1 -1
- package/lib/components/table/src/table-body/events-helper.js +3 -7
- package/lib/components/table/src/table-body/events-helper.js.map +1 -1
- package/lib/components/table/src/table.js +2 -6
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/teleport/index.d.ts +11 -0
- package/lib/components/teleport/src/teleport.vue.d.ts +11 -0
- package/lib/components/teleport/src/teleport2.js +6 -2
- package/lib/components/teleport/src/teleport2.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.js +2 -3
- package/lib/components/time-picker/src/common/picker.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.js +2 -6
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.js +4 -5
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.js.map +1 -1
- package/lib/components/timeline/index.js +2 -2
- package/lib/components/timeline/src/timeline-item.js +37 -73
- package/lib/components/timeline/src/timeline-item.js.map +1 -1
- package/lib/components/timeline/src/timeline-item2.js +73 -37
- package/lib/components/timeline/src/timeline-item2.js.map +1 -1
- package/lib/components/upload/src/useHandlers.js +2 -6
- package/lib/components/upload/src/useHandlers.js.map +1 -1
- package/lib/components/virtual-list/src/hooks/use-cache.js +2 -3
- package/lib/components/virtual-list/src/hooks/use-cache.js.map +1 -1
- package/lib/hooks/use-attrs/index.js +2 -6
- package/lib/hooks/use-attrs/index.js.map +1 -1
- package/lib/hooks/use-locale/index.js +2 -6
- package/lib/hooks/use-locale/index.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/utils/props.js +2 -6
- package/lib/utils/props.js.map +1 -1
- package/lib/utils/util.js +2 -6
- package/lib/utils/util.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +6 -2
- package/web-types.json +1 -1
|
@@ -4,6 +4,17 @@ export declare const ElTeleport: import("../../utils/types").SFCWithInstall<impo
|
|
|
4
4
|
style: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("vue").StyleValue>, string | import("vue").CSSProperties | (() => string) | (() => import("vue").CSSProperties) | (() => import("vue").StyleValue[]) | undefined, unknown, unknown, unknown>;
|
|
5
5
|
zIndex: import("../../utils/props").BuildPropReturn<StringConstructor, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
6
6
|
}, {
|
|
7
|
+
ns: {
|
|
8
|
+
namespace: import("vue").ComputedRef<string>;
|
|
9
|
+
b: (blockSuffix?: string) => string;
|
|
10
|
+
e: (element?: string | undefined) => string;
|
|
11
|
+
m: (modifier?: string | undefined) => string;
|
|
12
|
+
be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
|
|
13
|
+
em: (element?: string | undefined, modifier?: string | undefined) => string;
|
|
14
|
+
bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
|
|
15
|
+
bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
|
|
16
|
+
is: (name: string, state?: boolean) => string;
|
|
17
|
+
};
|
|
7
18
|
containerRef: import("vue").Ref<HTMLElement | undefined>;
|
|
8
19
|
containerStyle: import("vue").ComputedRef<{}>;
|
|
9
20
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -4,6 +4,17 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
4
4
|
style: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("vue").StyleValue>, string | import("vue").CSSProperties | (() => string) | (() => import("vue").CSSProperties) | (() => import("vue").StyleValue[]) | undefined, unknown, unknown, unknown>;
|
|
5
5
|
zIndex: import("../../../utils/props").BuildPropReturn<StringConstructor, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
6
6
|
}, {
|
|
7
|
+
ns: {
|
|
8
|
+
namespace: import("vue").ComputedRef<string>;
|
|
9
|
+
b: (blockSuffix?: string) => string;
|
|
10
|
+
e: (element?: string | undefined) => string;
|
|
11
|
+
m: (modifier?: string | undefined) => string;
|
|
12
|
+
be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
|
|
13
|
+
em: (element?: string | undefined, modifier?: string | undefined) => string;
|
|
14
|
+
bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
|
|
15
|
+
bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
|
|
16
|
+
is: (name: string, state?: boolean) => string;
|
|
17
|
+
};
|
|
7
18
|
containerRef: import("vue").Ref<HTMLElement | undefined>;
|
|
8
19
|
containerStyle: import("vue").ComputedRef<{}>;
|
|
9
20
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
+
require('../../../hooks/index.js');
|
|
6
7
|
var teleport = require('./teleport.js');
|
|
7
8
|
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
|
|
9
|
+
var index = require('../../../hooks/use-namespace/index.js');
|
|
8
10
|
|
|
9
11
|
const _sfc_main = vue.defineComponent({
|
|
10
12
|
props: teleport.elTeleportProps,
|
|
11
13
|
setup(props) {
|
|
14
|
+
const ns = index.useNamespace("teleport");
|
|
12
15
|
const containerRef = vue.ref();
|
|
13
16
|
const containerStyle = vue.computed(() => {
|
|
14
17
|
return props.container === "body" ? [
|
|
@@ -22,6 +25,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
22
25
|
] : {};
|
|
23
26
|
});
|
|
24
27
|
return {
|
|
28
|
+
ns,
|
|
25
29
|
containerRef,
|
|
26
30
|
containerStyle
|
|
27
31
|
};
|
|
@@ -35,11 +39,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
35
39
|
}, [
|
|
36
40
|
vue.createElementVNode("div", {
|
|
37
41
|
ref: "containerRef",
|
|
38
|
-
class:
|
|
42
|
+
class: vue.normalizeClass(_ctx.ns.b()),
|
|
39
43
|
style: vue.normalizeStyle(_ctx.containerStyle)
|
|
40
44
|
}, [
|
|
41
45
|
vue.renderSlot(_ctx.$slots, "default")
|
|
42
|
-
],
|
|
46
|
+
], 6)
|
|
43
47
|
], 8, ["to", "disabled"])) : vue.createCommentVNode("v-if", true);
|
|
44
48
|
}
|
|
45
49
|
var Teleport = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render]]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teleport2.js","sources":["../../../../../../packages/components/teleport/src/teleport.vue"],"sourcesContent":["<template>\n <teleport v-if=\"container\" :to=\"container\" :disabled=\"disabled\">\n <div ref=\"containerRef\" class=\"
|
|
1
|
+
{"version":3,"file":"teleport2.js","sources":["../../../../../../packages/components/teleport/src/teleport.vue"],"sourcesContent":["<template>\n <teleport v-if=\"container\" :to=\"container\" :disabled=\"disabled\">\n <div ref=\"containerRef\" :class=\"ns.b()\" :style=\"containerStyle\">\n <slot />\n </div>\n </teleport>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { elTeleportProps } from './teleport'\n\nexport default defineComponent({\n props: elTeleportProps,\n setup(props) {\n const ns = useNamespace('teleport')\n const containerRef = ref<HTMLElement>()\n const containerStyle = computed(() => {\n return props.container === 'body'\n ? [\n props.style,\n {\n position: 'absolute',\n top: `0px`,\n left: `0px`,\n zIndex: props.zIndex,\n },\n ]\n : {}\n })\n return {\n ns,\n containerRef,\n containerStyle,\n }\n },\n})\n</script>\n"],"names":["defineComponent","elTeleportProps","useNamespace","ref","computed","_normalizeClass"],"mappings":";;;;;;;;;;AAaA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,OAAOC;AAAA,EACP,MAAM,OAAO;AACX,UAAM,KAAKC,mBAAa;AACxB,UAAM,eAAeC;AACrB,UAAM,iBAAiBC,aAAS,MAAM;AACpC,aAAO,MAAM,cAAc,SACvB;AAAA,QACE,MAAM;AAAA,QACN;AAAA,UACE,UAAU;AAAA,UACV,KAAK;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA;AAAA,UAGlB;AAAA;AAEN,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;qBAjCY,MAAS;;IAAG,KAAI;AAAA,IAAY,SAAQ;AAAA;KAClD;AAAA,2BAAS,OAAc;AAAA,MAAE,KAAK;AAAA,MAAW,OAAKC,mBAAE;AAAA;OAC9C;AAAA;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
var dayjs = require('dayjs');
|
|
7
|
-
var
|
|
7
|
+
var lodashUnified = require('lodash-unified');
|
|
8
8
|
var core = require('@vueuse/core');
|
|
9
9
|
require('../../../../hooks/index.js');
|
|
10
10
|
require('../../../../tokens/index.js');
|
|
@@ -23,7 +23,6 @@ var index$4 = require('../../../../hooks/use-common-props/index.js');
|
|
|
23
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
24
24
|
|
|
25
25
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
26
|
-
var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
|
|
27
26
|
|
|
28
27
|
const dateEquals = function(a, b) {
|
|
29
28
|
const aIsDate = a instanceof Date;
|
|
@@ -193,7 +192,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
193
192
|
}
|
|
194
193
|
if (pickerOptions.value.getRangeAvailableTime) {
|
|
195
194
|
const availableResult = pickerOptions.value.getRangeAvailableTime(result);
|
|
196
|
-
if (!
|
|
195
|
+
if (!lodashUnified.isEqual(availableResult, result)) {
|
|
197
196
|
result = availableResult;
|
|
198
197
|
emitInput(Array.isArray(result) ? result.map((_) => _.toDate()) : result.toDate());
|
|
199
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker.js","sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n v-model:visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n append-to-body\n transition=\"el-zoom-in-top\"\n :popper-class=\"`el-picker__popper ${popperClass}`\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @show=\"pickerActualVisible = true\"\n @hide=\"pickerActualVisible = false\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"id\"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"name\"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n class=\"el-date-editor\"\n :class=\"['el-date-editor--' + type, $attrs.class || undefined]\"\n :style=\"$attrs.style || undefined\"\n :readonly=\"!editable || readonly || isDatesPicker || type === 'week'\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @keydown=\"handleKeydown\"\n @change=\"handleChange\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClose && clearIcon\"\n class=\"el-input__icon clear-icon\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <div\n v-else\n ref=\"inputRef\"\n class=\"el-date-editor el-range-editor el-input__inner\"\n :class=\"[\n 'el-date-editor--' + type,\n pickerSize ? `el-range-editor--${pickerSize}` : '',\n pickerDisabled ? 'is-disabled' : '',\n pickerVisible ? 'is-active' : '',\n $attrs.class || undefined,\n ]\"\n :style=\"$attrs.style || undefined\"\n @click=\"handleFocus\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @keydown=\"handleKeydown\"\n >\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon el-range__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n <input\n :id=\"id && id[0]\"\n autocomplete=\"off\"\n :name=\"name && name[0]\"\n :placeholder=\"startPlaceholder\"\n :value=\"displayValue && displayValue[0]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @input=\"handleStartInput\"\n @change=\"handleStartChange\"\n @focus=\"handleFocus\"\n />\n <slot name=\"range-separator\">\n <span class=\"el-range-separator\">{{ rangeSeparator }}</span>\n </slot>\n <input\n :id=\"id && id[1]\"\n autocomplete=\"off\"\n :name=\"name && name[1]\"\n :placeholder=\"endPlaceholder\"\n :value=\"displayValue && displayValue[1]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @focus=\"handleFocus\"\n @input=\"handleEndInput\"\n @change=\"handleEndChange\"\n />\n <el-icon\n v-if=\"clearIcon\"\n class=\"el-input__icon el-range__close-icon\"\n :class=\"{\n 'el-range__close-icon--hidden': !showClose,\n }\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </div>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n ></slot>\n </template>\n </el-tooltip>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n computed,\n nextTick,\n inject,\n watch,\n provide,\n unref,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport isEqual from 'lodash/isEqual'\nimport { onClickOutside } from '@vueuse/core'\nimport { useLocale, useSize } from '@element-plus/hooks'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { isEmpty } from '@element-plus/utils/util'\nimport { Clock, Calendar } from '@element-plus/icons-vue'\nimport { timePickerDefaultProps } from './props'\n\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { Options } from '@popperjs/core'\n\ninterface PickerOptions {\n isValidValue: (date: Dayjs) => boolean\n handleKeydown: (event: KeyboardEvent) => void\n parseUserInput: (value: Dayjs) => dayjs.Dayjs\n formatToString: (value: Dayjs) => string | string[]\n getRangeAvailableTime: (date: Dayjs) => dayjs.Dayjs\n getDefaultValue: () => Dayjs\n panelReady: boolean\n handleClear: () => void\n}\n\n// Date object and string\nconst dateEquals = function (a: Date | any, b: Date | any) {\n const aIsDate = a instanceof Date\n const bIsDate = b instanceof Date\n if (aIsDate && bIsDate) {\n return a.getTime() === b.getTime()\n }\n if (!aIsDate && !bIsDate) {\n return a === b\n }\n return false\n}\n\nconst valueEquals = function (a: Array<Date> | any, b: Array<Date> | any) {\n const aIsArray = a instanceof Array\n const bIsArray = b instanceof Array\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) {\n return false\n }\n return (a as Array<Date>).every((item, index) => dateEquals(item, b[index]))\n }\n if (!aIsArray && !bIsArray) {\n return dateEquals(a, b)\n }\n return false\n}\n\nconst parser = function (\n date: Date | string,\n format: string,\n lang: string\n): Dayjs {\n const day =\n isEmpty(format) || format === 'x'\n ? dayjs(date).locale(lang)\n : dayjs(date, format).locale(lang)\n return day.isValid() ? day : undefined\n}\n\nconst formatter = function (date: number | Date, format: string, lang: string) {\n if (isEmpty(format)) return date\n if (format === 'x') return +date\n return dayjs(date).locale(lang).format(format)\n}\n\nexport default defineComponent({\n name: 'Picker',\n components: {\n ElInput,\n ElTooltip,\n ElIcon,\n },\n props: timePickerDefaultProps,\n emits: [\n 'update:modelValue',\n 'change',\n 'focus',\n 'blur',\n 'calendar-change',\n 'panel-change',\n ],\n setup(props, ctx) {\n const { lang } = useLocale()\n\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const elPopperOptions = inject('ElPopperOptions', {} as Options)\n\n const refPopper = ref<InstanceType<typeof ElTooltip>>()\n const inputRef = ref<HTMLElement | ComponentPublicInstance>()\n const pickerVisible = ref(false)\n const pickerActualVisible = ref(false)\n const valueOnOpen = ref(null)\n\n watch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n ctx.emit('blur')\n blurInput()\n props.validateEvent && elFormItem.validate?.('blur')\n } else {\n valueOnOpen.value = props.modelValue\n }\n })\n const emitChange = (val, isClear?: boolean) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n ctx.emit('change', val)\n props.validateEvent && elFormItem.validate?.('change')\n }\n }\n const emitInput = (val) => {\n if (!valueEquals(props.modelValue, val)) {\n let formatValue\n if (Array.isArray(val)) {\n formatValue = val.map((_) =>\n formatter(_, props.valueFormat, lang.value)\n )\n } else if (val) {\n formatValue = formatter(val, props.valueFormat, lang.value)\n }\n ctx.emit('update:modelValue', val ? formatValue : val, lang.value)\n }\n }\n const refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n const _r = isRangeInput.value\n ? inputRef.value\n : (inputRef.value as any as ComponentPublicInstance).$el\n return Array.from<HTMLInputElement>(_r.querySelectorAll('input'))\n }\n return []\n })\n const refStartInput = computed(() => {\n return refInput?.value[0]\n })\n const refEndInput = computed(() => {\n return refInput?.value[1]\n })\n const setSelectionRange = (start, end, pos) => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n }\n const onPick = (date: any = '', visible = false) => {\n pickerVisible.value = visible\n let result\n if (Array.isArray(date)) {\n result = date.map((_) => _.toDate())\n } else {\n // clear btn emit null\n result = date ? date.toDate() : date\n }\n userInput.value = null\n emitInput(result)\n }\n\n const focus = (focusStartInput = true) => {\n let input = refStartInput.value\n if (!focusStartInput && isRangeInput.value) {\n input = refEndInput.value\n }\n if (input) {\n input.focus()\n }\n }\n\n const handleFocus = (e) => {\n if (props.readonly || pickerDisabled.value || pickerVisible.value) return\n pickerVisible.value = true\n ctx.emit('focus', e)\n }\n\n const handleBlur = () => {\n refPopper.value?.onClose()\n blurInput()\n }\n\n const pickerDisabled = computed(() => {\n return props.disabled || elForm.disabled\n })\n\n const parsedValue = computed(() => {\n let result\n if (valueIsEmpty.value) {\n if (pickerOptions.value.getDefaultValue) {\n result = pickerOptions.value.getDefaultValue()\n }\n } else {\n if (Array.isArray(props.modelValue)) {\n result = props.modelValue.map((_) =>\n parser(_, props.valueFormat, lang.value)\n )\n } else {\n result = parser(props.modelValue, props.valueFormat, lang.value)\n }\n }\n\n if (pickerOptions.value.getRangeAvailableTime) {\n const availableResult =\n pickerOptions.value.getRangeAvailableTime(result)\n if (!isEqual(availableResult, result)) {\n result = availableResult\n emitInput(\n Array.isArray(result)\n ? result.map((_) => _.toDate())\n : result.toDate()\n )\n }\n }\n if (Array.isArray(result) && result.some((_) => !_)) {\n result = []\n }\n return result\n })\n\n const displayValue = computed(() => {\n if (!pickerOptions.value.panelReady) return\n const formattedValue = formatDayjsToString(parsedValue.value)\n if (Array.isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (!isTimePicker.value && valueIsEmpty.value) return\n if (!pickerVisible.value && valueIsEmpty.value) return\n if (formattedValue) {\n return isDatesPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n })\n\n const isTimeLikePicker = computed(() => props.type.includes('time'))\n\n const isTimePicker = computed(() => props.type.startsWith('time'))\n\n const isDatesPicker = computed(() => props.type === 'dates')\n\n const triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n )\n\n const showClose = ref(false)\n\n const onClearIconClick = (event) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClose.value) {\n event.stopPropagation()\n emitInput(null)\n emitChange(null, true)\n showClose.value = false\n pickerVisible.value = false\n pickerOptions.value.handleClear && pickerOptions.value.handleClear()\n }\n }\n const valueIsEmpty = computed(() => {\n return (\n !props.modelValue ||\n (Array.isArray(props.modelValue) && !props.modelValue.length)\n )\n })\n const onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n showClose.value = true\n }\n }\n const onMouseLeave = () => {\n showClose.value = false\n }\n const isRangeInput = computed(() => {\n return props.type.indexOf('range') > -1\n })\n\n const pickerSize = useSize()\n\n const popperPaneRef = computed(() => {\n return refPopper.value?.popperRef?.contentRef\n })\n\n const popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n const actualInputRef = computed(() => {\n if (unref(isRangeInput)) {\n return unref(inputRef)\n }\n\n return (unref(inputRef) as ComponentPublicInstance)?.$el\n })\n\n onClickOutside(actualInputRef, (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unref(actualInputRef)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n e.composedPath().includes(inputEl)\n )\n return\n pickerVisible.value = false\n })\n\n const userInput = ref(null)\n\n const handleChange = () => {\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(\n Array.isArray(value)\n ? value.map((_) => _.toDate())\n : value.toDate()\n )\n userInput.value = null\n }\n }\n }\n if (userInput.value === '') {\n emitInput(null)\n emitChange(null)\n userInput.value = null\n }\n }\n\n const blurInput = () => {\n refInput.value.forEach((input) => input.blur())\n }\n\n const parseUserInputToDayjs = (value) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput(value)\n }\n\n const formatDayjsToString = (value) => {\n if (!value) return null\n return pickerOptions.value.formatToString(value)\n }\n\n const isValidValue = (value) => {\n return pickerOptions.value.isValidValue(value)\n }\n\n const handleKeydown = (event) => {\n const code = event.code\n\n if (code === EVENT_CODE.esc) {\n pickerVisible.value = false\n event.stopPropagation()\n return\n }\n\n if (code === EVENT_CODE.tab) {\n if (!isRangeInput.value) {\n handleChange()\n pickerVisible.value = false\n event.stopPropagation()\n } else {\n // user may change focus between two input\n setTimeout(() => {\n if (refInput.value.indexOf(document.activeElement) === -1) {\n pickerVisible.value = false\n blurInput()\n }\n }, 0)\n }\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value))\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n\n if (pickerOptions.value.handleKeydown) {\n pickerOptions.value.handleKeydown(event)\n }\n }\n const onUserInput = (e) => {\n userInput.value = e\n }\n\n const handleStartInput = (event) => {\n if (userInput.value) {\n userInput.value = [event.target.value, userInput.value[1]]\n } else {\n userInput.value = [event.target.value, null]\n }\n }\n\n const handleEndInput = (event) => {\n if (userInput.value) {\n userInput.value = [userInput.value[0], event.target.value]\n } else {\n userInput.value = [null, event.target.value]\n }\n }\n\n const handleStartChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[0])\n if (value && value.isValid()) {\n userInput.value = [formatDayjsToString(value), displayValue.value[1]]\n const newValue = [value, parsedValue.value && parsedValue.value[1]]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const handleEndChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[1])\n if (value && value.isValid()) {\n userInput.value = [displayValue.value[0], formatDayjsToString(value)]\n const newValue = [parsedValue.value && parsedValue.value[0], value]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const pickerOptions = ref<Partial<PickerOptions>>({})\n const onSetPickerOption = <T extends keyof PickerOptions>(\n e: [T, PickerOptions[T]]\n ) => {\n pickerOptions.value[e[0]] = e[1]\n pickerOptions.value.panelReady = true\n }\n\n const onCalendarChange = (e) => {\n ctx.emit('calendar-change', e)\n }\n\n const onPanelChange = (value, mode, view) => {\n ctx.emit('panel-change', value, mode, view)\n }\n\n provide('EP_PICKER_BASE', {\n props,\n })\n\n return {\n // injected popper options\n elPopperOptions,\n\n isDatesPicker,\n handleEndChange,\n handleStartChange,\n handleStartInput,\n handleEndInput,\n onUserInput,\n handleChange,\n handleKeydown,\n popperPaneRef,\n onClickOutside,\n pickerSize,\n isRangeInput,\n onMouseLeave,\n onMouseEnter,\n onClearIconClick,\n showClose,\n triggerIcon,\n onPick,\n handleFocus,\n handleBlur,\n pickerVisible,\n pickerActualVisible,\n displayValue,\n parsedValue,\n setSelectionRange,\n refPopper,\n inputRef,\n pickerDisabled,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n focus,\n }\n },\n})\n</script>\n"],"names":["isEmpty","dayjs","defineComponent","ElInput","ElTooltip","ElIcon","timePickerDefaultProps","useLocale","inject","elFormKey","elFormItemKey","ref","computed","unref","onClickOutside","_createElementVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"picker.js","sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n v-model:visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n append-to-body\n transition=\"el-zoom-in-top\"\n :popper-class=\"`el-picker__popper ${popperClass}`\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @show=\"pickerActualVisible = true\"\n @hide=\"pickerActualVisible = false\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"id\"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"name\"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n class=\"el-date-editor\"\n :class=\"['el-date-editor--' + type, $attrs.class || undefined]\"\n :style=\"$attrs.style || undefined\"\n :readonly=\"!editable || readonly || isDatesPicker || type === 'week'\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @keydown=\"handleKeydown\"\n @change=\"handleChange\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClose && clearIcon\"\n class=\"el-input__icon clear-icon\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <div\n v-else\n ref=\"inputRef\"\n class=\"el-date-editor el-range-editor el-input__inner\"\n :class=\"[\n 'el-date-editor--' + type,\n pickerSize ? `el-range-editor--${pickerSize}` : '',\n pickerDisabled ? 'is-disabled' : '',\n pickerVisible ? 'is-active' : '',\n $attrs.class || undefined,\n ]\"\n :style=\"$attrs.style || undefined\"\n @click=\"handleFocus\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @keydown=\"handleKeydown\"\n >\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon el-range__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n <input\n :id=\"id && id[0]\"\n autocomplete=\"off\"\n :name=\"name && name[0]\"\n :placeholder=\"startPlaceholder\"\n :value=\"displayValue && displayValue[0]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @input=\"handleStartInput\"\n @change=\"handleStartChange\"\n @focus=\"handleFocus\"\n />\n <slot name=\"range-separator\">\n <span class=\"el-range-separator\">{{ rangeSeparator }}</span>\n </slot>\n <input\n :id=\"id && id[1]\"\n autocomplete=\"off\"\n :name=\"name && name[1]\"\n :placeholder=\"endPlaceholder\"\n :value=\"displayValue && displayValue[1]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @focus=\"handleFocus\"\n @input=\"handleEndInput\"\n @change=\"handleEndChange\"\n />\n <el-icon\n v-if=\"clearIcon\"\n class=\"el-input__icon el-range__close-icon\"\n :class=\"{\n 'el-range__close-icon--hidden': !showClose,\n }\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </div>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n ></slot>\n </template>\n </el-tooltip>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n computed,\n nextTick,\n inject,\n watch,\n provide,\n unref,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport { isEqual } from 'lodash-unified'\nimport { onClickOutside } from '@vueuse/core'\nimport { useLocale, useSize } from '@element-plus/hooks'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { isEmpty } from '@element-plus/utils/util'\nimport { Clock, Calendar } from '@element-plus/icons-vue'\nimport { timePickerDefaultProps } from './props'\n\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { Options } from '@popperjs/core'\n\ninterface PickerOptions {\n isValidValue: (date: Dayjs) => boolean\n handleKeydown: (event: KeyboardEvent) => void\n parseUserInput: (value: Dayjs) => dayjs.Dayjs\n formatToString: (value: Dayjs) => string | string[]\n getRangeAvailableTime: (date: Dayjs) => dayjs.Dayjs\n getDefaultValue: () => Dayjs\n panelReady: boolean\n handleClear: () => void\n}\n\n// Date object and string\nconst dateEquals = function (a: Date | any, b: Date | any) {\n const aIsDate = a instanceof Date\n const bIsDate = b instanceof Date\n if (aIsDate && bIsDate) {\n return a.getTime() === b.getTime()\n }\n if (!aIsDate && !bIsDate) {\n return a === b\n }\n return false\n}\n\nconst valueEquals = function (a: Array<Date> | any, b: Array<Date> | any) {\n const aIsArray = a instanceof Array\n const bIsArray = b instanceof Array\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) {\n return false\n }\n return (a as Array<Date>).every((item, index) => dateEquals(item, b[index]))\n }\n if (!aIsArray && !bIsArray) {\n return dateEquals(a, b)\n }\n return false\n}\n\nconst parser = function (\n date: Date | string,\n format: string,\n lang: string\n): Dayjs {\n const day =\n isEmpty(format) || format === 'x'\n ? dayjs(date).locale(lang)\n : dayjs(date, format).locale(lang)\n return day.isValid() ? day : undefined\n}\n\nconst formatter = function (date: number | Date, format: string, lang: string) {\n if (isEmpty(format)) return date\n if (format === 'x') return +date\n return dayjs(date).locale(lang).format(format)\n}\n\nexport default defineComponent({\n name: 'Picker',\n components: {\n ElInput,\n ElTooltip,\n ElIcon,\n },\n props: timePickerDefaultProps,\n emits: [\n 'update:modelValue',\n 'change',\n 'focus',\n 'blur',\n 'calendar-change',\n 'panel-change',\n ],\n setup(props, ctx) {\n const { lang } = useLocale()\n\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const elPopperOptions = inject('ElPopperOptions', {} as Options)\n\n const refPopper = ref<InstanceType<typeof ElTooltip>>()\n const inputRef = ref<HTMLElement | ComponentPublicInstance>()\n const pickerVisible = ref(false)\n const pickerActualVisible = ref(false)\n const valueOnOpen = ref(null)\n\n watch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n ctx.emit('blur')\n blurInput()\n props.validateEvent && elFormItem.validate?.('blur')\n } else {\n valueOnOpen.value = props.modelValue\n }\n })\n const emitChange = (val, isClear?: boolean) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n ctx.emit('change', val)\n props.validateEvent && elFormItem.validate?.('change')\n }\n }\n const emitInput = (val) => {\n if (!valueEquals(props.modelValue, val)) {\n let formatValue\n if (Array.isArray(val)) {\n formatValue = val.map((_) =>\n formatter(_, props.valueFormat, lang.value)\n )\n } else if (val) {\n formatValue = formatter(val, props.valueFormat, lang.value)\n }\n ctx.emit('update:modelValue', val ? formatValue : val, lang.value)\n }\n }\n const refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n const _r = isRangeInput.value\n ? inputRef.value\n : (inputRef.value as any as ComponentPublicInstance).$el\n return Array.from<HTMLInputElement>(_r.querySelectorAll('input'))\n }\n return []\n })\n const refStartInput = computed(() => {\n return refInput?.value[0]\n })\n const refEndInput = computed(() => {\n return refInput?.value[1]\n })\n const setSelectionRange = (start, end, pos) => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n }\n const onPick = (date: any = '', visible = false) => {\n pickerVisible.value = visible\n let result\n if (Array.isArray(date)) {\n result = date.map((_) => _.toDate())\n } else {\n // clear btn emit null\n result = date ? date.toDate() : date\n }\n userInput.value = null\n emitInput(result)\n }\n\n const focus = (focusStartInput = true) => {\n let input = refStartInput.value\n if (!focusStartInput && isRangeInput.value) {\n input = refEndInput.value\n }\n if (input) {\n input.focus()\n }\n }\n\n const handleFocus = (e) => {\n if (props.readonly || pickerDisabled.value || pickerVisible.value) return\n pickerVisible.value = true\n ctx.emit('focus', e)\n }\n\n const handleBlur = () => {\n refPopper.value?.onClose()\n blurInput()\n }\n\n const pickerDisabled = computed(() => {\n return props.disabled || elForm.disabled\n })\n\n const parsedValue = computed(() => {\n let result\n if (valueIsEmpty.value) {\n if (pickerOptions.value.getDefaultValue) {\n result = pickerOptions.value.getDefaultValue()\n }\n } else {\n if (Array.isArray(props.modelValue)) {\n result = props.modelValue.map((_) =>\n parser(_, props.valueFormat, lang.value)\n )\n } else {\n result = parser(props.modelValue, props.valueFormat, lang.value)\n }\n }\n\n if (pickerOptions.value.getRangeAvailableTime) {\n const availableResult =\n pickerOptions.value.getRangeAvailableTime(result)\n if (!isEqual(availableResult, result)) {\n result = availableResult\n emitInput(\n Array.isArray(result)\n ? result.map((_) => _.toDate())\n : result.toDate()\n )\n }\n }\n if (Array.isArray(result) && result.some((_) => !_)) {\n result = []\n }\n return result\n })\n\n const displayValue = computed(() => {\n if (!pickerOptions.value.panelReady) return\n const formattedValue = formatDayjsToString(parsedValue.value)\n if (Array.isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (!isTimePicker.value && valueIsEmpty.value) return\n if (!pickerVisible.value && valueIsEmpty.value) return\n if (formattedValue) {\n return isDatesPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n })\n\n const isTimeLikePicker = computed(() => props.type.includes('time'))\n\n const isTimePicker = computed(() => props.type.startsWith('time'))\n\n const isDatesPicker = computed(() => props.type === 'dates')\n\n const triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n )\n\n const showClose = ref(false)\n\n const onClearIconClick = (event) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClose.value) {\n event.stopPropagation()\n emitInput(null)\n emitChange(null, true)\n showClose.value = false\n pickerVisible.value = false\n pickerOptions.value.handleClear && pickerOptions.value.handleClear()\n }\n }\n const valueIsEmpty = computed(() => {\n return (\n !props.modelValue ||\n (Array.isArray(props.modelValue) && !props.modelValue.length)\n )\n })\n const onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n showClose.value = true\n }\n }\n const onMouseLeave = () => {\n showClose.value = false\n }\n const isRangeInput = computed(() => {\n return props.type.indexOf('range') > -1\n })\n\n const pickerSize = useSize()\n\n const popperPaneRef = computed(() => {\n return refPopper.value?.popperRef?.contentRef\n })\n\n const popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n const actualInputRef = computed(() => {\n if (unref(isRangeInput)) {\n return unref(inputRef)\n }\n\n return (unref(inputRef) as ComponentPublicInstance)?.$el\n })\n\n onClickOutside(actualInputRef, (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unref(actualInputRef)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n e.composedPath().includes(inputEl)\n )\n return\n pickerVisible.value = false\n })\n\n const userInput = ref(null)\n\n const handleChange = () => {\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(\n Array.isArray(value)\n ? value.map((_) => _.toDate())\n : value.toDate()\n )\n userInput.value = null\n }\n }\n }\n if (userInput.value === '') {\n emitInput(null)\n emitChange(null)\n userInput.value = null\n }\n }\n\n const blurInput = () => {\n refInput.value.forEach((input) => input.blur())\n }\n\n const parseUserInputToDayjs = (value) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput(value)\n }\n\n const formatDayjsToString = (value) => {\n if (!value) return null\n return pickerOptions.value.formatToString(value)\n }\n\n const isValidValue = (value) => {\n return pickerOptions.value.isValidValue(value)\n }\n\n const handleKeydown = (event) => {\n const code = event.code\n\n if (code === EVENT_CODE.esc) {\n pickerVisible.value = false\n event.stopPropagation()\n return\n }\n\n if (code === EVENT_CODE.tab) {\n if (!isRangeInput.value) {\n handleChange()\n pickerVisible.value = false\n event.stopPropagation()\n } else {\n // user may change focus between two input\n setTimeout(() => {\n if (refInput.value.indexOf(document.activeElement) === -1) {\n pickerVisible.value = false\n blurInput()\n }\n }, 0)\n }\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value))\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n\n if (pickerOptions.value.handleKeydown) {\n pickerOptions.value.handleKeydown(event)\n }\n }\n const onUserInput = (e) => {\n userInput.value = e\n }\n\n const handleStartInput = (event) => {\n if (userInput.value) {\n userInput.value = [event.target.value, userInput.value[1]]\n } else {\n userInput.value = [event.target.value, null]\n }\n }\n\n const handleEndInput = (event) => {\n if (userInput.value) {\n userInput.value = [userInput.value[0], event.target.value]\n } else {\n userInput.value = [null, event.target.value]\n }\n }\n\n const handleStartChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[0])\n if (value && value.isValid()) {\n userInput.value = [formatDayjsToString(value), displayValue.value[1]]\n const newValue = [value, parsedValue.value && parsedValue.value[1]]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const handleEndChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[1])\n if (value && value.isValid()) {\n userInput.value = [displayValue.value[0], formatDayjsToString(value)]\n const newValue = [parsedValue.value && parsedValue.value[0], value]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const pickerOptions = ref<Partial<PickerOptions>>({})\n const onSetPickerOption = <T extends keyof PickerOptions>(\n e: [T, PickerOptions[T]]\n ) => {\n pickerOptions.value[e[0]] = e[1]\n pickerOptions.value.panelReady = true\n }\n\n const onCalendarChange = (e) => {\n ctx.emit('calendar-change', e)\n }\n\n const onPanelChange = (value, mode, view) => {\n ctx.emit('panel-change', value, mode, view)\n }\n\n provide('EP_PICKER_BASE', {\n props,\n })\n\n return {\n // injected popper options\n elPopperOptions,\n\n isDatesPicker,\n handleEndChange,\n handleStartChange,\n handleStartInput,\n handleEndInput,\n onUserInput,\n handleChange,\n handleKeydown,\n popperPaneRef,\n onClickOutside,\n pickerSize,\n isRangeInput,\n onMouseLeave,\n onMouseEnter,\n onClearIconClick,\n showClose,\n triggerIcon,\n onPick,\n handleFocus,\n handleBlur,\n pickerVisible,\n pickerActualVisible,\n displayValue,\n parsedValue,\n setSelectionRange,\n refPopper,\n inputRef,\n pickerDisabled,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n focus,\n }\n },\n})\n</script>\n"],"names":["isEmpty","dayjs","defineComponent","ElInput","ElTooltip","ElIcon","timePickerDefaultProps","useLocale","inject","elFormKey","elFormItemKey","ref","computed","unref","onClickOutside","_createElementVNode"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var
|
|
6
|
+
var lodashUnified = require('lodash-unified');
|
|
7
7
|
require('../../../../directives/index.js');
|
|
8
8
|
var index$1 = require('../../../scrollbar/index.js');
|
|
9
9
|
var index$2 = require('../../../icon/index.js');
|
|
@@ -12,10 +12,6 @@ var useTimePicker = require('./useTimePicker.js');
|
|
|
12
12
|
var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
|
|
13
13
|
var index = require('../../../../directives/repeat-click/index.js');
|
|
14
14
|
|
|
15
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
|
-
|
|
17
|
-
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
18
|
-
|
|
19
15
|
const _sfc_main = vue.defineComponent({
|
|
20
16
|
directives: {
|
|
21
17
|
repeatClick: index["default"]
|
|
@@ -57,7 +53,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
57
53
|
emits: ["change", "select-range", "set-option"],
|
|
58
54
|
setup(props, ctx) {
|
|
59
55
|
let isScrolling = false;
|
|
60
|
-
const debouncedResetScroll =
|
|
56
|
+
const debouncedResetScroll = lodashUnified.debounce((type) => {
|
|
61
57
|
isScrolling = false;
|
|
62
58
|
adjustCurrentSpinner(type);
|
|
63
59
|
}, 200);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-time-spinner.js","sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue"],"sourcesContent":["<template>\n <div class=\"el-time-spinner\" :class=\"{ 'has-seconds': showSeconds }\">\n <template v-if=\"!arrowControl\">\n <el-scrollbar\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n :ref=\"(scollbar) => setRef(scollbar, item)\"\n class=\"el-time-spinner__wrapper\"\n wrap-style=\"max-height: inherit;\"\n view-class=\"el-time-spinner__list\"\n noresize\n tag=\"ul\"\n @mouseenter=\"emitSelectRange(item)\"\n @mousemove=\"adjustCurrentSpinner(item)\"\n >\n <li\n v-for=\"(disabled, key) in listMap[item].value\"\n :key=\"key\"\n class=\"el-time-spinner__item\"\n :class=\"{ active: key === timePartsMap[item].value, disabled }\"\n @click=\"handleClick(item, { value: key, disabled })\"\n >\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? key % 12 || 12 : key)).slice(-2)\n }}{{ getAmPmFlag(key) }}\n </template>\n <template v-else>\n {{ ('0' + key).slice(-2) }}\n </template>\n </li>\n </el-scrollbar>\n </template>\n <template v-if=\"arrowControl\">\n <div\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n class=\"el-time-spinner__wrapper is-arrow\"\n @mouseenter=\"emitSelectRange(item)\"\n >\n <el-icon\n v-repeat-click=\"onDecreaseClick\"\n class=\"el-time-spinner__arrow arrow-up\"\n >\n <arrow-up />\n </el-icon>\n <el-icon\n v-repeat-click=\"onIncreaseClick\"\n class=\"el-time-spinner__arrow arrow-down\"\n >\n <arrow-down />\n </el-icon>\n <ul class=\"el-time-spinner__list\">\n <li\n v-for=\"(time, key) in arrowListMap[item].value\"\n :key=\"key\"\n class=\"el-time-spinner__item\"\n :class=\"{\n active: time === timePartsMap[item].value,\n disabled: listMap[item].value[time],\n }\"\n >\n <template v-if=\"typeof time === 'number'\">\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? time % 12 || 12 : time)).slice(-2)\n }}{{ getAmPmFlag(time) }}\n </template>\n <template v-else>\n {{ ('0' + time).slice(-2) }}\n </template>\n </template>\n </li>\n </ul>\n </div>\n </template>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, ref, nextTick, computed, onMounted, watch } from 'vue'\nimport debounce from 'lodash/debounce'\nimport { RepeatClick } from '@element-plus/directives'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowUp, ArrowDown } from '@element-plus/icons-vue'\nimport { getTimeLists } from './useTimePicker'\n\nimport type { PropType, Ref } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type { Nullable } from '@element-plus/utils/types'\n\nexport default defineComponent({\n directives: {\n repeatClick: RepeatClick,\n },\n\n components: {\n ElScrollbar,\n ElIcon,\n ArrowUp,\n ArrowDown,\n },\n\n props: {\n role: {\n type: String,\n required: true,\n },\n spinnerDate: {\n type: Object as PropType<Dayjs>,\n required: true,\n },\n showSeconds: {\n type: Boolean,\n default: true,\n },\n arrowControl: Boolean,\n amPmMode: {\n type: String,\n default: '', // 'a': am/pm; 'A': AM/PM\n },\n disabledHours: {\n type: Function,\n },\n disabledMinutes: {\n type: Function,\n },\n disabledSeconds: {\n type: Function,\n },\n },\n\n emits: ['change', 'select-range', 'set-option'],\n\n setup(props, ctx) {\n // data\n let isScrolling = false\n const debouncedResetScroll = debounce((type) => {\n isScrolling = false\n adjustCurrentSpinner(type)\n }, 200)\n const currentScrollbar = ref(null)\n const listHoursRef: Ref<Nullable<HTMLElement>> = ref(null)\n const listMinutesRef: Ref<Nullable<HTMLElement>> = ref(null)\n const listSecondsRef: Ref<Nullable<HTMLElement>> = ref(null)\n const listRefsMap = {\n hours: listHoursRef,\n minutes: listMinutesRef,\n seconds: listSecondsRef,\n }\n\n // computed\n const spinnerItems = computed(() => {\n const arr = ['hours', 'minutes', 'seconds']\n return props.showSeconds ? arr : arr.slice(0, 2)\n })\n const hours = computed(() => {\n return props.spinnerDate.hour()\n })\n const minutes = computed(() => {\n return props.spinnerDate.minute()\n })\n const seconds = computed(() => {\n return props.spinnerDate.second()\n })\n const timePartsMap = computed(() => ({\n hours,\n minutes,\n seconds,\n }))\n const hoursList = computed(() => {\n return getHoursList(props.role)\n })\n const minutesList = computed(() => {\n return getMinutesList(hours.value, props.role)\n })\n const secondsList = computed(() => {\n return getSecondsList(hours.value, minutes.value, props.role)\n })\n const listMap = computed(() => ({\n hours: hoursList,\n minutes: minutesList,\n seconds: secondsList,\n }))\n const arrowHourList = computed(() => {\n const hour = hours.value\n return [\n hour > 0 ? hour - 1 : undefined,\n hour,\n hour < 23 ? hour + 1 : undefined,\n ]\n })\n const arrowMinuteList = computed(() => {\n const minute = minutes.value\n return [\n minute > 0 ? minute - 1 : undefined,\n minute,\n minute < 59 ? minute + 1 : undefined,\n ]\n })\n const arrowSecondList = computed(() => {\n const second = seconds.value\n return [\n second > 0 ? second - 1 : undefined,\n second,\n second < 59 ? second + 1 : undefined,\n ]\n })\n const arrowListMap = computed(() => ({\n hours: arrowHourList,\n minutes: arrowMinuteList,\n seconds: arrowSecondList,\n }))\n const getAmPmFlag = (hour) => {\n const shouldShowAmPm = !!props.amPmMode\n if (!shouldShowAmPm) return ''\n const isCapital = props.amPmMode === 'A'\n // todo locale\n let content = hour < 12 ? ' am' : ' pm'\n if (isCapital) content = content.toUpperCase()\n return content\n }\n\n const emitSelectRange = (type) => {\n if (type === 'hours') {\n ctx.emit('select-range', 0, 2)\n } else if (type === 'minutes') {\n ctx.emit('select-range', 3, 5)\n } else if (type === 'seconds') {\n ctx.emit('select-range', 6, 8)\n }\n currentScrollbar.value = type\n }\n\n const adjustCurrentSpinner = (type) => {\n adjustSpinner(type, timePartsMap.value[type].value)\n }\n\n // NOTE: used by datetime / date-range panel\n // renamed from adjustScrollTop\n // should try to refactory it\n const adjustSpinners = () => {\n adjustCurrentSpinner('hours')\n adjustCurrentSpinner('minutes')\n adjustCurrentSpinner('seconds')\n }\n\n const adjustSpinner = (type, value) => {\n if (props.arrowControl) return\n const el = listRefsMap[type]\n if (el && el.$el) {\n el.$el.querySelector('.el-scrollbar__wrap').scrollTop = Math.max(\n 0,\n value * typeItemHeight(type)\n )\n }\n }\n\n const typeItemHeight = (type) => {\n const el = listRefsMap[type]\n return el.$el.querySelector('li').offsetHeight\n }\n\n const onIncreaseClick = () => {\n scrollDown(1)\n }\n\n const onDecreaseClick = () => {\n scrollDown(-1)\n }\n\n const scrollDown = (step) => {\n if (!currentScrollbar.value) {\n emitSelectRange('hours')\n }\n\n const label = currentScrollbar.value\n let now = timePartsMap.value[label].value\n const total = currentScrollbar.value === 'hours' ? 24 : 60\n now = (now + step + total) % total\n\n modifyDateField(label, now)\n adjustSpinner(label, now)\n nextTick(() => emitSelectRange(currentScrollbar.value))\n }\n\n const modifyDateField = (type, value) => {\n const list = listMap.value[type].value\n const isDisabled = list[value]\n if (isDisabled) return\n switch (type) {\n case 'hours':\n ctx.emit(\n 'change',\n props.spinnerDate\n .hour(value)\n .minute(minutes.value)\n .second(seconds.value)\n )\n break\n case 'minutes':\n ctx.emit(\n 'change',\n props.spinnerDate\n .hour(hours.value)\n .minute(value)\n .second(seconds.value)\n )\n break\n case 'seconds':\n ctx.emit(\n 'change',\n props.spinnerDate\n .hour(hours.value)\n .minute(minutes.value)\n .second(value)\n )\n break\n }\n }\n\n const handleClick = (type, { value, disabled }) => {\n if (!disabled) {\n modifyDateField(type, value)\n emitSelectRange(type)\n adjustSpinner(type, value)\n }\n }\n\n const handleScroll = (type) => {\n isScrolling = true\n debouncedResetScroll(type)\n const value = Math.min(\n Math.round(\n (listRefsMap[type].$el.querySelector('.el-scrollbar__wrap')\n .scrollTop -\n (scrollBarHeight(type) * 0.5 - 10) / typeItemHeight(type) +\n 3) /\n typeItemHeight(type)\n ),\n type === 'hours' ? 23 : 59\n )\n modifyDateField(type, value)\n }\n\n const scrollBarHeight = (type) => {\n return listRefsMap[type].$el.offsetHeight\n }\n\n const bindScrollEvent = () => {\n const bindFuntion = (type) => {\n if (listRefsMap[type] && listRefsMap[type].$el) {\n listRefsMap[type].$el.querySelector('.el-scrollbar__wrap').onscroll =\n () => {\n // TODO: scroll is emitted when set scrollTop programatically\n // should find better solutions in the future!\n handleScroll(type)\n }\n }\n }\n bindFuntion('hours')\n bindFuntion('minutes')\n bindFuntion('seconds')\n }\n\n onMounted(() => {\n nextTick(() => {\n !props.arrowControl && bindScrollEvent()\n adjustSpinners()\n // set selection on the first hour part\n if (props.role === 'start') emitSelectRange('hours')\n })\n })\n\n const setRef = (scrollbar, type) => {\n listRefsMap[type] = scrollbar\n }\n\n ctx.emit('set-option', [`${props.role}_scrollDown`, scrollDown])\n ctx.emit('set-option', [`${props.role}_emitSelectRange`, emitSelectRange])\n\n const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(\n props.disabledHours,\n props.disabledMinutes,\n props.disabledSeconds\n )\n\n watch(\n () => props.spinnerDate,\n () => {\n if (isScrolling) return\n adjustSpinners()\n }\n )\n\n return {\n setRef,\n spinnerItems,\n currentScrollbar,\n hours,\n minutes,\n seconds,\n hoursList,\n minutesList,\n arrowHourList,\n arrowMinuteList,\n arrowSecondList,\n getAmPmFlag,\n emitSelectRange,\n adjustCurrentSpinner,\n typeItemHeight,\n listHoursRef,\n listMinutesRef,\n listSecondsRef,\n onIncreaseClick,\n onDecreaseClick,\n handleClick,\n secondsList,\n timePartsMap,\n arrowListMap,\n listMap,\n }\n },\n})\n</script>\n"],"names":["defineComponent","RepeatClick","ElScrollbar","ElIcon","ArrowUp","ArrowDown","debounce","ref","computed","getTimeLists","_openBlock","_Fragment","_createBlock","_createElementBlock","_normalizeClass","_createCommentVNode","_withCtx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic-time-spinner.js","sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue"],"sourcesContent":["<template>\n <div class=\"el-time-spinner\" :class=\"{ 'has-seconds': showSeconds }\">\n <template v-if=\"!arrowControl\">\n <el-scrollbar\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n :ref=\"(scollbar) => setRef(scollbar, item)\"\n class=\"el-time-spinner__wrapper\"\n wrap-style=\"max-height: inherit;\"\n view-class=\"el-time-spinner__list\"\n noresize\n tag=\"ul\"\n @mouseenter=\"emitSelectRange(item)\"\n @mousemove=\"adjustCurrentSpinner(item)\"\n >\n <li\n v-for=\"(disabled, key) in listMap[item].value\"\n :key=\"key\"\n class=\"el-time-spinner__item\"\n :class=\"{ active: key === timePartsMap[item].value, disabled }\"\n @click=\"handleClick(item, { value: key, disabled })\"\n >\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? key % 12 || 12 : key)).slice(-2)\n }}{{ getAmPmFlag(key) }}\n </template>\n <template v-else>\n {{ ('0' + key).slice(-2) }}\n </template>\n </li>\n </el-scrollbar>\n </template>\n <template v-if=\"arrowControl\">\n <div\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n class=\"el-time-spinner__wrapper is-arrow\"\n @mouseenter=\"emitSelectRange(item)\"\n >\n <el-icon\n v-repeat-click=\"onDecreaseClick\"\n class=\"el-time-spinner__arrow arrow-up\"\n >\n <arrow-up />\n </el-icon>\n <el-icon\n v-repeat-click=\"onIncreaseClick\"\n class=\"el-time-spinner__arrow arrow-down\"\n >\n <arrow-down />\n </el-icon>\n <ul class=\"el-time-spinner__list\">\n <li\n v-for=\"(time, key) in arrowListMap[item].value\"\n :key=\"key\"\n class=\"el-time-spinner__item\"\n :class=\"{\n active: time === timePartsMap[item].value,\n disabled: listMap[item].value[time],\n }\"\n >\n <template v-if=\"typeof time === 'number'\">\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? time % 12 || 12 : time)).slice(-2)\n }}{{ getAmPmFlag(time) }}\n </template>\n <template v-else>\n {{ ('0' + time).slice(-2) }}\n </template>\n </template>\n </li>\n </ul>\n </div>\n </template>\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, ref, nextTick, computed, onMounted, watch } from 'vue'\nimport { debounce } from 'lodash-unified'\nimport { RepeatClick } from '@element-plus/directives'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowUp, ArrowDown } from '@element-plus/icons-vue'\nimport { getTimeLists } from './useTimePicker'\n\nimport type { PropType, Ref } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type { Nullable } from '@element-plus/utils/types'\n\nexport default defineComponent({\n directives: {\n repeatClick: RepeatClick,\n },\n\n components: {\n ElScrollbar,\n ElIcon,\n ArrowUp,\n ArrowDown,\n },\n\n props: {\n role: {\n type: String,\n required: true,\n },\n spinnerDate: {\n type: Object as PropType<Dayjs>,\n required: true,\n },\n showSeconds: {\n type: Boolean,\n default: true,\n },\n arrowControl: Boolean,\n amPmMode: {\n type: String,\n default: '', // 'a': am/pm; 'A': AM/PM\n },\n disabledHours: {\n type: Function,\n },\n disabledMinutes: {\n type: Function,\n },\n disabledSeconds: {\n type: Function,\n },\n },\n\n emits: ['change', 'select-range', 'set-option'],\n\n setup(props, ctx) {\n // data\n let isScrolling = false\n const debouncedResetScroll = debounce((type) => {\n isScrolling = false\n adjustCurrentSpinner(type)\n }, 200)\n const currentScrollbar = ref(null)\n const listHoursRef: Ref<Nullable<HTMLElement>> = ref(null)\n const listMinutesRef: Ref<Nullable<HTMLElement>> = ref(null)\n const listSecondsRef: Ref<Nullable<HTMLElement>> = ref(null)\n const listRefsMap = {\n hours: listHoursRef,\n minutes: listMinutesRef,\n seconds: listSecondsRef,\n }\n\n // computed\n const spinnerItems = computed(() => {\n const arr = ['hours', 'minutes', 'seconds']\n return props.showSeconds ? arr : arr.slice(0, 2)\n })\n const hours = computed(() => {\n return props.spinnerDate.hour()\n })\n const minutes = computed(() => {\n return props.spinnerDate.minute()\n })\n const seconds = computed(() => {\n return props.spinnerDate.second()\n })\n const timePartsMap = computed(() => ({\n hours,\n minutes,\n seconds,\n }))\n const hoursList = computed(() => {\n return getHoursList(props.role)\n })\n const minutesList = computed(() => {\n return getMinutesList(hours.value, props.role)\n })\n const secondsList = computed(() => {\n return getSecondsList(hours.value, minutes.value, props.role)\n })\n const listMap = computed(() => ({\n hours: hoursList,\n minutes: minutesList,\n seconds: secondsList,\n }))\n const arrowHourList = computed(() => {\n const hour = hours.value\n return [\n hour > 0 ? hour - 1 : undefined,\n hour,\n hour < 23 ? hour + 1 : undefined,\n ]\n })\n const arrowMinuteList = computed(() => {\n const minute = minutes.value\n return [\n minute > 0 ? minute - 1 : undefined,\n minute,\n minute < 59 ? minute + 1 : undefined,\n ]\n })\n const arrowSecondList = computed(() => {\n const second = seconds.value\n return [\n second > 0 ? second - 1 : undefined,\n second,\n second < 59 ? second + 1 : undefined,\n ]\n })\n const arrowListMap = computed(() => ({\n hours: arrowHourList,\n minutes: arrowMinuteList,\n seconds: arrowSecondList,\n }))\n const getAmPmFlag = (hour) => {\n const shouldShowAmPm = !!props.amPmMode\n if (!shouldShowAmPm) return ''\n const isCapital = props.amPmMode === 'A'\n // todo locale\n let content = hour < 12 ? ' am' : ' pm'\n if (isCapital) content = content.toUpperCase()\n return content\n }\n\n const emitSelectRange = (type) => {\n if (type === 'hours') {\n ctx.emit('select-range', 0, 2)\n } else if (type === 'minutes') {\n ctx.emit('select-range', 3, 5)\n } else if (type === 'seconds') {\n ctx.emit('select-range', 6, 8)\n }\n currentScrollbar.value = type\n }\n\n const adjustCurrentSpinner = (type) => {\n adjustSpinner(type, timePartsMap.value[type].value)\n }\n\n // NOTE: used by datetime / date-range panel\n // renamed from adjustScrollTop\n // should try to refactory it\n const adjustSpinners = () => {\n adjustCurrentSpinner('hours')\n adjustCurrentSpinner('minutes')\n adjustCurrentSpinner('seconds')\n }\n\n const adjustSpinner = (type, value) => {\n if (props.arrowControl) return\n const el = listRefsMap[type]\n if (el && el.$el) {\n el.$el.querySelector('.el-scrollbar__wrap').scrollTop = Math.max(\n 0,\n value * typeItemHeight(type)\n )\n }\n }\n\n const typeItemHeight = (type) => {\n const el = listRefsMap[type]\n return el.$el.querySelector('li').offsetHeight\n }\n\n const onIncreaseClick = () => {\n scrollDown(1)\n }\n\n const onDecreaseClick = () => {\n scrollDown(-1)\n }\n\n const scrollDown = (step) => {\n if (!currentScrollbar.value) {\n emitSelectRange('hours')\n }\n\n const label = currentScrollbar.value\n let now = timePartsMap.value[label].value\n const total = currentScrollbar.value === 'hours' ? 24 : 60\n now = (now + step + total) % total\n\n modifyDateField(label, now)\n adjustSpinner(label, now)\n nextTick(() => emitSelectRange(currentScrollbar.value))\n }\n\n const modifyDateField = (type, value) => {\n const list = listMap.value[type].value\n const isDisabled = list[value]\n if (isDisabled) return\n switch (type) {\n case 'hours':\n ctx.emit(\n 'change',\n props.spinnerDate\n .hour(value)\n .minute(minutes.value)\n .second(seconds.value)\n )\n break\n case 'minutes':\n ctx.emit(\n 'change',\n props.spinnerDate\n .hour(hours.value)\n .minute(value)\n .second(seconds.value)\n )\n break\n case 'seconds':\n ctx.emit(\n 'change',\n props.spinnerDate\n .hour(hours.value)\n .minute(minutes.value)\n .second(value)\n )\n break\n }\n }\n\n const handleClick = (type, { value, disabled }) => {\n if (!disabled) {\n modifyDateField(type, value)\n emitSelectRange(type)\n adjustSpinner(type, value)\n }\n }\n\n const handleScroll = (type) => {\n isScrolling = true\n debouncedResetScroll(type)\n const value = Math.min(\n Math.round(\n (listRefsMap[type].$el.querySelector('.el-scrollbar__wrap')\n .scrollTop -\n (scrollBarHeight(type) * 0.5 - 10) / typeItemHeight(type) +\n 3) /\n typeItemHeight(type)\n ),\n type === 'hours' ? 23 : 59\n )\n modifyDateField(type, value)\n }\n\n const scrollBarHeight = (type) => {\n return listRefsMap[type].$el.offsetHeight\n }\n\n const bindScrollEvent = () => {\n const bindFuntion = (type) => {\n if (listRefsMap[type] && listRefsMap[type].$el) {\n listRefsMap[type].$el.querySelector('.el-scrollbar__wrap').onscroll =\n () => {\n // TODO: scroll is emitted when set scrollTop programatically\n // should find better solutions in the future!\n handleScroll(type)\n }\n }\n }\n bindFuntion('hours')\n bindFuntion('minutes')\n bindFuntion('seconds')\n }\n\n onMounted(() => {\n nextTick(() => {\n !props.arrowControl && bindScrollEvent()\n adjustSpinners()\n // set selection on the first hour part\n if (props.role === 'start') emitSelectRange('hours')\n })\n })\n\n const setRef = (scrollbar, type) => {\n listRefsMap[type] = scrollbar\n }\n\n ctx.emit('set-option', [`${props.role}_scrollDown`, scrollDown])\n ctx.emit('set-option', [`${props.role}_emitSelectRange`, emitSelectRange])\n\n const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(\n props.disabledHours,\n props.disabledMinutes,\n props.disabledSeconds\n )\n\n watch(\n () => props.spinnerDate,\n () => {\n if (isScrolling) return\n adjustSpinners()\n }\n )\n\n return {\n setRef,\n spinnerItems,\n currentScrollbar,\n hours,\n minutes,\n seconds,\n hoursList,\n minutesList,\n arrowHourList,\n arrowMinuteList,\n arrowSecondList,\n getAmPmFlag,\n emitSelectRange,\n adjustCurrentSpinner,\n typeItemHeight,\n listHoursRef,\n listMinutesRef,\n listSecondsRef,\n onIncreaseClick,\n onDecreaseClick,\n handleClick,\n secondsList,\n timePartsMap,\n arrowListMap,\n listMap,\n }\n },\n})\n</script>\n"],"names":["defineComponent","RepeatClick","ElScrollbar","ElIcon","ArrowUp","ArrowDown","debounce","ref","computed","getTimeLists","_openBlock","_Fragment","_createBlock","_createElementBlock","_normalizeClass","_createCommentVNode","_withCtx"],"mappings":";;;;;;;;;;;;;;AAyFA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,YAAY;AAAA,IACV,aAAaC;AAAA;AAAA,EAGf,YAAY;AAAA,iBACVC;AAAA,YACAC;AAAA,aACAC;AAAA,eACAC;AAAA;AAAA,EAGF,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA;AAAA,IAEZ,aAAa;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA;AAAA,IAEZ,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,cAAc;AAAA,IACd,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,eAAe;AAAA,MACb,MAAM;AAAA;AAAA,IAER,iBAAiB;AAAA,MACf,MAAM;AAAA;AAAA,IAER,iBAAiB;AAAA,MACf,MAAM;AAAA;AAAA;AAAA,EAIV,OAAO,CAAC,UAAU,gBAAgB;AAAA,EAElC,MAAM,OAAO,KAAK;AAEhB,QAAI,cAAc;AAClB,UAAM,uBAAuBC,uBAAS,CAAC,SAAS;AAC9C,oBAAc;AACd,2BAAqB;AAAA,OACpB;AACH,UAAM,mBAAmBC,QAAI;AAC7B,UAAM,eAA2CA,QAAI;AACrD,UAAM,iBAA6CA,QAAI;AACvD,UAAM,iBAA6CA,QAAI;AACvD,UAAM,cAAc;AAAA,MAClB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA;AAIX,UAAM,eAAeC,aAAS,MAAM;AAClC,YAAM,MAAM,CAAC,SAAS,WAAW;AACjC,aAAO,MAAM,cAAc,MAAM,IAAI,MAAM,GAAG;AAAA;AAEhD,UAAM,QAAQA,aAAS,MAAM;AAC3B,aAAO,MAAM,YAAY;AAAA;AAE3B,UAAM,UAAUA,aAAS,MAAM;AAC7B,aAAO,MAAM,YAAY;AAAA;AAE3B,UAAM,UAAUA,aAAS,MAAM;AAC7B,aAAO,MAAM,YAAY;AAAA;AAE3B,UAAM,eAAeA,aAAS;AAAO,MACnC;AAAA,MACA;AAAA,MACA;AAAA;AAEF,UAAM,YAAYA,aAAS,MAAM;AAC/B,aAAO,aAAa,MAAM;AAAA;AAE5B,UAAM,cAAcA,aAAS,MAAM;AACjC,aAAO,eAAe,MAAM,OAAO,MAAM;AAAA;AAE3C,UAAM,cAAcA,aAAS,MAAM;AACjC,aAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,MAAM;AAAA;AAE1D,UAAM,UAAUA,aAAS;AAAO,MAC9B,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA;AAEX,UAAM,gBAAgBA,aAAS,MAAM;AACnC,YAAM,OAAO,MAAM;AACnB,aAAO;AAAA,QACL,OAAO,IAAI,OAAO,IAAI;AAAA,QACtB;AAAA,QACA,OAAO,KAAK,OAAO,IAAI;AAAA;AAAA;AAG3B,UAAM,kBAAkBA,aAAS,MAAM;AACrC,YAAM,SAAS,QAAQ;AACvB,aAAO;AAAA,QACL,SAAS,IAAI,SAAS,IAAI;AAAA,QAC1B;AAAA,QACA,SAAS,KAAK,SAAS,IAAI;AAAA;AAAA;AAG/B,UAAM,kBAAkBA,aAAS,MAAM;AACrC,YAAM,SAAS,QAAQ;AACvB,aAAO;AAAA,QACL,SAAS,IAAI,SAAS,IAAI;AAAA,QAC1B;AAAA,QACA,SAAS,KAAK,SAAS,IAAI;AAAA;AAAA;AAG/B,UAAM,eAAeA,aAAS;AAAO,MACnC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA;AAEX,UAAM,cAAc,CAAC,SAAS;AAC5B,YAAM,iBAAiB,CAAC,CAAC,MAAM;AAC/B,UAAI,CAAC;AAAgB,eAAO;AAC5B,YAAM,YAAY,MAAM,aAAa;AAErC,UAAI,UAAU,OAAO,KAAK,QAAQ;AAClC,UAAI;AAAW,kBAAU,QAAQ;AACjC,aAAO;AAAA;AAGT,UAAM,kBAAkB,CAAC,SAAS;AAChC,UAAI,SAAS,SAAS;AACpB,YAAI,KAAK,gBAAgB,GAAG;AAAA,iBACnB,SAAS,WAAW;AAC7B,YAAI,KAAK,gBAAgB,GAAG;AAAA,iBACnB,SAAS,WAAW;AAC7B,YAAI,KAAK,gBAAgB,GAAG;AAAA;AAE9B,uBAAiB,QAAQ;AAAA;AAG3B,UAAM,uBAAuB,CAAC,SAAS;AACrC,oBAAc,MAAM,aAAa,MAAM,MAAM;AAAA;AAM/C,UAAM,iBAAiB,MAAM;AAC3B,2BAAqB;AACrB,2BAAqB;AACrB,2BAAqB;AAAA;AAGvB,UAAM,gBAAgB,CAAC,MAAM,UAAU;AACrC,UAAI,MAAM;AAAc;AACxB,YAAM,KAAK,YAAY;AACvB,UAAI,MAAM,GAAG,KAAK;AAChB,WAAG,IAAI,cAAc,uBAAuB,YAAY,KAAK,IAC3D,GACA,QAAQ,eAAe;AAAA;AAAA;AAK7B,UAAM,iBAAiB,CAAC,SAAS;AAC/B,YAAM,KAAK,YAAY;AACvB,aAAO,GAAG,IAAI,cAAc,MAAM;AAAA;AAGpC,UAAM,kBAAkB,MAAM;AAC5B,iBAAW;AAAA;AAGb,UAAM,kBAAkB,MAAM;AAC5B,iBAAW;AAAA;AAGb,UAAM,aAAa,CAAC,SAAS;AAC3B,UAAI,CAAC,iBAAiB,OAAO;AAC3B,wBAAgB;AAAA;AAGlB,YAAM,QAAQ,iBAAiB;AAC/B,UAAI,MAAM,aAAa,MAAM,OAAO;AACpC,YAAM,QAAQ,iBAAiB,UAAU,UAAU,KAAK;AACxD,YAAO,OAAM,OAAO,SAAS;AAE7B,sBAAgB,OAAO;AACvB,oBAAc,OAAO;AACrB,mBAAS,MAAM,gBAAgB,iBAAiB;AAAA;AAGlD,UAAM,kBAAkB,CAAC,MAAM,UAAU;AACvC,YAAM,OAAO,QAAQ,MAAM,MAAM;AACjC,YAAM,aAAa,KAAK;AACxB,UAAI;AAAY;AAChB,cAAQ;AAAA,aACD;AACH,cAAI,KACF,UACA,MAAM,YACH,KAAK,OACL,OAAO,QAAQ,OACf,OAAO,QAAQ;AAEpB;AAAA,aACG;AACH,cAAI,KACF,UACA,MAAM,YACH,KAAK,MAAM,OACX,OAAO,OACP,OAAO,QAAQ;AAEpB;AAAA,aACG;AACH,cAAI,KACF,UACA,MAAM,YACH,KAAK,MAAM,OACX,OAAO,QAAQ,OACf,OAAO;AAEZ;AAAA;AAAA;AAIN,UAAM,cAAc,CAAC,MAAM,EAAE,OAAO,eAAe;AACjD,UAAI,CAAC,UAAU;AACb,wBAAgB,MAAM;AACtB,wBAAgB;AAChB,sBAAc,MAAM;AAAA;AAAA;AAIxB,UAAM,eAAe,CAAC,SAAS;AAC7B,oBAAc;AACd,2BAAqB;AACrB,YAAM,QAAQ,KAAK,IACjB,KAAK,MACF,aAAY,MAAM,IAAI,cAAc,uBAClC,YACA,iBAAgB,QAAQ,MAAM,MAAM,eAAe,QACpD,KACA,eAAe,QAEnB,SAAS,UAAU,KAAK;AAE1B,sBAAgB,MAAM;AAAA;AAGxB,UAAM,kBAAkB,CAAC,SAAS;AAChC,aAAO,YAAY,MAAM,IAAI;AAAA;AAG/B,UAAM,kBAAkB,MAAM;AAC5B,YAAM,cAAc,CAAC,SAAS;AAC5B,YAAI,YAAY,SAAS,YAAY,MAAM,KAAK;AAC9C,sBAAY,MAAM,IAAI,cAAc,uBAAuB,WACzD,MAAM;AAGJ,yBAAa;AAAA;AAAA;AAAA;AAIrB,kBAAY;AACZ,kBAAY;AACZ,kBAAY;AAAA;AAGd,kBAAU,MAAM;AACd,mBAAS,MAAM;AACb,SAAC,MAAM,gBAAgB;AACvB;AAEA,YAAI,MAAM,SAAS;AAAS,0BAAgB;AAAA;AAAA;AAIhD,UAAM,SAAS,CAAC,WAAW,SAAS;AAClC,kBAAY,QAAQ;AAAA;AAGtB,QAAI,KAAK,cAAc,CAAC,GAAG,MAAM,mBAAmB;AACpD,QAAI,KAAK,cAAc,CAAC,GAAG,MAAM,wBAAwB;AAEzD,UAAM,EAAE,cAAc,gBAAgB,mBAAmBC,2BACvD,MAAM,eACN,MAAM,iBACN,MAAM;AAGR,cACE,MAAM,MAAM,aACZ,MAAM;AACJ,UAAI;AAAa;AACjB;AAAA;AAIJ,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;;;;;;;SAjaMC,wCAAC,OAAiB;AAAA;;sEA6BTC;aAzBPD,iBAAIE;AAAA;QACT,SAAM;AAAA,QACP,KAAK,cAAC,sBAA0B;AAAA,QAChC;AAAA,QACA,cAAW;AAAA,QACX,cAAQ;AAAA,QACR,UAAQ;AAAA,QACP;AAAA,QACA,cAAS,YAAE;AAAA;;mCAEZ;AAAA,qEAcK;mBAZGF,iBAAGG;AAAA,cACT;AAAA,cAEC,OAAKC,mBAAE,0BAAgB,UAAgB,QAAQ;AAAA;eAEhC;AAAA,wFACH,YAAQ;AAAA;iFAIN,EAAE,KAAK;AAAA;;;;;;;gBAKZC,uBAAY;AAAA,qEAC1BJ,cAuCM;aArCED,iBAAIG;AAAA,QACV,KAAK;AAAA,QACJ;AAAA;;6CAMaD;AAAA,mBAAZI,YAAY;AAAA;;;;;;6CAMEJ;AAAA,mBAAdI,YAAc;AAAA;;;;;;qCAGd;AAAA,qEAkBK;mBAhBGN,iBAAGG;AAAA,cACT;AAAA,qBACgCC,mBAAS,0BAAwB;AAAA,iCAA0B,KAAO,aAAa,MAAI;AAAA;;;2DAM7FD;AAAA,0FACP,YAAQ;AAAA;mFAIT,EAAI,KAAE,KAAK;AAAA;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
var dayjs = require('dayjs');
|
|
7
|
-
var
|
|
7
|
+
var lodashUnified = require('lodash-unified');
|
|
8
8
|
require('../../../../hooks/index.js');
|
|
9
9
|
var aria = require('../../../../utils/aria.js');
|
|
10
10
|
var basicTimeSpinner = require('./basic-time-spinner.js');
|
|
@@ -15,7 +15,6 @@ var index = require('../../../../hooks/use-locale/index.js');
|
|
|
15
15
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
16
|
|
|
17
17
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
18
|
-
var union__default = /*#__PURE__*/_interopDefaultLegacy(union);
|
|
19
18
|
|
|
20
19
|
const makeSelectRange = (start, end) => {
|
|
21
20
|
const result = [];
|
|
@@ -122,7 +121,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
122
121
|
const compareDate = compare || (isStart ? maxDate.value : minDate.value);
|
|
123
122
|
const compareHour = compareDate.hour();
|
|
124
123
|
const nextDisable = isStart ? makeSelectRange(compareHour + 1, 23) : makeSelectRange(0, compareHour - 1);
|
|
125
|
-
return
|
|
124
|
+
return lodashUnified.union(defaultDisable, nextDisable);
|
|
126
125
|
};
|
|
127
126
|
const disabledMinutes_ = (hour, role, compare) => {
|
|
128
127
|
const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : [];
|
|
@@ -134,7 +133,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
134
133
|
}
|
|
135
134
|
const compareMinute = compareDate.minute();
|
|
136
135
|
const nextDisable = isStart ? makeSelectRange(compareMinute + 1, 59) : makeSelectRange(0, compareMinute - 1);
|
|
137
|
-
return
|
|
136
|
+
return lodashUnified.union(defaultDisable, nextDisable);
|
|
138
137
|
};
|
|
139
138
|
const disabledSeconds_ = (hour, minute, role, compare) => {
|
|
140
139
|
const defaultDisable = disabledSeconds ? disabledSeconds(hour, minute, role) : [];
|
|
@@ -147,7 +146,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
147
146
|
}
|
|
148
147
|
const compareSecond = compareDate.second();
|
|
149
148
|
const nextDisable = isStart ? makeSelectRange(compareSecond + 1, 59) : makeSelectRange(0, compareSecond - 1);
|
|
150
|
-
return
|
|
149
|
+
return lodashUnified.union(defaultDisable, nextDisable);
|
|
151
150
|
};
|
|
152
151
|
const getRangeAvailableTime = (dates) => {
|
|
153
152
|
return dates.map((_, index) => getRangeAvailableTimeEach(dates[0], dates[1], index === 0 ? "start" : "end"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-time-range.js","sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue"],"sourcesContent":["<template>\n <div v-if=\"actualVisible\" class=\"el-time-range-picker el-picker-panel\">\n <div class=\"el-time-range-picker__content\">\n <div class=\"el-time-range-picker__cell\">\n <div class=\"el-time-range-picker__header\">\n {{ t('el.datepicker.startTime') }}\n </div>\n <div\n :class=\"{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }\"\n class=\"el-time-range-picker__body el-time-panel__content\"\n >\n <time-spinner\n ref=\"minSpinner\"\n role=\"start\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"minDate\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMinChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMinSelectionRange\"\n />\n </div>\n </div>\n <div class=\"el-time-range-picker__cell\">\n <div class=\"el-time-range-picker__header\">\n {{ t('el.datepicker.endTime') }}\n </div>\n <div\n :class=\"{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }\"\n class=\"el-time-range-picker__body el-time-panel__content\"\n >\n <time-spinner\n ref=\"maxSpinner\"\n role=\"end\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"maxDate\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMaxChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMaxSelectionRange\"\n />\n </div>\n </div>\n </div>\n <div class=\"el-time-panel__footer\">\n <button\n type=\"button\"\n class=\"el-time-panel__btn cancel\"\n @click=\"handleCancel()\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n class=\"el-time-panel__btn confirm\"\n :disabled=\"btnConfirmDisabled\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, inject } from 'vue'\nimport dayjs from 'dayjs'\nimport union from 'lodash/union'\nimport { useLocale } from '@element-plus/hooks'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport TimeSpinner from './basic-time-spinner.vue'\nimport { getAvailableArrs, useOldValue } from './useTimePicker'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst makeSelectRange = (start: number, end: number) => {\n const result = []\n for (let i = start; i <= end; i++) {\n result.push(i)\n }\n return result\n}\nexport default defineComponent({\n components: { TimeSpinner },\n\n props: {\n visible: Boolean,\n actualVisible: Boolean,\n parsedValue: {\n type: [Array] as PropType<Array<Dayjs>>,\n },\n format: {\n type: String,\n default: '',\n },\n },\n\n emits: ['pick', 'select-range', 'set-picker-option'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const minDate = computed(() => props.parsedValue[0])\n const maxDate = computed(() => props.parsedValue[1])\n const oldValue = useOldValue(props)\n const handleCancel = () => {\n ctx.emit('pick', oldValue.value, null)\n }\n const showSeconds = computed(() => {\n return props.format.includes('ss')\n })\n const amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n })\n\n const minSelectableRange = ref([])\n const maxSelectableRange = ref([])\n\n const handleConfirm = (visible = false) => {\n ctx.emit('pick', [minDate.value, maxDate.value], visible)\n }\n\n const handleMinChange = (date) => {\n handleChange(date.millisecond(0), maxDate.value)\n }\n const handleMaxChange = (date) => {\n handleChange(minDate.value, date.millisecond(0))\n }\n\n const isValidValue = (_date: Dayjs[]) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value))\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1])\n }\n\n const handleChange = (_minDate, _maxDate) => {\n // todo getRangeAvailableTime(_date).millisecond(0)\n ctx.emit('pick', [_minDate, _maxDate], true)\n }\n const btnConfirmDisabled = computed(() => {\n return minDate.value > maxDate.value\n })\n\n const selectionRange = ref([0, 2])\n const setMinSelectionRange = (start, end) => {\n ctx.emit('select-range', start, end, 'min')\n selectionRange.value = [start, end]\n }\n\n const offset = computed(() => (showSeconds.value ? 11 : 8))\n const setMaxSelectionRange = (start, end) => {\n ctx.emit('select-range', start, end, 'max')\n selectionRange.value = [start + offset.value, end + offset.value]\n }\n\n const changeSelectionRange = (step) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11]\n const mapping = ['hours', 'minutes'].concat(\n showSeconds.value ? ['seconds'] : []\n )\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n const half = list.length / 2\n if (next < half) {\n timePickerOptions['start_emitSelectRange'](mapping[next])\n } else {\n timePickerOptions['end_emitSelectRange'](mapping[next - half])\n }\n }\n\n const handleKeydown = (event: KeyboardEvent) => {\n const code = event.code\n\n if (code === EVENT_CODE.left || code === EVENT_CODE.right) {\n const step = code === EVENT_CODE.left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if (code === EVENT_CODE.up || code === EVENT_CODE.down) {\n const step = code === EVENT_CODE.up ? -1 : 1\n const role = selectionRange.value[0] < offset.value ? 'start' : 'end'\n timePickerOptions[`${role}_scrollDown`](step)\n event.preventDefault()\n return\n }\n }\n\n const disabledHours_ = (role, compare) => {\n const defaultDisable = disabledHours ? disabledHours(role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? maxDate.value : minDate.value)\n const compareHour = compareDate.hour()\n const nextDisable = isStart\n ? makeSelectRange(compareHour + 1, 23)\n : makeSelectRange(0, compareHour - 1)\n return union(defaultDisable, nextDisable)\n }\n const disabledMinutes_ = (hour, role, compare) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? maxDate.value : minDate.value)\n const compareHour = compareDate.hour()\n if (hour !== compareHour) {\n return defaultDisable\n }\n const compareMinute = compareDate.minute()\n const nextDisable = isStart\n ? makeSelectRange(compareMinute + 1, 59)\n : makeSelectRange(0, compareMinute - 1)\n return union(defaultDisable, nextDisable)\n }\n const disabledSeconds_ = (hour, minute, role, compare) => {\n const defaultDisable = disabledSeconds\n ? disabledSeconds(hour, minute, role)\n : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? maxDate.value : minDate.value)\n const compareHour = compareDate.hour()\n const compareMinute = compareDate.minute()\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable\n }\n const compareSecond = compareDate.second()\n const nextDisable = isStart\n ? makeSelectRange(compareSecond + 1, 59)\n : makeSelectRange(0, compareSecond - 1)\n return union(defaultDisable, nextDisable)\n }\n\n const getRangeAvailableTime = (dates: Array<Dayjs>) => {\n return dates.map((_, index) =>\n getRangeAvailableTimeEach(\n dates[0],\n dates[1],\n index === 0 ? 'start' : 'end'\n )\n )\n }\n\n const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n getAvailableArrs(disabledHours_, disabledMinutes_, disabledSeconds_)\n\n const getRangeAvailableTimeEach = (\n startDate: Dayjs,\n endDate: Dayjs,\n role\n ) => {\n const availableMap = {\n hour: getAvailableHours,\n minute: getAvailableMinutes,\n second: getAvailableSeconds,\n }\n const isStart = role === 'start'\n let result = isStart ? startDate : endDate\n const compareDate = isStart ? endDate : startDate\n ;['hour', 'minute', 'second'].forEach((_) => {\n if (availableMap[_]) {\n let availableArr\n const method = availableMap[_]\n if (_ === 'minute') {\n availableArr = method(result.hour(), role, compareDate)\n } else if (_ === 'second') {\n availableArr = method(\n result.hour(),\n result.minute(),\n role,\n compareDate\n )\n } else {\n availableArr = method(role, compareDate)\n }\n if (\n availableArr &&\n availableArr.length &&\n !availableArr.includes(result[_]())\n ) {\n const pos = isStart ? 0 : availableArr.length - 1\n result = result[_](availableArr[pos])\n }\n }\n })\n return result\n }\n\n const parseUserInput = (value: Dayjs[] | Dayjs) => {\n if (!value) return null\n if (Array.isArray(value)) {\n return value.map((_) => dayjs(_, props.format).locale(lang.value))\n }\n return dayjs(value, props.format).locale(lang.value)\n }\n\n const formatToString = (value: Dayjs[] | Dayjs) => {\n if (!value) return null\n if (Array.isArray(value)) {\n return value.map((_) => _.format(props.format))\n }\n return value.format(props.format)\n }\n\n const getDefaultValue = () => {\n if (Array.isArray(defaultValue)) {\n return defaultValue.map((_) => dayjs(_).locale(lang.value))\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value)\n return [defaultDay, defaultDay.add(60, 'm')]\n }\n\n ctx.emit('set-picker-option', ['formatToString', formatToString])\n ctx.emit('set-picker-option', ['parseUserInput', parseUserInput])\n ctx.emit('set-picker-option', ['isValidValue', isValidValue])\n ctx.emit('set-picker-option', ['handleKeydown', handleKeydown])\n ctx.emit('set-picker-option', ['getDefaultValue', getDefaultValue])\n ctx.emit('set-picker-option', [\n 'getRangeAvailableTime',\n getRangeAvailableTime,\n ])\n\n const timePickerOptions = {} as any\n const onSetOption = (e) => {\n timePickerOptions[e[0]] = e[1]\n }\n\n const pickerBase = inject('EP_PICKER_BASE') as any\n const {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n } = pickerBase.props\n\n return {\n arrowControl,\n onSetOption,\n setMaxSelectionRange,\n setMinSelectionRange,\n btnConfirmDisabled,\n handleCancel,\n handleConfirm,\n t,\n showSeconds,\n minDate,\n maxDate,\n amPmMode,\n handleMinChange,\n handleMaxChange,\n minSelectableRange,\n maxSelectableRange,\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_,\n }\n },\n})\n</script>\n"],"names":["defineComponent","TimeSpinner","useLocale","computed","useOldValue","ref","dayjs","EVENT_CODE","union","getAvailableArrs","inject","_createElementBlock","_createElementVNode","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"panel-time-range.js","sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue"],"sourcesContent":["<template>\n <div v-if=\"actualVisible\" class=\"el-time-range-picker el-picker-panel\">\n <div class=\"el-time-range-picker__content\">\n <div class=\"el-time-range-picker__cell\">\n <div class=\"el-time-range-picker__header\">\n {{ t('el.datepicker.startTime') }}\n </div>\n <div\n :class=\"{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }\"\n class=\"el-time-range-picker__body el-time-panel__content\"\n >\n <time-spinner\n ref=\"minSpinner\"\n role=\"start\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"minDate\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMinChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMinSelectionRange\"\n />\n </div>\n </div>\n <div class=\"el-time-range-picker__cell\">\n <div class=\"el-time-range-picker__header\">\n {{ t('el.datepicker.endTime') }}\n </div>\n <div\n :class=\"{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }\"\n class=\"el-time-range-picker__body el-time-panel__content\"\n >\n <time-spinner\n ref=\"maxSpinner\"\n role=\"end\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"maxDate\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMaxChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMaxSelectionRange\"\n />\n </div>\n </div>\n </div>\n <div class=\"el-time-panel__footer\">\n <button\n type=\"button\"\n class=\"el-time-panel__btn cancel\"\n @click=\"handleCancel()\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n class=\"el-time-panel__btn confirm\"\n :disabled=\"btnConfirmDisabled\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, inject } from 'vue'\nimport dayjs from 'dayjs'\nimport { union } from 'lodash-unified'\nimport { useLocale } from '@element-plus/hooks'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport TimeSpinner from './basic-time-spinner.vue'\nimport { getAvailableArrs, useOldValue } from './useTimePicker'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst makeSelectRange = (start: number, end: number) => {\n const result = []\n for (let i = start; i <= end; i++) {\n result.push(i)\n }\n return result\n}\nexport default defineComponent({\n components: { TimeSpinner },\n\n props: {\n visible: Boolean,\n actualVisible: Boolean,\n parsedValue: {\n type: [Array] as PropType<Array<Dayjs>>,\n },\n format: {\n type: String,\n default: '',\n },\n },\n\n emits: ['pick', 'select-range', 'set-picker-option'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const minDate = computed(() => props.parsedValue[0])\n const maxDate = computed(() => props.parsedValue[1])\n const oldValue = useOldValue(props)\n const handleCancel = () => {\n ctx.emit('pick', oldValue.value, null)\n }\n const showSeconds = computed(() => {\n return props.format.includes('ss')\n })\n const amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n })\n\n const minSelectableRange = ref([])\n const maxSelectableRange = ref([])\n\n const handleConfirm = (visible = false) => {\n ctx.emit('pick', [minDate.value, maxDate.value], visible)\n }\n\n const handleMinChange = (date) => {\n handleChange(date.millisecond(0), maxDate.value)\n }\n const handleMaxChange = (date) => {\n handleChange(minDate.value, date.millisecond(0))\n }\n\n const isValidValue = (_date: Dayjs[]) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value))\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1])\n }\n\n const handleChange = (_minDate, _maxDate) => {\n // todo getRangeAvailableTime(_date).millisecond(0)\n ctx.emit('pick', [_minDate, _maxDate], true)\n }\n const btnConfirmDisabled = computed(() => {\n return minDate.value > maxDate.value\n })\n\n const selectionRange = ref([0, 2])\n const setMinSelectionRange = (start, end) => {\n ctx.emit('select-range', start, end, 'min')\n selectionRange.value = [start, end]\n }\n\n const offset = computed(() => (showSeconds.value ? 11 : 8))\n const setMaxSelectionRange = (start, end) => {\n ctx.emit('select-range', start, end, 'max')\n selectionRange.value = [start + offset.value, end + offset.value]\n }\n\n const changeSelectionRange = (step) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11]\n const mapping = ['hours', 'minutes'].concat(\n showSeconds.value ? ['seconds'] : []\n )\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n const half = list.length / 2\n if (next < half) {\n timePickerOptions['start_emitSelectRange'](mapping[next])\n } else {\n timePickerOptions['end_emitSelectRange'](mapping[next - half])\n }\n }\n\n const handleKeydown = (event: KeyboardEvent) => {\n const code = event.code\n\n if (code === EVENT_CODE.left || code === EVENT_CODE.right) {\n const step = code === EVENT_CODE.left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if (code === EVENT_CODE.up || code === EVENT_CODE.down) {\n const step = code === EVENT_CODE.up ? -1 : 1\n const role = selectionRange.value[0] < offset.value ? 'start' : 'end'\n timePickerOptions[`${role}_scrollDown`](step)\n event.preventDefault()\n return\n }\n }\n\n const disabledHours_ = (role, compare) => {\n const defaultDisable = disabledHours ? disabledHours(role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? maxDate.value : minDate.value)\n const compareHour = compareDate.hour()\n const nextDisable = isStart\n ? makeSelectRange(compareHour + 1, 23)\n : makeSelectRange(0, compareHour - 1)\n return union(defaultDisable, nextDisable)\n }\n const disabledMinutes_ = (hour, role, compare) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? maxDate.value : minDate.value)\n const compareHour = compareDate.hour()\n if (hour !== compareHour) {\n return defaultDisable\n }\n const compareMinute = compareDate.minute()\n const nextDisable = isStart\n ? makeSelectRange(compareMinute + 1, 59)\n : makeSelectRange(0, compareMinute - 1)\n return union(defaultDisable, nextDisable)\n }\n const disabledSeconds_ = (hour, minute, role, compare) => {\n const defaultDisable = disabledSeconds\n ? disabledSeconds(hour, minute, role)\n : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? maxDate.value : minDate.value)\n const compareHour = compareDate.hour()\n const compareMinute = compareDate.minute()\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable\n }\n const compareSecond = compareDate.second()\n const nextDisable = isStart\n ? makeSelectRange(compareSecond + 1, 59)\n : makeSelectRange(0, compareSecond - 1)\n return union(defaultDisable, nextDisable)\n }\n\n const getRangeAvailableTime = (dates: Array<Dayjs>) => {\n return dates.map((_, index) =>\n getRangeAvailableTimeEach(\n dates[0],\n dates[1],\n index === 0 ? 'start' : 'end'\n )\n )\n }\n\n const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n getAvailableArrs(disabledHours_, disabledMinutes_, disabledSeconds_)\n\n const getRangeAvailableTimeEach = (\n startDate: Dayjs,\n endDate: Dayjs,\n role\n ) => {\n const availableMap = {\n hour: getAvailableHours,\n minute: getAvailableMinutes,\n second: getAvailableSeconds,\n }\n const isStart = role === 'start'\n let result = isStart ? startDate : endDate\n const compareDate = isStart ? endDate : startDate\n ;['hour', 'minute', 'second'].forEach((_) => {\n if (availableMap[_]) {\n let availableArr\n const method = availableMap[_]\n if (_ === 'minute') {\n availableArr = method(result.hour(), role, compareDate)\n } else if (_ === 'second') {\n availableArr = method(\n result.hour(),\n result.minute(),\n role,\n compareDate\n )\n } else {\n availableArr = method(role, compareDate)\n }\n if (\n availableArr &&\n availableArr.length &&\n !availableArr.includes(result[_]())\n ) {\n const pos = isStart ? 0 : availableArr.length - 1\n result = result[_](availableArr[pos])\n }\n }\n })\n return result\n }\n\n const parseUserInput = (value: Dayjs[] | Dayjs) => {\n if (!value) return null\n if (Array.isArray(value)) {\n return value.map((_) => dayjs(_, props.format).locale(lang.value))\n }\n return dayjs(value, props.format).locale(lang.value)\n }\n\n const formatToString = (value: Dayjs[] | Dayjs) => {\n if (!value) return null\n if (Array.isArray(value)) {\n return value.map((_) => _.format(props.format))\n }\n return value.format(props.format)\n }\n\n const getDefaultValue = () => {\n if (Array.isArray(defaultValue)) {\n return defaultValue.map((_) => dayjs(_).locale(lang.value))\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value)\n return [defaultDay, defaultDay.add(60, 'm')]\n }\n\n ctx.emit('set-picker-option', ['formatToString', formatToString])\n ctx.emit('set-picker-option', ['parseUserInput', parseUserInput])\n ctx.emit('set-picker-option', ['isValidValue', isValidValue])\n ctx.emit('set-picker-option', ['handleKeydown', handleKeydown])\n ctx.emit('set-picker-option', ['getDefaultValue', getDefaultValue])\n ctx.emit('set-picker-option', [\n 'getRangeAvailableTime',\n getRangeAvailableTime,\n ])\n\n const timePickerOptions = {} as any\n const onSetOption = (e) => {\n timePickerOptions[e[0]] = e[1]\n }\n\n const pickerBase = inject('EP_PICKER_BASE') as any\n const {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n } = pickerBase.props\n\n return {\n arrowControl,\n onSetOption,\n setMaxSelectionRange,\n setMinSelectionRange,\n btnConfirmDisabled,\n handleCancel,\n handleConfirm,\n t,\n showSeconds,\n minDate,\n maxDate,\n amPmMode,\n handleMinChange,\n handleMaxChange,\n minSelectableRange,\n maxSelectableRange,\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_,\n }\n },\n})\n</script>\n"],"names":["defineComponent","TimeSpinner","useLocale","computed","useOldValue","ref","dayjs","EVENT_CODE","union","getAvailableArrs","inject","_createElementBlock","_createElementVNode","_toDisplayString"],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var withInstall = require('../../utils/with-install.js');
|
|
6
6
|
var timeline = require('./src/timeline.js');
|
|
7
|
-
var timelineItem$1 = require('./src/timeline-
|
|
8
|
-
var timelineItem = require('./src/timeline-
|
|
7
|
+
var timelineItem$1 = require('./src/timeline-item2.js');
|
|
8
|
+
var timelineItem = require('./src/timeline-item.js');
|
|
9
9
|
|
|
10
10
|
const ElTimeline = withInstall.withInstall(timeline["default"], {
|
|
11
11
|
TimelineItem: timelineItem$1["default"]
|