@coreui/vue-pro 4.8.2 → 4.9.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +1 -1
  2. package/dist/components/accordion/CAccordion.d.ts +1 -1
  3. package/dist/components/accordion/CAccordionBody.d.ts +1 -1
  4. package/dist/components/accordion/CAccordionButton.d.ts +1 -1
  5. package/dist/components/accordion/CAccordionHeader.d.ts +1 -1
  6. package/dist/components/accordion/CAccordionItem.d.ts +1 -1
  7. package/dist/components/alert/CAlert.d.ts +1 -1
  8. package/dist/components/alert/CAlertHeading.d.ts +1 -1
  9. package/dist/components/alert/CAlertLink.d.ts +1 -1
  10. package/dist/components/avatar/CAvatar.d.ts +1 -1
  11. package/dist/components/backdrop/CBackdrop.d.ts +1 -1
  12. package/dist/components/badge/CBadge.d.ts +1 -1
  13. package/dist/components/breadcrumb/CBreadcrumb.d.ts +1 -1
  14. package/dist/components/breadcrumb/CBreadcrumbItem.d.ts +1 -1
  15. package/dist/components/button/CButton.d.ts +1 -1
  16. package/dist/components/button-group/CButtonGroup.d.ts +1 -1
  17. package/dist/components/button-group/CButtonToolbar.d.ts +1 -1
  18. package/dist/components/calendar/CCalendar.d.ts +33 -1
  19. package/dist/components/callout/CCallout.d.ts +1 -1
  20. package/dist/components/card/CCard.d.ts +1 -1
  21. package/dist/components/card/CCardBody.d.ts +1 -1
  22. package/dist/components/card/CCardFooter.d.ts +1 -1
  23. package/dist/components/card/CCardGroup.d.ts +1 -1
  24. package/dist/components/card/CCardHeader.d.ts +1 -1
  25. package/dist/components/card/CCardImage.d.ts +1 -1
  26. package/dist/components/card/CCardImageOverlay.d.ts +1 -1
  27. package/dist/components/card/CCardLink.d.ts +1 -1
  28. package/dist/components/card/CCardSubtitle.d.ts +1 -1
  29. package/dist/components/card/CCardText.d.ts +1 -1
  30. package/dist/components/card/CCardTitle.d.ts +1 -1
  31. package/dist/components/carousel/CCarousel.d.ts +1 -1
  32. package/dist/components/carousel/CCarouselCaption.d.ts +1 -1
  33. package/dist/components/carousel/CCarouselItem.d.ts +1 -1
  34. package/dist/components/close-button/CCloseButton.d.ts +1 -1
  35. package/dist/components/collapse/CCollapse.d.ts +1 -1
  36. package/dist/components/date-picker/CDatePicker.d.ts +35 -3
  37. package/dist/components/date-range-picker/CDateRangePicker.d.ts +89 -78
  38. package/dist/components/date-range-picker/utils.d.ts +1 -0
  39. package/dist/components/dropdown/CDropdown.d.ts +2 -2
  40. package/dist/components/dropdown/CDropdownDivider.d.ts +1 -1
  41. package/dist/components/dropdown/CDropdownHeader.d.ts +1 -1
  42. package/dist/components/dropdown/CDropdownItem.d.ts +1 -1
  43. package/dist/components/dropdown/CDropdownMenu.d.ts +1 -1
  44. package/dist/components/dropdown/CDropdownToggle.d.ts +1 -1
  45. package/dist/components/element-cover/CElementCover.d.ts +1 -1
  46. package/dist/components/footer/CFooter.d.ts +1 -1
  47. package/dist/components/form/CForm.d.ts +1 -1
  48. package/dist/components/form/CFormCheck.d.ts +10 -2
  49. package/dist/components/form/CFormControl.d.ts +2 -2
  50. package/dist/components/form/CFormControlValidation.d.ts +1 -1
  51. package/dist/components/form/CFormControlWrapper.d.ts +1 -1
  52. package/dist/components/form/CFormFeedback.d.ts +1 -1
  53. package/dist/components/form/CFormFloating.d.ts +1 -1
  54. package/dist/components/form/CFormInput.d.ts +12 -12
  55. package/dist/components/form/CFormLabel.d.ts +1 -1
  56. package/dist/components/form/CFormRange.d.ts +1 -1
  57. package/dist/components/form/CFormSelect.d.ts +1 -1
  58. package/dist/components/form/CFormSwitch.d.ts +1 -1
  59. package/dist/components/form/CFormText.d.ts +1 -1
  60. package/dist/components/form/CFormTextarea.d.ts +3 -3
  61. package/dist/components/form/CInputGroup.d.ts +1 -1
  62. package/dist/components/form/CInputGroupText.d.ts +1 -1
  63. package/dist/components/grid/CCol.d.ts +1 -1
  64. package/dist/components/grid/CContainer.d.ts +1 -1
  65. package/dist/components/grid/CRow.d.ts +1 -1
  66. package/dist/components/header/CHeader.d.ts +1 -1
  67. package/dist/components/header/CHeaderBrand.d.ts +1 -1
  68. package/dist/components/header/CHeaderDivider.d.ts +1 -1
  69. package/dist/components/header/CHeaderNav.d.ts +1 -1
  70. package/dist/components/header/CHeaderText.d.ts +1 -1
  71. package/dist/components/header/CHeaderToggler.d.ts +1 -1
  72. package/dist/components/image/CImage.d.ts +1 -1
  73. package/dist/components/link/CLink.d.ts +1 -1
  74. package/dist/components/list-group/CListGroup.d.ts +1 -1
  75. package/dist/components/list-group/CListGroupItem.d.ts +1 -1
  76. package/dist/components/loading-button/CLoadingButton.d.ts +1 -1
  77. package/dist/components/modal/CModal.d.ts +1 -1
  78. package/dist/components/modal/CModalBody.d.ts +1 -1
  79. package/dist/components/modal/CModalFooter.d.ts +1 -1
  80. package/dist/components/modal/CModalHeader.d.ts +1 -1
  81. package/dist/components/modal/CModalTitle.d.ts +1 -1
  82. package/dist/components/multi-select/CMultiSelect.d.ts +73 -59
  83. package/dist/components/multi-select/CMultiSelectNativeSelect.d.ts +9 -33
  84. package/dist/components/multi-select/CMultiSelectOptions.d.ts +12 -41
  85. package/dist/components/multi-select/CMultiSelectSelection.d.ts +6 -59
  86. package/dist/components/multi-select/types.d.ts +8 -3
  87. package/dist/components/multi-select/utils.d.ts +9 -4
  88. package/dist/components/nav/CNav.d.ts +1 -1
  89. package/dist/components/nav/CNavGroup.d.ts +1 -1
  90. package/dist/components/nav/CNavGroupItems.d.ts +1 -1
  91. package/dist/components/nav/CNavItem.d.ts +1 -1
  92. package/dist/components/nav/CNavLink.d.ts +1 -1
  93. package/dist/components/nav/CNavTitle.d.ts +1 -1
  94. package/dist/components/navbar/CNavbar.d.ts +1 -1
  95. package/dist/components/navbar/CNavbarBrand.d.ts +1 -1
  96. package/dist/components/navbar/CNavbarNav.d.ts +1 -1
  97. package/dist/components/navbar/CNavbarText.d.ts +1 -1
  98. package/dist/components/navbar/CNavbarToggler.d.ts +1 -1
  99. package/dist/components/offcanvas/COffcanvas.d.ts +1 -1
  100. package/dist/components/offcanvas/COffcanvasBody.d.ts +1 -1
  101. package/dist/components/offcanvas/COffcanvasHeader.d.ts +1 -1
  102. package/dist/components/offcanvas/COffcanvasTitle.d.ts +1 -1
  103. package/dist/components/pagination/CPagination.d.ts +1 -1
  104. package/dist/components/pagination/CPaginationItem.d.ts +1 -1
  105. package/dist/components/picker/CPicker.d.ts +57 -7
  106. package/dist/components/placeholder/CPlaceholder.d.ts +1 -1
  107. package/dist/components/popover/CPopover.d.ts +2 -2
  108. package/dist/components/progress/CProgress.d.ts +1 -1
  109. package/dist/components/progress/CProgressBar.d.ts +1 -1
  110. package/dist/components/sidebar/CSidebar.d.ts +1 -1
  111. package/dist/components/sidebar/CSidebarBrand.d.ts +1 -1
  112. package/dist/components/sidebar/CSidebarFooter.d.ts +1 -1
  113. package/dist/components/sidebar/CSidebarHeader.d.ts +1 -1
  114. package/dist/components/sidebar/CSidebarNav.d.ts +1 -1
  115. package/dist/components/sidebar/CSidebarToggler.d.ts +1 -1
  116. package/dist/components/smart-pagination/CSmartPagination.d.ts +1 -1
  117. package/dist/components/smart-table/CSmartTable.d.ts +20 -56
  118. package/dist/components/smart-table/CSmartTableBody.d.ts +1 -1
  119. package/dist/components/smart-table/CSmartTableCleaner.d.ts +1 -1
  120. package/dist/components/smart-table/CSmartTableFilter.d.ts +1 -1
  121. package/dist/components/smart-table/CSmartTableHead.d.ts +10 -1
  122. package/dist/components/smart-table/CSmartTableItemsPerPageSelector.d.ts +1 -1
  123. package/dist/components/smart-table/types.d.ts +12 -0
  124. package/dist/components/smart-table/utils.d.ts +12 -2
  125. package/dist/components/spinner/CSpinner.d.ts +1 -1
  126. package/dist/components/table/CTable.d.ts +1 -1
  127. package/dist/components/table/CTableBody.d.ts +1 -1
  128. package/dist/components/table/CTableCaption.d.ts +1 -1
  129. package/dist/components/table/CTableDataCell.d.ts +1 -1
  130. package/dist/components/table/CTableFoot.d.ts +1 -1
  131. package/dist/components/table/CTableHead.d.ts +1 -1
  132. package/dist/components/table/CTableHeaderCell.d.ts +1 -1
  133. package/dist/components/table/CTableRow.d.ts +1 -1
  134. package/dist/components/tabs/CTabContent.d.ts +1 -1
  135. package/dist/components/tabs/CTabPane.d.ts +1 -1
  136. package/dist/components/time-picker/CTimePicker.d.ts +1 -1
  137. package/dist/components/time-picker/CTimePickerRollCol.d.ts +1 -1
  138. package/dist/components/toast/CToast.d.ts +1 -1
  139. package/dist/components/toast/CToastBody.d.ts +1 -1
  140. package/dist/components/toast/CToastClose.d.ts +1 -1
  141. package/dist/components/toast/CToastHeader.d.ts +1 -1
  142. package/dist/components/toast/CToaster.d.ts +1 -1
  143. package/dist/components/tooltip/CTooltip.d.ts +2 -2
  144. package/dist/components/virtual-scroller/CVirtualScroller.d.ts +1 -1
  145. package/dist/components/widgets/CWidgetStatsA.d.ts +1 -1
  146. package/dist/components/widgets/CWidgetStatsB.d.ts +1 -1
  147. package/dist/components/widgets/CWidgetStatsC.d.ts +1 -1
  148. package/dist/components/widgets/CWidgetStatsD.d.ts +1 -1
  149. package/dist/components/widgets/CWidgetStatsE.d.ts +1 -1
  150. package/dist/components/widgets/CWidgetStatsF.d.ts +1 -1
  151. package/dist/composables/index.d.ts +2 -0
  152. package/dist/composables/useColorModes.d.ts +5 -0
  153. package/dist/directives/index.d.ts +1 -1
  154. package/dist/directives/v-c-visible.d.ts +1 -1
  155. package/dist/index.d.ts +2 -1
  156. package/dist/index.es.js +4224 -4159
  157. package/dist/index.es.js.map +1 -1
  158. package/dist/index.js +4226 -4160
  159. package/dist/index.js.map +1 -1
  160. package/dist/utils/getUID.d.ts +2 -0
  161. package/dist/utils/index.d.ts +4 -1
  162. package/dist/utils/isObjectInArray.d.ts +2 -0
  163. package/dist/utils/isRTL.d.ts +2 -0
  164. package/package.json +11 -11
  165. package/src/components/accordion/CAccordionItem.ts +2 -2
  166. package/src/components/backdrop/CBackdrop.ts +1 -1
  167. package/src/components/calendar/CCalendar.ts +111 -49
  168. package/src/components/carousel/CCarousel.ts +7 -7
  169. package/src/components/date-picker/CDatePicker.ts +16 -1
  170. package/src/components/date-range-picker/CDateRangePicker.ts +179 -128
  171. package/src/components/date-range-picker/utils.ts +49 -0
  172. package/src/components/dropdown/CDropdown.ts +34 -31
  173. package/src/components/dropdown/CDropdownMenu.ts +1 -1
  174. package/src/components/dropdown/CDropdownToggle.ts +1 -1
  175. package/src/components/element-cover/CElementCover.ts +1 -0
  176. package/src/components/form/CFormCheck.ts +10 -4
  177. package/src/components/form/CFormInput.ts +2 -2
  178. package/src/components/form/CFormLabel.ts +1 -1
  179. package/src/components/form/CFormSelect.ts +1 -1
  180. package/src/components/grid/CCol.ts +1 -1
  181. package/src/components/grid/CContainer.ts +1 -1
  182. package/src/components/header/CHeader.ts +1 -1
  183. package/src/components/modal/CModal.ts +1 -0
  184. package/src/components/multi-select/CMultiSelect.ts +337 -144
  185. package/src/components/multi-select/CMultiSelectNativeSelect.ts +8 -15
  186. package/src/components/multi-select/CMultiSelectOptions.ts +32 -39
  187. package/src/components/multi-select/CMultiSelectSelection.ts +24 -40
  188. package/src/components/multi-select/types.ts +10 -4
  189. package/src/components/multi-select/utils.ts +71 -37
  190. package/src/components/nav/CNavGroup.ts +4 -0
  191. package/src/components/navbar/CNavbar.ts +1 -1
  192. package/src/components/navbar/CNavbarBrand.ts +1 -1
  193. package/src/components/offcanvas/COffcanvas.ts +3 -2
  194. package/src/components/pagination/CPaginationItem.ts +1 -1
  195. package/src/components/picker/CPicker.ts +106 -157
  196. package/src/components/popover/CPopover.ts +18 -2
  197. package/src/components/props.ts +2 -6
  198. package/src/components/sidebar/CSidebar.ts +3 -2
  199. package/src/components/smart-table/CSmartTable.ts +45 -52
  200. package/src/components/smart-table/CSmartTableBody.ts +5 -3
  201. package/src/components/smart-table/CSmartTableHead.ts +41 -14
  202. package/src/components/smart-table/types.ts +13 -0
  203. package/src/components/smart-table/utils.ts +119 -21
  204. package/src/components/spinner/CSpinner.ts +4 -2
  205. package/src/components/table/CTable.ts +19 -18
  206. package/src/components/table/types.ts +19 -19
  207. package/src/components/time-picker/CTimePicker.ts +216 -125
  208. package/src/components/toast/CToast.ts +1 -1
  209. package/src/components/tooltip/CTooltip.ts +19 -3
  210. package/src/components/virtual-scroller/CVirtualScroller.ts +10 -8
  211. package/src/components/widgets/CWidgetStatsA.ts +1 -1
  212. package/src/components/widgets/CWidgetStatsB.ts +1 -1
  213. package/src/components/widgets/CWidgetStatsC.ts +1 -1
  214. package/src/components/widgets/CWidgetStatsE.ts +1 -1
  215. package/src/components/widgets/CWidgetStatsF.ts +1 -1
  216. package/src/composables/index.ts +3 -0
  217. package/src/composables/useColorModes.ts +57 -0
  218. package/src/directives/index.ts +1 -1
  219. package/src/directives/v-c-popover.ts +9 -13
  220. package/src/directives/v-c-tooltip.ts +8 -12
  221. package/src/directives/v-c-visible.ts +1 -1
  222. package/src/index.ts +8 -29
  223. package/src/utils/getUID.ts +9 -0
  224. package/src/utils/index.ts +4 -1
  225. package/src/utils/isObjectInArray.ts +14 -0
  226. package/src/utils/isRTL.ts +13 -0
@@ -0,0 +1,57 @@
1
+ import { onBeforeMount, ref, watch } from 'vue'
2
+
3
+ const getStoredTheme = (localStorageItemName: string) => localStorage.getItem(localStorageItemName)
4
+ const setStoredTheme = (localStorageItemName: string, colorMode: string) =>
5
+ localStorage.setItem(localStorageItemName, colorMode)
6
+
7
+ const getPreferredColorScheme = (localStorageItemName: string) => {
8
+ const storedTheme = getStoredTheme(localStorageItemName)
9
+
10
+ if (storedTheme) {
11
+ return storedTheme
12
+ }
13
+
14
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
15
+ }
16
+
17
+ const setTheme = (colorMode: string) => {
18
+ document.documentElement.dataset.coreuiTheme =
19
+ colorMode === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches
20
+ ? 'dark'
21
+ : colorMode
22
+
23
+ const event = new Event('ColorSchemeChange')
24
+ document.documentElement.dispatchEvent(event)
25
+ }
26
+
27
+ export const useColorModes = (localStorageItemName = 'coreui-vue-color-scheme') => {
28
+ const colorMode = ref(getPreferredColorScheme(localStorageItemName))
29
+
30
+ watch(colorMode, () => {
31
+ setStoredTheme(localStorageItemName, colorMode.value)
32
+ setTheme(colorMode.value)
33
+ })
34
+
35
+ onBeforeMount(() => {
36
+ if (typeof getStoredTheme(localStorageItemName) === 'string') {
37
+ setTheme(colorMode.value)
38
+ }
39
+
40
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
41
+ const storedTheme = getStoredTheme(localStorageItemName)
42
+ if (storedTheme !== 'light' && storedTheme !== 'dark') {
43
+ setTheme(colorMode.value)
44
+ }
45
+ })
46
+
47
+ watch(colorMode, () => setTheme(colorMode.value))
48
+ })
49
+
50
+ return {
51
+ getColorMode: () => colorMode.value,
52
+ isColorModeSet: () => Boolean(getStoredTheme(localStorageItemName)),
53
+ setColorMode: (mode: string) => {
54
+ colorMode.value = mode
55
+ },
56
+ }
57
+ }
@@ -2,4 +2,4 @@ import vcplaceholder from './v-c-placeholder'
2
2
  import vcpopover from './v-c-popover'
3
3
  import vctooltip from './v-c-tooltip'
4
4
 
5
- export { vcplaceholder, vcpopover, vctooltip, }
5
+ export { vcplaceholder, vcpopover, vctooltip }
@@ -1,13 +1,7 @@
1
1
  import { DirectiveBinding } from 'vue'
2
2
  import { createPopper } from '@popperjs/core'
3
3
 
4
- const getUID = (prefix: string) => {
5
- do {
6
- prefix += Math.floor(Math.random() * 1000000)
7
- } while (document.getElementById(prefix))
8
-
9
- return prefix
10
- }
4
+ import { getUID } from '../utils'
11
5
 
12
6
  const createPopoverElement = (id: string, header: string, content: string): HTMLDivElement => {
13
7
  const popover = document.createElement('div')
@@ -20,6 +14,7 @@ const createPopoverElement = (id: string, header: string, content: string): HTML
20
14
  return popover
21
15
  }
22
16
 
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
18
  const addPopoverElement = (popover: HTMLDivElement, el: HTMLElement, popperOptions: any) => {
24
19
  document.body.appendChild(popover)
25
20
  createPopper(el, popover, popperOptions)
@@ -31,10 +26,11 @@ const addPopoverElement = (popover: HTMLDivElement, el: HTMLElement, popperOptio
31
26
  const removePopoverElement = (popover: HTMLDivElement) => {
32
27
  popover.classList.remove('show')
33
28
  setTimeout(() => {
34
- document.body.removeChild(popover)
29
+ popover.remove()
35
30
  }, 300)
36
31
  }
37
32
 
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
34
  const togglePopoverElement = (popover: HTMLDivElement, el: HTMLElement, popperOptions: any) => {
39
35
  const popperElement = document.getElementById(popover.id)
40
36
  if (popperElement && popperElement.classList.contains('show')) {
@@ -49,13 +45,13 @@ export default {
49
45
  uid: '',
50
46
  mounted(el: HTMLElement, binding: DirectiveBinding): void {
51
47
  const value = binding.value
52
- const content = typeof value === 'string' ? value : value.content ? value.content : ''
53
- const header = value.header ? value.header : ''
54
- const trigger = value.trigger ? value.trigger : 'click'
48
+ const content = typeof value === 'string' ? value : value.content ?? ''
49
+ const header = value.header ?? ''
50
+ const trigger = value.trigger ?? 'click'
55
51
 
56
52
  // Popper Config
57
- const offset = value.offset ? value.offset : [0, 8]
58
- const placement = value.placement ? value.placement : 'top'
53
+ const offset = value.offset ?? [0, 8]
54
+ const placement = value.placement ?? 'top'
59
55
 
60
56
  const popperOptions = {
61
57
  placement: placement,
@@ -1,13 +1,7 @@
1
1
  import { DirectiveBinding } from 'vue'
2
2
  import { createPopper } from '@popperjs/core'
3
3
 
4
- const getUID = (prefix: string) => {
5
- do {
6
- prefix += Math.floor(Math.random() * 1000000)
7
- } while (document.getElementById(prefix))
8
-
9
- return prefix
10
- }
4
+ import { getUID } from '../utils'
11
5
 
12
6
  const createTooltipElement = (id: string, content: string): HTMLDivElement => {
13
7
  const tooltip = document.createElement('div')
@@ -19,6 +13,7 @@ const createTooltipElement = (id: string, content: string): HTMLDivElement => {
19
13
  return tooltip
20
14
  }
21
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
17
  const addTooltipElement = (tooltip: HTMLDivElement, el: HTMLElement, popperOptions: any) => {
23
18
  document.body.appendChild(tooltip)
24
19
  createPopper(el, tooltip, popperOptions)
@@ -30,10 +25,11 @@ const addTooltipElement = (tooltip: HTMLDivElement, el: HTMLElement, popperOptio
30
25
  const removeTooltipElement = (tooltip: HTMLDivElement) => {
31
26
  tooltip.classList.remove('show')
32
27
  setTimeout(() => {
33
- document.body.removeChild(tooltip)
28
+ tooltip.remove()
34
29
  }, 300)
35
30
  }
36
31
 
32
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
33
  const toggleTooltipElement = (tooltip: HTMLDivElement, el: HTMLElement, popperOptions: any) => {
38
34
  const popperElement = document.getElementById(tooltip.id)
39
35
  if (popperElement && popperElement.classList.contains('show')) {
@@ -46,12 +42,12 @@ const toggleTooltipElement = (tooltip: HTMLDivElement, el: HTMLElement, popperOp
46
42
  export default {
47
43
  mounted(el: HTMLElement, binding: DirectiveBinding): void {
48
44
  const value = binding.value
49
- const content = typeof value === 'string' ? value : value.content ? value.content : ''
50
- const trigger = value.trigger ? value.trigger : 'hover'
45
+ const content = typeof value === 'string' ? value : value.content ?? ''
46
+ const trigger = value.trigger ?? 'hover'
51
47
 
52
48
  // Popper Config
53
- const offset = value.offset ? value.offset : [0, 0]
54
- const placement = value.placement ? value.placement : 'top'
49
+ const offset = value.offset ?? [0, 6]
50
+ const placement = value.placement ?? 'top'
55
51
 
56
52
  const popperOptions = {
57
53
  placement: placement,
@@ -1,4 +1,4 @@
1
- import { ObjectDirective } from '@vue/runtime-core'
1
+ import { ObjectDirective } from 'vue'
2
2
 
3
3
  interface VShowElement extends HTMLElement {
4
4
  // _vod = vue original display
package/src/index.ts CHANGED
@@ -1,44 +1,23 @@
1
- //@ts-nocheck
2
1
  import { App } from 'vue'
3
2
  import * as Components from './components'
4
- import { vcplaceholder, vcpopover, vctooltip } from './directives'
5
-
6
- const removeKeysFromObject = (object, keys) => {
7
- return Object.entries(object).reduce((obj, [key, value]) => {
8
- if (!keys.includes(key) && !keys.includes(value.name)) {
9
- obj[key] = value
10
- }
11
- return obj
12
- }, {})
13
- }
3
+ import * as Directives from './directives'
14
4
 
15
5
  const CoreuiVue = {
16
- install: (app: App, options: any): void => {
17
- let pluginComponents = Components
18
- // let pluginDirectives = Directives
19
-
20
- const toRemove = options && options.remove ? options.remove : null
21
- if (toRemove && Array.isArray(toRemove)) {
22
- pluginComponents = removeKeysFromObject(Components, toRemove)
23
- // pluginDirectives = removeKeysFromObject(Directives, toRemove)
6
+ install: (app: App): void => {
7
+ for (const key in Components) {
8
+ app.component(key, Components[key])
24
9
  }
25
10
 
26
- for (const plugin in pluginComponents) {
27
- app.component(plugin, Components[plugin])
11
+ for (const key in Directives) {
12
+ app.directive(key, Directives[key])
28
13
  }
29
- // for (const directive in pluginDirectives) {
30
- // app.directive(directive, Directives[directive])
31
- // }
32
-
33
- app.directive('c-placeholder', vcplaceholder)
34
- app.directive('c-popover', vcpopover)
35
- app.directive('c-tooltip', vctooltip)
36
14
  },
37
15
  }
38
16
 
39
17
  // Export library
40
18
  export default CoreuiVue
41
19
 
42
- //Export components
20
+ // Export components & directives
43
21
  export * from './components'
22
+ export * from './composables'
44
23
  export * from './directives'
@@ -0,0 +1,9 @@
1
+ const getUID = (prefix: string) => {
2
+ do {
3
+ prefix += Math.floor(Math.random() * 1_000_000)
4
+ } while (document.getElementById(prefix))
5
+
6
+ return prefix
7
+ }
8
+
9
+ export default getUID
@@ -1,3 +1,6 @@
1
+ import getUID from './getUID'
1
2
  import isInViewport from './isInViewport'
3
+ import isObjectInArray from './isObjectInArray'
4
+ import isRTL from './isRTL'
2
5
 
3
- export { isInViewport }
6
+ export { getUID, isInViewport, isObjectInArray, isRTL }
@@ -0,0 +1,14 @@
1
+ const isObjectInArray = <T>(array: T[], item: T, ignore: string[] = []) =>
2
+ array.some((_item: T) => {
3
+ let result = true
4
+ for (const key in item) {
5
+ if (!ignore.includes(key) && item[key] !== _item[key]) {
6
+ result = false
7
+ break
8
+ }
9
+ }
10
+
11
+ return result
12
+ })
13
+
14
+ export default isObjectInArray
@@ -0,0 +1,13 @@
1
+ const isRTL = (element?: HTMLElement | HTMLDivElement | null) => {
2
+ if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
3
+ return true
4
+ }
5
+
6
+ if (element) {
7
+ return element.closest('[dir="rtl"]') !== null
8
+ }
9
+
10
+ return false
11
+ }
12
+
13
+ export default isRTL