@coreui/vue-pro 5.14.0 → 5.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/calendar/CCalendar.js +61 -65
  3. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  4. package/dist/cjs/components/calendar/utils.d.ts +53 -2
  5. package/dist/cjs/components/calendar/utils.js +466 -43
  6. package/dist/cjs/components/calendar/utils.js.map +1 -1
  7. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +86 -57
  8. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  9. package/dist/cjs/components/date-range-picker/utils.d.ts +0 -9
  10. package/dist/cjs/components/date-range-picker/utils.js +0 -38
  11. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  12. package/dist/cjs/components/dropdown/CDropdown.js +22 -13
  13. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  14. package/dist/cjs/components/dropdown/CDropdownToggle.js +7 -1
  15. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  16. package/dist/cjs/components/focus-trap/CFocusTrap.d.ts +108 -0
  17. package/dist/cjs/components/focus-trap/CFocusTrap.js +254 -0
  18. package/dist/cjs/components/focus-trap/CFocusTrap.js.map +1 -0
  19. package/dist/cjs/components/focus-trap/index.d.ts +6 -0
  20. package/dist/cjs/components/focus-trap/index.js +13 -0
  21. package/dist/cjs/components/focus-trap/index.js.map +1 -0
  22. package/dist/cjs/components/focus-trap/utils.d.ts +28 -0
  23. package/dist/cjs/components/focus-trap/utils.js +83 -0
  24. package/dist/cjs/components/focus-trap/utils.js.map +1 -0
  25. package/dist/cjs/components/index.d.ts +1 -0
  26. package/dist/cjs/components/index.js +70 -66
  27. package/dist/cjs/components/index.js.map +1 -1
  28. package/dist/cjs/components/modal/CModal.d.ts +2 -2
  29. package/dist/cjs/components/modal/CModal.js +19 -27
  30. package/dist/cjs/components/modal/CModal.js.map +1 -1
  31. package/dist/cjs/components/modal/CModalHeader.js +4 -2
  32. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  33. package/dist/cjs/components/offcanvas/COffcanvas.js +3 -2
  34. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  35. package/dist/cjs/components/picker/CPicker.js +3 -2
  36. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  37. package/dist/cjs/components/time-picker/CTimePicker.d.ts +1 -1
  38. package/dist/cjs/components/time-picker/CTimePicker.js +1 -1
  39. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  40. package/dist/cjs/components/time-picker/utils.d.ts +1 -1
  41. package/dist/cjs/composables/useDebouncedCallback.d.ts +1 -1
  42. package/dist/cjs/composables/useDebouncedCallback.js +1 -1
  43. package/dist/cjs/composables/useDebouncedCallback.js.map +1 -1
  44. package/dist/cjs/index.js +76 -72
  45. package/dist/cjs/index.js.map +1 -1
  46. package/dist/esm/components/calendar/CCalendar.js +61 -65
  47. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  48. package/dist/esm/components/calendar/utils.d.ts +53 -2
  49. package/dist/esm/components/calendar/utils.js +464 -44
  50. package/dist/esm/components/calendar/utils.js.map +1 -1
  51. package/dist/esm/components/date-range-picker/CDateRangePicker.js +86 -57
  52. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  53. package/dist/esm/components/date-range-picker/utils.d.ts +0 -9
  54. package/dist/esm/components/date-range-picker/utils.js +1 -38
  55. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  56. package/dist/esm/components/dropdown/CDropdown.js +23 -14
  57. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  58. package/dist/esm/components/dropdown/CDropdownToggle.js +7 -1
  59. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  60. package/dist/esm/components/focus-trap/CFocusTrap.d.ts +108 -0
  61. package/dist/esm/components/focus-trap/CFocusTrap.js +252 -0
  62. package/dist/esm/components/focus-trap/CFocusTrap.js.map +1 -0
  63. package/dist/esm/components/focus-trap/index.d.ts +6 -0
  64. package/dist/esm/components/focus-trap/index.js +10 -0
  65. package/dist/esm/components/focus-trap/index.js.map +1 -0
  66. package/dist/esm/components/focus-trap/utils.d.ts +28 -0
  67. package/dist/esm/components/focus-trap/utils.js +78 -0
  68. package/dist/esm/components/focus-trap/utils.js.map +1 -0
  69. package/dist/esm/components/index.d.ts +1 -0
  70. package/dist/esm/components/index.js +2 -0
  71. package/dist/esm/components/index.js.map +1 -1
  72. package/dist/esm/components/modal/CModal.d.ts +2 -2
  73. package/dist/esm/components/modal/CModal.js +19 -27
  74. package/dist/esm/components/modal/CModal.js.map +1 -1
  75. package/dist/esm/components/modal/CModalHeader.js +4 -2
  76. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  77. package/dist/esm/components/offcanvas/COffcanvas.js +3 -2
  78. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  79. package/dist/esm/components/picker/CPicker.js +3 -2
  80. package/dist/esm/components/picker/CPicker.js.map +1 -1
  81. package/dist/esm/components/time-picker/CTimePicker.d.ts +1 -1
  82. package/dist/esm/components/time-picker/CTimePicker.js +1 -1
  83. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  84. package/dist/esm/components/time-picker/utils.d.ts +1 -1
  85. package/dist/esm/composables/useDebouncedCallback.d.ts +1 -1
  86. package/dist/esm/composables/useDebouncedCallback.js +1 -1
  87. package/dist/esm/composables/useDebouncedCallback.js.map +1 -1
  88. package/dist/esm/index.js +2 -0
  89. package/dist/esm/index.js.map +1 -1
  90. package/package.json +4 -4
  91. package/src/components/calendar/CCalendar.ts +55 -70
  92. package/src/components/calendar/utils.ts +595 -47
  93. package/src/components/date-range-picker/CDateRangePicker.ts +131 -82
  94. package/src/components/date-range-picker/utils.ts +0 -58
  95. package/src/components/dropdown/CDropdown.ts +34 -23
  96. package/src/components/dropdown/CDropdownToggle.ts +8 -2
  97. package/src/components/focus-trap/CFocusTrap.ts +303 -0
  98. package/src/components/focus-trap/index.ts +10 -0
  99. package/src/components/focus-trap/utils.ts +90 -0
  100. package/src/components/index.ts +1 -0
  101. package/src/components/modal/CModal.ts +32 -37
  102. package/src/components/modal/CModalHeader.ts +5 -3
  103. package/src/components/offcanvas/COffcanvas.ts +40 -36
  104. package/src/components/picker/CPicker.ts +58 -52
  105. package/src/components/time-picker/CTimePicker.ts +12 -13
  106. package/src/composables/useDebouncedCallback.ts +1 -1
@@ -1,7 +1,5 @@
1
1
  import { defineComponent, h, nextTick, PropType, ref, watch } from 'vue'
2
2
 
3
- import { CButton } from '../button'
4
-
5
3
  import {
6
4
  convertToDateObject,
7
5
  createGroupsInArray,
@@ -293,6 +291,11 @@ const CCalendar = defineComponent({
293
291
  watch(
294
292
  () => props.calendarDate,
295
293
  () => {
294
+ if (props.calendarDate === null) {
295
+ calendarDate.value = new Date()
296
+ return
297
+ }
298
+
296
299
  if (props.calendarDate) {
297
300
  calendarDate.value = new Date(props.calendarDate)
298
301
  }
@@ -355,6 +358,10 @@ const CCalendar = defineComponent({
355
358
  })
356
359
 
357
360
  const setCalendarPage = (years: number, months = 0, setMonth?: number) => {
361
+ if (calendarDate.value === null) {
362
+ return
363
+ }
364
+
358
365
  const year = calendarDate.value.getFullYear()
359
366
  const month = calendarDate.value.getMonth()
360
367
  const d = new Date(year, month, 1)
@@ -684,13 +691,12 @@ const CCalendar = defineComponent({
684
691
  props.disabledDates
685
692
  )
686
693
  const isSelected = isDateSelected(date, startDate.value, endDate.value)
687
- const current = days.some((day) => day.month === 'current')
688
694
  return h(
689
695
  'tr',
690
696
  {
691
697
  class: [
692
698
  'calendar-row',
693
- {
699
+ props.selectionType === 'week' && {
694
700
  disabled: isDisabled,
695
701
  range:
696
702
  props.selectionType === 'week' &&
@@ -702,10 +708,10 @@ const CCalendar = defineComponent({
702
708
  selected: isSelected,
703
709
  },
704
710
  ],
705
- tabindex: props.selectionType === 'week' && current && !isDisabled ? 0 : -1,
706
- ...(isSelected && { 'aria-selected': true }),
707
- ...(props.selectionType === 'week' &&
708
- !isDisabled && {
711
+ ...(props.selectionType === 'week' && {
712
+ tabindex: !isDisabled ? 0 : -1,
713
+ ...(isSelected && { 'aria-selected': true }),
714
+ ...(!isDisabled && {
709
715
  onBlur: () => handleCalendarMouseLeave(),
710
716
  onClick: () => handleCalendarClick(date),
711
717
  onFocus: () => handleCalendarMouseEnter(date),
@@ -713,14 +719,11 @@ const CCalendar = defineComponent({
713
719
  onMouseenter: () => handleCalendarMouseEnter(date),
714
720
  onMouseleave: () => handleCalendarMouseLeave(),
715
721
  }),
722
+ }),
716
723
  },
717
724
  [
718
725
  props.showWeekNumber &&
719
- h(
720
- 'th',
721
- { class: 'calendar-cell-week-number' },
722
- week.number
723
- ),
726
+ h('th', { class: 'calendar-cell-week-number' }, week.number),
724
727
  days.map(({ date, month }: { date: Date; month: string }) => {
725
728
  const isDisabled = isDateDisabled(
726
729
  date,
@@ -900,41 +903,33 @@ const CCalendar = defineComponent({
900
903
  },
901
904
  [
902
905
  h(
903
- CButton,
906
+ 'button',
904
907
  {
905
- color: 'transparent',
906
- size: 'sm',
908
+ class: 'calendar-nav-btn',
907
909
  'aria-label': props.ariaNavPrevYearLabel,
908
910
  onClick: () => handleNavigationOnClick('prev', true),
909
911
  },
910
- {
911
- /**
912
- * @slot Location for double previous icon.
913
- */
914
- default: () =>
915
- slots.navPrevDoubleIcon
916
- ? slots.navPrevDoubleIcon()
917
- : h('span', { class: 'calendar-nav-icon calendar-nav-icon-double-prev' }),
918
- }
912
+ /**
913
+ * @slot Location for double previous icon.
914
+ */
915
+ slots.navPrevDoubleIcon
916
+ ? slots.navPrevDoubleIcon()
917
+ : h('span', { class: 'calendar-nav-icon calendar-nav-icon-double-prev' })
919
918
  ),
920
919
  view.value === 'days' &&
921
920
  h(
922
- CButton,
921
+ 'button',
923
922
  {
924
- color: 'transparent',
925
- size: 'sm',
923
+ class: 'calendar-nav-btn',
926
924
  'aria-label': props.ariaNavPrevMonthLabel,
927
925
  onClick: () => handleNavigationOnClick('prev'),
928
926
  },
929
- {
930
- /**
931
- * @slot Location for previous icon.
932
- */
933
- default: () =>
934
- slots.navPrevIcon
935
- ? slots.navPrevIcon()
936
- : h('span', { class: 'calendar-nav-icon calendar-nav-icon-prev' }),
937
- }
927
+ /**
928
+ * @slot Location for previous icon.
929
+ */
930
+ slots.navPrevIcon
931
+ ? slots.navPrevIcon()
932
+ : h('span', { class: 'calendar-nav-icon calendar-nav-icon-prev' })
938
933
  ),
939
934
  ]
940
935
  ),
@@ -948,27 +943,25 @@ const CCalendar = defineComponent({
948
943
  [
949
944
  view.value === 'days' &&
950
945
  h(
951
- CButton,
946
+ 'button',
952
947
  {
953
- color: 'transparent',
954
- size: 'sm',
948
+ class: 'calendar-nav-btn',
955
949
  onClick: () => {
956
950
  if (props.navigation) view.value = 'months'
957
951
  },
958
952
  },
959
- () => _calendarDate.toLocaleDateString(props.locale, { month: 'long' })
953
+ _calendarDate.toLocaleDateString(props.locale, { month: 'long' })
960
954
  ),
961
955
  h(
962
- CButton,
956
+ 'button',
963
957
  {
964
- color: 'transparent',
965
- size: 'sm',
958
+ class: 'calendar-nav-btn',
966
959
  onClick: () => {
967
960
  if (props.navigation) view.value = 'years'
968
961
  },
969
962
  ...(props.navYearFirst && { style: { order: '-1' } }),
970
963
  },
971
- () => _calendarDate.toLocaleDateString(props.locale, { year: 'numeric' })
964
+ _calendarDate.toLocaleDateString(props.locale, { year: 'numeric' })
972
965
  ),
973
966
  ]
974
967
  ),
@@ -981,40 +974,32 @@ const CCalendar = defineComponent({
981
974
  [
982
975
  view.value === 'days' &&
983
976
  h(
984
- CButton,
977
+ 'button',
985
978
  {
986
- color: 'transparent',
987
- size: 'sm',
979
+ class: 'calendar-nav-btn',
988
980
  'aria-label': props.ariaNavNextMonthLabel,
989
981
  onClick: () => handleNavigationOnClick('next'),
990
982
  },
991
- {
992
- /**
993
- * @slot Location for next icon.
994
- */
995
- default: () =>
996
- slots.navNextIcon
997
- ? slots.navNextIcon()
998
- : h('span', { class: 'calendar-nav-icon calendar-nav-icon-next' }),
999
- }
983
+ /**
984
+ * @slot Location for next icon.
985
+ */
986
+ slots.navNextIcon
987
+ ? slots.navNextIcon()
988
+ : h('span', { class: 'calendar-nav-icon calendar-nav-icon-next' })
1000
989
  ),
1001
990
  h(
1002
- CButton,
991
+ 'button',
1003
992
  {
1004
- color: 'transparent',
1005
- size: 'sm',
993
+ class: 'calendar-nav-btn',
1006
994
  'aria-label': props.ariaNavNextYearLabel,
1007
995
  onClick: () => handleNavigationOnClick('next', true),
1008
996
  },
1009
- {
1010
- /**
1011
- * @slot Location for double next icon.
1012
- */
1013
- default: () =>
1014
- slots.navNextDoubleIcon
1015
- ? slots.navNextDoubleIcon()
1016
- : h('span', { class: 'calendar-nav-icon calendar-nav-icon-double-next' }),
1017
- }
997
+ /**
998
+ * @slot Location for double next icon.
999
+ */
1000
+ slots.navNextDoubleIcon
1001
+ ? slots.navNextDoubleIcon()
1002
+ : h('span', { class: 'calendar-nav-icon calendar-nav-icon-double-next' })
1018
1003
  ),
1019
1004
  ]
1020
1005
  ),
@@ -1036,7 +1021,7 @@ const CCalendar = defineComponent({
1036
1021
  },
1037
1022
  [
1038
1023
  Array.from({ length: props.calendars }, (_, index) => {
1039
- const _calendarDate = getCalendarDate(calendarDate.value, index, view.value)
1024
+ const _calendarDate = getCalendarDate(calendarDate.value as Date, index, view.value)
1040
1025
  return h('div', { class: ['calendar', view.value] }, [
1041
1026
  Navigation(_calendarDate),
1042
1027
  Calendar(_calendarDate),