39 changed files with 72 additions and 207 deletions
@ -1,11 +1,7 @@ |
|||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
|||
import AppLogo from './src/AppLogo.vue'; |
|||
import AppProvider from './src/AppProvider.vue'; |
|||
|
|||
export const AppLocalePicker = createAsyncComponent(() => import('./src/AppLocalePicker.vue')); |
|||
export const AppSearch = createAsyncComponent(() => import('./src/search/AppSearch.vue'), { |
|||
loading: true, |
|||
}); |
|||
import AppSearch from './src/search/AppSearch.vue'; |
|||
import AppLocalePicker from './src/AppLocalePicker.vue'; |
|||
|
|||
export { useAppProviderContext } from './src/useAppContext'; |
|||
export { AppLogo, AppProvider }; |
|||
export { AppLogo, AppProvider, AppSearch, AppLocalePicker }; |
|||
|
|||
@ -1,9 +1,5 @@ |
|||
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
|||
import BasicArrow from './src/BasicArrow.vue'; |
|||
import BasicTitle from './src/BasicTitle.vue'; |
|||
import BasicHelp from './src/BasicHelp.vue'; |
|||
|
|||
export { BasicArrow, BasicTitle }; |
|||
|
|||
// export const BasicArrow = createAsyncComponent(() => import('./src/BasicArrow.vue'));
|
|||
export const BasicHelp = createAsyncComponent(() => import('./src/BasicHelp.vue')); |
|||
// export const BasicTitle = createAsyncComponent(() => import('./src/BasicTitle.vue'));
|
|||
export { BasicArrow, BasicTitle, BasicHelp }; |
|||
|
|||
@ -1,9 +1,3 @@ |
|||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|||
|
|||
import BasicMenu from './src/BasicMenu.vue'; |
|||
|
|||
// export const BasicMenu = createAsyncComponent(() => import('./src/BasicMenu.vue'));
|
|||
|
|||
// export const MenuTag = createAsyncComponent(() => import('./src/components/MenuItemTag.vue'));
|
|||
|
|||
export { BasicMenu }; |
|||
|
|||
@ -1,4 +1 @@ |
|||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|||
// export const ImagePreview = createAsyncComponent(() => import('./src/index.vue'));
|
|||
|
|||
export { default as ImagePreview } from './src/index.vue'; |
|||
|
|||
@ -1,4 +1 @@ |
|||
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
|
|||
// export const BasicUpload = createAsyncComponent(() => import('./src/BasicUpload.vue'));
|
|||
|
|||
export { default as BasicUpload } from './src/BasicUpload.vue'; |
|||
|
|||
@ -1,37 +0,0 @@ |
|||
import { ref, Ref, unref } from 'vue'; |
|||
import { useEventListener } from '/@/hooks/event/useEventListener'; |
|||
import { isServer } from '/@/utils/is'; |
|||
export function useClickOutside<T extends HTMLElement>( |
|||
containerRef: Ref<T>, |
|||
onClickOutside: (e: MouseEvent | TouchEvent) => void, |
|||
eventName = 'click' |
|||
) { |
|||
if (isServer) return; |
|||
|
|||
const isTouchRef = ref(false); |
|||
|
|||
useEventListener({ |
|||
el: document, |
|||
name: 'touchend', |
|||
listener: handler, |
|||
options: true, |
|||
}); |
|||
useEventListener({ |
|||
el: document, |
|||
name: eventName, |
|||
listener: handler, |
|||
options: true, |
|||
}); |
|||
|
|||
function handler(e: MouseEvent | TouchEvent) { |
|||
if (e.type === 'touchend') { |
|||
isTouchRef.value = true; |
|||
} |
|||
if (e.type === 'click' && unref(isTouchRef)) return; |
|||
|
|||
const el = containerRef.value; |
|||
if (el && e.target && !el.contains(e.target as Node)) { |
|||
onClickOutside(e); |
|||
} |
|||
} |
|||
} |
|||
@ -1,45 +0,0 @@ |
|||
import { |
|||
watch, |
|||
computed, |
|||
WatchSource, |
|||
getCurrentInstance, |
|||
onMounted, |
|||
onUnmounted, |
|||
nextTick, |
|||
reactive, |
|||
ComponentInternalInstance, |
|||
} from 'vue'; |
|||
import { error } from '../log'; |
|||
|
|||
export function explicitComputed<T, S>(source: WatchSource<S>, fn: () => T) { |
|||
const v = reactive<any>({ value: fn() }); |
|||
watch(source, () => (v.value = fn())); |
|||
return computed<T>(() => v.value); |
|||
} |
|||
|
|||
export function tryOnMounted(fn: () => void, sync = true) { |
|||
if (getCurrentInstance()) { |
|||
onMounted(fn); |
|||
} else if (sync) { |
|||
fn(); |
|||
} else { |
|||
nextTick(fn); |
|||
} |
|||
} |
|||
|
|||
export function tryOnUnmounted(fn: () => Promise<void> | void) { |
|||
getCurrentInstance() && onUnmounted(fn); |
|||
} |
|||
|
|||
export function tryTsxEmit<T extends any = ComponentInternalInstance>( |
|||
fn: (_instance: T) => Promise<void> | void |
|||
) { |
|||
const instance = getCurrentInstance() as any; |
|||
instance && fn.call(null, instance); |
|||
} |
|||
|
|||
export function isInSetup() { |
|||
if (!getCurrentInstance()) { |
|||
error('Please put useForm function in the setup function!'); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue