Add ts config: importsNotUsedAsValues with corresponding eslint rule

This commit is contained in:
timongh 2023-01-29 00:49:17 +08:00
parent 1906f687fe
commit 7a248529bb
373 changed files with 1063 additions and 808 deletions

View File

@ -30,6 +30,7 @@ module.exports = {
'import/no-default-export': 'error', 'import/no-default-export': 'error',
'import/no-named-default': 'off', 'import/no-named-default': 'off',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/member-delimiter-style': 'off', '@typescript-eslint/member-delimiter-style': 'off',
'@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off',

View File

@ -1,4 +1,4 @@
import { readFileSync, existsSync } from 'fs' import { existsSync, readFileSync } from 'fs'
interface DevServerConfig { interface DevServerConfig {
port?: number port?: number

View File

@ -1,8 +1,9 @@
import webpack from 'webpack'
import exitHook from 'async-exit-hook' import exitHook from 'async-exit-hook'
import webpack from 'webpack'
import webpackConfig from '../../webpack/webpack.dev' import webpackConfig from '../../webpack/webpack.dev'
import { sendMessage } from './web-socket-server'
import { defaultWatcherHandler } from './watcher-common' import { defaultWatcherHandler } from './watcher-common'
import { sendMessage } from './web-socket-server'
export const startCoreWatcher = () => export const startCoreWatcher = () =>
new Promise<void>(resolve => { new Promise<void>(resolve => {

View File

@ -1,5 +1,5 @@
import { startDevServer } from './server'
import { startCoreWatcher } from './core-watcher' import { startCoreWatcher } from './core-watcher'
import { startDevServer } from './server'
import { startWebSocketServer } from './web-socket-server' import { startWebSocketServer } from './web-socket-server'
startDevServer().then(server => { startDevServer().then(server => {

View File

@ -1,9 +1,11 @@
import { Watching, Configuration, webpack } from 'webpack'
import exitHook from 'async-exit-hook' import exitHook from 'async-exit-hook'
import type { Configuration, Watching } from 'webpack'
import { webpack } from 'webpack'
import { fromId } from '../../registry/lib/id' import { fromId } from '../../registry/lib/id'
import { devServerConfig } from './config'
import { defaultWatcherHandler } from './watcher-common' import { defaultWatcherHandler } from './watcher-common'
import { sendMessage } from './web-socket-server' import { sendMessage } from './web-socket-server'
import { devServerConfig } from './config'
export const watchers: { url: string; instance: Watching }[] = [] export const watchers: { url: string; instance: Watching }[] = []
export const parseRegistryUrl = (url: string) => { export const parseRegistryUrl = (url: string) => {

View File

@ -1,11 +1,13 @@
import { createServer, Server } from 'http'
import { Configuration } from 'webpack'
import exitHook from 'async-exit-hook' import exitHook from 'async-exit-hook'
import type { Server } from 'http'
import { createServer } from 'http'
import handler from 'serve-handler' import handler from 'serve-handler'
import { devServerConfig } from './config' import type { Configuration } from 'webpack'
import { buildByEntry } from '../../registry/webpack/config' import { buildByEntry } from '../../registry/webpack/config'
import { devServerConfig } from './config'
import { parseRegistryUrl, startRegistryWatcher, watchers } from './registry-watcher'
import { exitWebSocketServer } from './web-socket-server' import { exitWebSocketServer } from './web-socket-server'
import { watchers, parseRegistryUrl, startRegistryWatcher } from './registry-watcher'
export const startDevServer = () => export const startDevServer = () =>
new Promise<Server>(resolve => { new Promise<Server>(resolve => {

View File

@ -1,4 +1,4 @@
import { Stats } from 'webpack' import type { Stats } from 'webpack'
export const defaultWatcherHandler = ( export const defaultWatcherHandler = (
initCallback: (result: Stats) => void, initCallback: (result: Stats) => void,

View File

@ -1,7 +1,8 @@
import exitHook from 'async-exit-hook' import exitHook from 'async-exit-hook'
import { Server } from 'http' import type { Server } from 'http'
import { WebSocketServer } from 'ws' import { WebSocketServer } from 'ws'
import { Payload } from './payload'
import type { Payload } from './payload'
import { stopInstance, watchers } from './registry-watcher' import { stopInstance, watchers } from './registry-watcher'
let server: WebSocketServer let server: WebSocketServer

View File

@ -1,5 +1,5 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { FeedsCard } from '@/components/feeds/api' import type { FeedsCard } from '@/components/feeds/api'
import { feedsUrls } from '@/core/utils/urls' import { feedsUrls } from '@/core/utils/urls'
const entry = async () => { const entry = async () => {

View File

@ -1,5 +1,6 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { FeedsCard, feedsCardTypes } from '@/components/feeds/api' import type { FeedsCard } from '@/components/feeds/api'
import { feedsCardTypes } from '@/components/feeds/api'
import { feedsUrls } from '@/core/utils/urls' import { feedsUrls } from '@/core/utils/urls'
let enabled = true let enabled = true

View File

@ -50,18 +50,20 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { import type {
feedsCardsManager,
FeedsCard, FeedsCard,
FeedsCardType, FeedsCardType,
feedsCardTypes,
forEachFeedsCard,
RepostFeedsCard, RepostFeedsCard,
} from '@/components/feeds/api' } from '@/components/feeds/api'
import { feedsCardTypes, forEachFeedsCard } from '@/components/feeds/api'
import { attributes } from '@/core/observer'
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import { select } from '@/core/spin-query' import { select } from '@/core/spin-query'
import { attributes } from '@/core/observer' import { TextBox, VButton, VIcon } from '@/ui'
import { VIcon, TextBox, VButton } from '@/ui'
import { FeedsFilterOptions } from '.' import type { FeedsFilterOptions } from '.'
import { hasBlockedPattern } from './pattern' import { hasBlockedPattern } from './pattern'
const options = getComponentSettings('feedsFilter').options as FeedsFilterOptions const options = getComponentSettings('feedsFilter').options as FeedsFilterOptions
@ -99,7 +101,7 @@ const sideCards: { [id: number]: SideCardType } = {
displayName: '发布动态', displayName: '发布动态',
}, },
} }
let cardsManager: typeof import('@/components/feeds/api').feedsCardsManager let cardsManager: typeof feedsCardsManager
const sideBlock = 'feeds-filter-side-block-' const sideBlock = 'feeds-filter-side-block-'
export default Vue.extend({ export default Vue.extend({

View File

@ -1,9 +1,7 @@
import { import type { OptionsOfMetadata } from '@/components/define'
defineOptionsMetadata, import { defineComponentMetadata, defineOptionsMetadata } from '@/components/define'
defineComponentMetadata,
OptionsOfMetadata,
} from '@/components/define'
import { feedsCardsManager } from '@/components/feeds/api' import { feedsCardsManager } from '@/components/feeds/api'
import { feedsFilterPlugin } from './plugin' import { feedsFilterPlugin } from './plugin'
const entry = async () => { const entry = async () => {

View File

@ -1,7 +1,9 @@
import { FeedsContentFilter } from '@/components/feeds/api' import type { FeedsContentFilter } from '@/components/feeds/api'
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import { PluginMetadata } from '@/plugins/plugin' import type { PluginMetadata } from '@/plugins/plugin'
import { BlockableCard, hasBlockedPattern } from './pattern'
import type { BlockableCard } from './pattern'
import { hasBlockedPattern } from './pattern'
const bangumiFields = { const bangumiFields = {
username: 'title', username: 'title',

View File

@ -1,9 +1,9 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { styledComponentEntry } from '@/components/styled-component'
import { feedsUrlsWithoutDetail } from '@/core/utils/urls'
import { feedsCardsManager } from '@/components/feeds/api' import { feedsCardsManager } from '@/components/feeds/api'
import { select } from '@/core/spin-query' import { styledComponentEntry } from '@/components/styled-component'
import { childListSubtree } from '@/core/observer' import { childListSubtree } from '@/core/observer'
import { select } from '@/core/spin-query'
import { feedsUrlsWithoutDetail } from '@/core/utils/urls'
const entry = async () => { const entry = async () => {
const { forEachFeedsCard } = await import('@/components/feeds/api') const { forEachFeedsCard } = await import('@/components/feeds/api')

View File

@ -54,7 +54,9 @@
import { addComponentListener, getComponentSettings } from '@/core/settings' import { addComponentListener, getComponentSettings } from '@/core/settings'
import { descendingSort } from '@/core/utils/sort' import { descendingSort } from '@/core/utils/sort'
import { DefaultWidget, VPopup } from '@/ui' import { DefaultWidget, VPopup } from '@/ui'
import { Medal, Title, Badge, getMedalList, getTitleList } from './badge'
import type { Badge } from './badge'
import { getMedalList, getTitleList, Medal, Title } from './badge'
const { options } = getComponentSettings('badgeHelper') const { options } = getComponentSettings('badgeHelper')
export default Vue.extend({ export default Vue.extend({

View File

@ -1,5 +1,6 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { getNumberValidator, getUID, none } from '@/core/utils' import { getNumberValidator, getUID, none } from '@/core/utils'
import { autoMatchMedal } from './auto-match' import { autoMatchMedal } from './auto-match'
export const component = defineComponentMetadata({ export const component = defineComponentMetadata({

View File

@ -13,6 +13,7 @@
<script lang="ts"> <script lang="ts">
import { select } from '@/core/spin-query' import { select } from '@/core/spin-query'
import { raiseEvent } from '@/core/utils' import { raiseEvent } from '@/core/utils'
import { originalTextAreaSelector, sendButtonSelector } from './original-elements' import { originalTextAreaSelector, sendButtonSelector } from './original-elements'
let changeEventHook = false let changeEventHook = false

View File

@ -1,7 +1,8 @@
import { waitForControlBar } from '@/components/live/live-control-bar'
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { waitForControlBar } from '@/components/live/live-control-bar'
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { liveUrls } from '@/core/utils/urls' import { liveUrls } from '@/core/utils/urls'
import { leftControllerSelector } from './original-elements' import { leftControllerSelector } from './original-elements'
const entry = async () => { const entry = async () => {

View File

@ -9,10 +9,10 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { DefaultWidget } from '@/ui'
import { getJson } from '@/core/ajax' import { getJson } from '@/core/ajax'
import { Toast } from '@/core/toast' import { Toast } from '@/core/toast'
import { logError } from '@/core/utils/log' import { logError } from '@/core/utils/log'
import { DefaultWidget } from '@/ui'
export default Vue.extend({ export default Vue.extend({
components: { components: {

View File

@ -1,8 +1,9 @@
import { waitForControlBar } from '@/components/live/live-control-bar'
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { waitForControlBar } from '@/components/live/live-control-bar'
import { select as spinSelect } from '@/core/spin-query' import { select as spinSelect } from '@/core/spin-query'
import { addStyle, removeStyle } from '@/core/style' import { addStyle, removeStyle } from '@/core/style'
import { liveUrls } from '@/core/utils/urls' import { liveUrls } from '@/core/utils/urls'
import componentStyle from './gift-box.scss' import componentStyle from './gift-box.scss'
/** /**

View File

@ -1,5 +1,5 @@
import { toggleStyle } from '@/components/styled-component'
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { toggleStyle } from '@/components/styled-component'
export const component = defineComponentMetadata({ export const component = defineComponentMetadata({
...toggleStyle('alwaysShowDuration', () => import('./always-show-duration.scss')), ...toggleStyle('alwaysShowDuration', () => import('./always-show-duration.scss')),

View File

@ -13,9 +13,10 @@ import { addComponentListener } from '@/core/settings'
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { ascendingSort } from '@/core/utils/sort' import { ascendingSort } from '@/core/utils/sort'
import { registerAndGetData } from '@/plugins/data' import { registerAndGetData } from '@/plugins/data'
import { getBuiltInItems } from './built-in-items' import { getBuiltInItems } from './built-in-items'
import type { CustomNavbarItemInit } from './custom-navbar-item'
import { import {
CustomNavbarItemInit,
CustomNavbarItem, CustomNavbarItem,
CustomNavbarItems, CustomNavbarItems,
CustomNavbarRenderedItems, CustomNavbarRenderedItems,

View File

@ -57,8 +57,9 @@
<script lang="ts"> <script lang="ts">
import { addComponentListener, removeComponentListener } from '@/core/settings' import { addComponentListener, removeComponentListener } from '@/core/settings'
import CustomNavbarLink from './CustomNavbarLink.vue'
import { CustomNavbarItem } from './custom-navbar-item' import { CustomNavbarItem } from './custom-navbar-item'
import CustomNavbarLink from './CustomNavbarLink.vue'
const isOpenInNewTab = (item: CustomNavbarItem) => { const isOpenInNewTab = (item: CustomNavbarItem) => {
const { name } = item const { name } = item

View File

@ -1,19 +1,19 @@
import { CustomNavbarItemInit } from './custom-navbar-item' import type { CustomNavbarItemInit } from './custom-navbar-item'
import { messages } from './messages/messages' import { favorites } from './favorites/favorites'
import { ranking } from './ranking/ranking' import { feeds } from './feeds/feeds'
import { userInfo } from './user-info/user-info' import { blanks } from './flexible-blank/flexible-blank'
import { logo } from './logo/logo' import { history } from './history/history'
import { home } from './home/home' import { home } from './home/home'
import { gamesIframe, livesIframe, mangaIframe } from './iframe/iframe' import { gamesIframe, livesIframe, mangaIframe } from './iframe/iframe'
import { blanks } from './flexible-blank/flexible-blank' import { logo } from './logo/logo'
import { bangumi, music, drawing, shop, match } from './simple-links/simple-links' import { messages } from './messages/messages'
import { upload } from './upload/upload' import { ranking } from './ranking/ranking'
import { search } from './search/search' import { search } from './search/search'
import { feeds } from './feeds/feeds' import { bangumi, drawing, match, music, shop } from './simple-links/simple-links'
import { subscriptions } from './subscriptions/subscriptions' import { subscriptions } from './subscriptions/subscriptions'
import { upload } from './upload/upload'
import { userInfo } from './user-info/user-info'
import { watchlater } from './watchlater/watchlater' import { watchlater } from './watchlater/watchlater'
import { favorites } from './favorites/favorites'
import { history } from './history/history'
const [blank1, blank2, blank3, blank4] = blanks const [blank1, blank2, blank3, blank4] = blanks
export const getBuiltInItems = (): CustomNavbarItemInit[] => [ export const getBuiltInItems = (): CustomNavbarItemInit[] => [

View File

@ -1,6 +1,9 @@
import { createPopper, Instance as Popper } from '@popperjs/core' import type { Instance as Popper } from '@popperjs/core'
import { VueModule, Executable } from '@/core/common-types' import { createPopper } from '@popperjs/core'
import { getComponentSettings, addComponentListener } from '@/core/settings'
import type { Executable, VueModule } from '@/core/common-types'
import { addComponentListener, getComponentSettings } from '@/core/settings'
import type { CustomNavbarOptions } from '.' import type { CustomNavbarOptions } from '.'
export const CustomNavbarItems = 'customNavbar.items' export const CustomNavbarItems = 'customNavbar.items'

View File

@ -1,4 +1,4 @@
import { ComponentEntry } from '@/components/types' import type { ComponentEntry } from '@/components/types'
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { isIframe, isNotHtml, matchUrlPattern, mountVueComponent } from '@/core/utils' import { isIframe, isNotHtml, matchUrlPattern, mountVueComponent } from '@/core/utils'

View File

@ -13,11 +13,13 @@
</VDropdown> </VDropdown>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VDropdown } from '@/ui'
import { getUID } from '@/core/utils'
import { getJsonWithCredentials } from '@/core/ajax' import { getJsonWithCredentials } from '@/core/ajax'
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import { FavoritesFolder, notSelectedFolder } from './favorites-folder' import { getUID } from '@/core/utils'
import { VDropdown } from '@/ui'
import type { FavoritesFolder } from './favorites-folder'
import { notSelectedFolder } from './favorites-folder'
const navbarOptions = getComponentSettings('customNavbar').options const navbarOptions = getComponentSettings('customNavbar').options
export default Vue.extend({ export default Vue.extend({

View File

@ -65,16 +65,17 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VLoading, VEmpty, VIcon, VButton, TextBox, DpiImage, ScrollTrigger } from '@/ui' import type { VideoCard } from '@/components/feeds/video-card'
import { formatDate, formatDuration } from '@/core/utils/formatters'
import { getUID } from '@/core/utils'
import { getJsonWithCredentials } from '@/core/ajax' import { getJsonWithCredentials } from '@/core/ajax'
import { logError } from '@/core/utils/log'
import { VideoCard } from '@/components/feeds/video-card'
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import { getUID } from '@/core/utils'
import { formatDate, formatDuration } from '@/core/utils/formatters'
import { logError } from '@/core/utils/log'
import { DpiImage, ScrollTrigger, TextBox, VButton, VEmpty, VIcon, VLoading } from '@/ui'
import { popperMixin } from '../mixins'
import { notSelectedFolder } from './favorites-folder' import { notSelectedFolder } from './favorites-folder'
import FavoritesFolderSelect from './FavoritesFolderSelect.vue' import FavoritesFolderSelect from './FavoritesFolderSelect.vue'
import { popperMixin } from '../mixins'
/* /*
新版收藏夹 API 新版收藏夹 API

View File

@ -1,5 +1,6 @@
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { CustomNavbarItemInit } from '../custom-navbar-item'
import type { CustomNavbarItemInit } from '../custom-navbar-item'
const href = `https://space.bilibili.com/${getUID()}/favlist` const href = `https://space.bilibili.com/${getUID()}/favlist`
export const favorites: CustomNavbarItemInit = { export const favorites: CustomNavbarItemInit = {

View File

@ -9,9 +9,10 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { TabControl, VIcon } from '@/ui'
import { feedsCardTypes } from '@/components/feeds/api' import { feedsCardTypes } from '@/components/feeds/api'
import { getNotifyCount } from '@/components/feeds/notify' import { getNotifyCount } from '@/components/feeds/notify'
import { TabControl, VIcon } from '@/ui'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
import { tabs } from './tabs/tabs' import { tabs } from './tabs/tabs'

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const feeds: CustomNavbarItemInit = { export const feeds: CustomNavbarItemInit = {
name: 'feeds', name: 'feeds',

View File

@ -12,9 +12,10 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { feedsCardTypes } from '@/components/feeds/api' import { feedsCardTypes } from '@/components/feeds/api'
import { isNewID } from '@/components/feeds/notify' import type { BangumiCard } from '@/components/feeds/bangumi-card'
import { BangumiCard } from '@/components/feeds/bangumi-card'
import BangumiCardComponent from '@/components/feeds/BangumiCard.vue' import BangumiCardComponent from '@/components/feeds/BangumiCard.vue'
import { isNewID } from '@/components/feeds/notify'
import { nextPageMixin } from './next-page' import { nextPageMixin } from './next-page'
export default Vue.extend({ export default Vue.extend({

View File

@ -12,9 +12,10 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { feedsCardTypes } from '@/components/feeds/api' import { feedsCardTypes } from '@/components/feeds/api'
import { isNewID } from '@/components/feeds/notify' import type { ColumnCard } from '@/components/feeds/column-card'
import { ColumnCard } from '@/components/feeds/column-card'
import ColumnCardComponent from '@/components/feeds/ColumnCard.vue' import ColumnCardComponent from '@/components/feeds/ColumnCard.vue'
import { isNewID } from '@/components/feeds/notify'
import { nextPageMixin } from './next-page' import { nextPageMixin } from './next-page'
export default Vue.extend({ export default Vue.extend({

View File

@ -16,9 +16,10 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VLoading, VEmpty, DpiImage } from '@/ui' import { getJsonWithCredentials, responsiveGetPages } from '@/core/ajax'
import { responsiveGetPages, getJsonWithCredentials } from '@/core/ajax' import { DpiImage, VEmpty, VLoading } from '@/ui'
import { LiveFeedItem } from './live-feed-item'
import type { LiveFeedItem } from './live-feed-item'
export default Vue.extend({ export default Vue.extend({
components: { components: {

View File

@ -30,11 +30,12 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VideoCard } from '@/components/feeds/video-card'
import { formatDuration, formatCount } from '@/core/utils/formatters'
import { isNewID } from '@/components/feeds/notify'
import { feedsCardTypes, groupVideoFeeds } from '@/components/feeds/api' import { feedsCardTypes, groupVideoFeeds } from '@/components/feeds/api'
import { isNewID } from '@/components/feeds/notify'
import type { VideoCard } from '@/components/feeds/video-card'
import VideoCardComponent from '@/components/feeds/VideoCard.vue' import VideoCardComponent from '@/components/feeds/VideoCard.vue'
import { formatCount, formatDuration } from '@/core/utils/formatters'
import { nextPageMixin } from './next-page' import { nextPageMixin } from './next-page'
const formatPubTime = (pubTime: number) => { const formatPubTime = (pubTime: number) => {

View File

@ -1,13 +1,9 @@
import { import type { FeedsCardType } from '@/components/feeds/api'
getFeeds, import { applyContentFilter, getFeeds, isPreOrderedVideo } from '@/components/feeds/api'
FeedsCardType,
applyContentFilter,
isPreOrderedVideo,
} from '@/components/feeds/api'
import { descendingStringSort } from '@/core/utils/sort'
import { logError } from '@/core/utils/log'
import { setLatestID } from '@/components/feeds/notify' import { setLatestID } from '@/components/feeds/notify'
import { VLoading, VEmpty, ScrollTrigger } from '@/ui' import { logError } from '@/core/utils/log'
import { descendingStringSort } from '@/core/utils/sort'
import { ScrollTrigger, VEmpty, VLoading } from '@/ui'
/** /**
* Vue Mixin * Vue Mixin

View File

@ -1,4 +1,4 @@
import { TabMappings } from '@/ui/tab-mapping' import type { TabMappings } from '@/ui/tab-mapping'
export const tabs: TabMappings = [ export const tabs: TabMappings = [
{ {

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
const count = 4 const count = 4
export const blanks: CustomNavbarItemInit[] = new Array(count).fill(0).map((_, index) => ({ export const blanks: CustomNavbarItemInit[] = new Array(count).fill(0).map((_, index) => ({

View File

@ -109,17 +109,19 @@ import { bilibiliApi, getJsonWithCredentials, postTextWithCredentials } from '@/
import { formData, getCsrf } from '@/core/utils' import { formData, getCsrf } from '@/core/utils'
import { descendingSort } from '@/core/utils/sort' import { descendingSort } from '@/core/utils/sort'
import { import {
VButton,
VIcon,
RadioButton,
TextBox,
VLoading,
VEmpty,
ScrollTrigger,
DpiImage, DpiImage,
RadioButton,
ScrollTrigger,
TextBox,
VButton,
VEmpty,
VIcon,
VLoading,
} from '@/ui' } from '@/ui'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
import { types, TypeFilter, HistoryItem, getHistoryItems, group, HistoryType } from './types' import type { HistoryItem, TypeFilter } from './types'
import { getHistoryItems, group, HistoryType, types } from './types'
export default Vue.extend({ export default Vue.extend({
components: { components: {

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
const href = 'https://www.bilibili.com/account/history' const href = 'https://www.bilibili.com/account/history'
export const history: CustomNavbarItemInit = { export const history: CustomNavbarItemInit = {

View File

@ -1,4 +1,4 @@
import { getJsonWithCredentials, bilibiliApi } from '@/core/ajax' import { bilibiliApi, getJsonWithCredentials } from '@/core/ajax'
import { fixed } from '@/core/utils' import { fixed } from '@/core/utils'
import { formatDuration } from '@/core/utils/formatters' import { formatDuration } from '@/core/utils/formatters'

View File

@ -30,7 +30,9 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { categories, Category } from '@/components/utils/categories/data' import type { Category } from '@/components/utils/categories/data'
import { categories } from '@/components/utils/categories/data'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
const clone = lodash.cloneDeep(categories) const clone = lodash.cloneDeep(categories)

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const home: CustomNavbarItemInit = { export const home: CustomNavbarItemInit = {
name: 'home', name: 'home',

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
interface NavbarIframeConfig { interface NavbarIframeConfig {
src: string src: string

View File

@ -1,13 +1,11 @@
import { import type { OptionsOfMetadata } from '@/components/define'
defineComponentMetadata, import { defineComponentMetadata, defineOptionsMetadata } from '@/components/define'
defineOptionsMetadata, import type { LaunchBarActionProvider } from '@/components/launch-bar/launch-bar-action'
OptionsOfMetadata,
} from '@/components/define'
import { LaunchBarActionProvider } from '@/components/launch-bar/launch-bar-action'
import { urlInclude, urlExclude } from './urls'
import { entry } from './entry'
import { getNumberValidator } from '@/core/utils' import { getNumberValidator } from '@/core/utils'
import { entry } from './entry'
import { urlExclude, urlInclude } from './urls'
const styleID = 'custom-navbar-style' const styleID = 'custom-navbar-style'
const options = defineOptionsMetadata({ const options = defineOptionsMetadata({
hidden: { hidden: {

View File

@ -10,8 +10,8 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { addComponentListener } from '@/core/settings'
import { getJson } from '@/core/ajax' import { getJson } from '@/core/ajax'
import { addComponentListener } from '@/core/settings'
import { VIcon } from '@/ui' import { VIcon } from '@/ui'
export default Vue.extend({ export default Vue.extend({

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const logo: CustomNavbarItemInit = { export const logo: CustomNavbarItemInit = {
name: 'logo', name: 'logo',

View File

@ -15,6 +15,7 @@
<script lang="ts"> <script lang="ts">
import { getJsonWithCredentials } from '@/core/ajax' import { getJsonWithCredentials } from '@/core/ajax'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
interface MessageEntry { interface MessageEntry {

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
const messagesUrl = 'https://message.bilibili.com/' const messagesUrl = 'https://message.bilibili.com/'
export const messages: CustomNavbarItemInit = { export const messages: CustomNavbarItemInit = {

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
const rankingUrl = 'https://www.bilibili.com/v/popular/rank/' const rankingUrl = 'https://www.bilibili.com/v/popular/rank/'
export const ranking: CustomNavbarItemInit = { export const ranking: CustomNavbarItemInit = {

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const search: CustomNavbarItemInit = { export const search: CustomNavbarItemInit = {
name: 'search', name: 'search',

View File

@ -12,8 +12,9 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { VIcon, VButton } from '@/ui' import { VButton, VIcon } from '@/ui'
import { setTriggerElement, loadNavbarSettings, toggleNavbarSettings } from './vm'
import { loadNavbarSettings, setTriggerElement, toggleNavbarSettings } from './vm'
export default Vue.extend({ export default Vue.extend({
components: { components: {

View File

@ -68,12 +68,14 @@
</VPopup> </VPopup>
</template> </template>
<script lang="ts"> <script lang="ts">
import { SortableEvent } from 'sortablejs' import type { SortableEvent } from 'sortablejs'
import { VPopup, VIcon, VSlider, VLoading } from '@/ui'
import { SortableJSLibrary } from '@/core/runtime-library'
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { dqa } from '@/core/utils' import { dqa } from '@/core/utils'
import { SortableJSLibrary } from '@/core/runtime-library'
import { getData } from '@/plugins/data' import { getData } from '@/plugins/data'
import { VIcon, VLoading, VPopup, VSlider } from '@/ui'
import { CustomNavbarItem, CustomNavbarRenderedItems } from '../custom-navbar-item' import { CustomNavbarItem, CustomNavbarRenderedItems } from '../custom-navbar-item'
import { checkSequentialOrder, sortItems } from './orders' import { checkSequentialOrder, sortItems } from './orders'

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
interface SimpleLinkConfig { interface SimpleLinkConfig {
name: string name: string

View File

@ -4,9 +4,10 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { TabControl } from '@/ui'
import { TabMappings, TabMapping } from '@/ui/tab-mapping'
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { TabControl } from '@/ui'
import type { TabMapping, TabMappings } from '@/ui/tab-mapping'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
import { SubscriptionTypes } from './subscriptions' import { SubscriptionTypes } from './subscriptions'

View File

@ -41,10 +41,11 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { getJsonWithCredentials } from '@/core/ajax'
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { logError } from '@/core/utils/log' import { logError } from '@/core/utils/log'
import { DpiImage, VLoading, VEmpty, VIcon, ScrollTrigger } from '@/ui' import { DpiImage, ScrollTrigger, VEmpty, VIcon, VLoading } from '@/ui'
import { getJsonWithCredentials } from '@/core/ajax'
import { SubscriptionTypes } from './subscriptions' import { SubscriptionTypes } from './subscriptions'
enum SubscriptionStatus { enum SubscriptionStatus {

View File

@ -1,5 +1,6 @@
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { CustomNavbarItemInit } from '../custom-navbar-item'
import type { CustomNavbarItemInit } from '../custom-navbar-item'
export enum SubscriptionTypes { export enum SubscriptionTypes {
Bangumi = 'bangumi', Bangumi = 'bangumi',

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const upload: CustomNavbarItemInit = { export const upload: CustomNavbarItemInit = {
name: 'upload', name: 'upload',

View File

@ -155,11 +155,12 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { getUID, getCsrf, formData } from '@/core/utils'
import { formatCount } from '@/core/utils/formatters'
import { logError } from '@/core/utils/log'
import { getJsonWithCredentials, postTextWithCredentials } from '@/core/ajax' import { getJsonWithCredentials, postTextWithCredentials } from '@/core/ajax'
import { getUserInfo } from '@/core/user-info' import { getUserInfo } from '@/core/user-info'
import { formData, getCsrf, getUID } from '@/core/utils'
import { formatCount } from '@/core/utils/formatters'
import { logError } from '@/core/utils/log'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
type PrivilegeType = 1 | 2 type PrivilegeType = 1 | 2

View File

@ -1,5 +1,6 @@
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { CustomNavbarItemInit } from '../custom-navbar-item'
import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const userInfo: CustomNavbarItemInit = { export const userInfo: CustomNavbarItemInit = {
name: 'userInfo', name: 'userInfo',

View File

@ -50,15 +50,12 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import type { RawWatchlaterItem } from '@/components/video/watchlater'
import { getWatchlaterList, toggleWatchlater, watchlaterList } from '@/components/video/watchlater'
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import { formatDuration } from '@/core/utils/formatters' import { formatDuration } from '@/core/utils/formatters'
import { import { DpiImage, TextBox, VButton, VEmpty, VIcon, VLoading } from '@/ui'
watchlaterList,
getWatchlaterList,
RawWatchlaterItem,
toggleWatchlater,
} from '@/components/video/watchlater'
import { VLoading, VEmpty, TextBox, VButton, VIcon, DpiImage } from '@/ui'
import { popperMixin } from '../mixins' import { popperMixin } from '../mixins'
interface WatchlaterCard { interface WatchlaterCard {

View File

@ -1,4 +1,4 @@
import { CustomNavbarItemInit } from '../custom-navbar-item' import type { CustomNavbarItemInit } from '../custom-navbar-item'
export const watchlater: CustomNavbarItemInit = { export const watchlater: CustomNavbarItemInit = {
name: 'watchlater', name: 'watchlater',

View File

@ -1,5 +1,6 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { LifeCycleEventTypes } from '@/core/life-cycle' import { LifeCycleEventTypes } from '@/core/life-cycle'
import { darkExcludes } from '../dark-urls' import { darkExcludes } from '../dark-urls'
export const component = defineComponentMetadata({ export const component = defineComponentMetadata({

View File

@ -1,4 +1,5 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { darkExcludes } from './dark-urls' import { darkExcludes } from './dark-urls'
const changeDelay = 200 const changeDelay = 200

View File

@ -1,11 +1,10 @@
import { import type { OptionsOfMetadata } from '@/components/define'
defineComponentMetadata, import { defineComponentMetadata, defineOptionsMetadata } from '@/components/define'
defineOptionsMetadata,
OptionsOfMetadata,
} from '@/components/define'
import { fullyLoaded } from '@/core/life-cycle' import { fullyLoaded } from '@/core/life-cycle'
import { ComponentSettings, getComponentSettings } from '@/core/settings' import type { ComponentSettings } from '@/core/settings'
import { Range } from '@/ui/range' import { getComponentSettings } from '@/core/settings'
import type { Range } from '@/ui/range'
import { darkExcludes } from '../dark-urls' import { darkExcludes } from '../dark-urls'
class ScheduleTime { class ScheduleTime {

View File

@ -13,11 +13,12 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VEmpty, VLoading } from '@/ui'
import { enableHorizontalScroll } from '@/core/horizontal-scroll' import { enableHorizontalScroll } from '@/core/horizontal-scroll'
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { VEmpty, VLoading } from '@/ui'
import { cleanUpScrollMask, setupScrollMask } from './scroll-mask'
import VideoCardWrapper from './VideoCardWrapper.vue' import VideoCardWrapper from './VideoCardWrapper.vue'
import { setupScrollMask, cleanUpScrollMask } from './scroll-mask'
export default Vue.extend({ export default Vue.extend({
components: { components: {

View File

@ -2,6 +2,7 @@ import { defineComponentMetadata } from '@/components/define'
import { contentLoaded } from '@/core/life-cycle' import { contentLoaded } from '@/core/life-cycle'
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { getNumberValidator, mountVueComponent } from '@/core/utils' import { getNumberValidator, mountVueComponent } from '@/core/utils'
import { homeUrls } from '../urls' import { homeUrls } from '../urls'
export const component = defineComponentMetadata({ export const component = defineComponentMetadata({

View File

@ -24,9 +24,10 @@
<script lang="ts"> <script lang="ts">
import { addData } from '@/plugins/data' import { addData } from '@/plugins/data'
import { VButton, VIcon } from '@/ui' import { VButton, VIcon } from '@/ui'
import BlackRoomColored from './black-room.svg'
import LiveColored from './live.svg' import LiveColored from './live.svg'
import TopicColored from './topic.svg' import TopicColored from './topic.svg'
import BlackRoomColored from './black-room.svg'
addData('ui.icons', (icons: Record<string, string>) => { addData('ui.icons', (icons: Record<string, string>) => {
icons['live-colored'] = LiveColored icons['live-colored'] = LiveColored

View File

@ -1,4 +1,4 @@
import { FreshLayoutItem } from '../fresh-layout-item' import type { FreshLayoutItem } from '../fresh-layout-item'
export const areas: FreshLayoutItem = { export const areas: FreshLayoutItem = {
name: 'areas', name: 'areas',

View File

@ -52,7 +52,8 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VButton, VIcon, DpiImage } from '@/ui' import { DpiImage, VButton, VIcon } from '@/ui'
import { getBlackboards } from './api' import { getBlackboards } from './api'
export default Vue.extend({ export default Vue.extend({

View File

@ -1,4 +1,4 @@
import { FreshLayoutItem } from '../fresh-layout-item' import type { FreshLayoutItem } from '../fresh-layout-item'
export const blackboard: FreshLayoutItem = { export const blackboard: FreshLayoutItem = {
name: 'blackboard', name: 'blackboard',

View File

@ -35,13 +35,14 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { ArrayContent } from '@/core/common-types' import type { ArrayContent } from '@/core/common-types'
import { Reorder } from '@/core/reorder' import { Reorder } from '@/core/reorder'
import { ascendingSort } from '@/core/utils/sort' import { ascendingSort } from '@/core/utils/sort'
import { VButton, VIcon } from '@/ui' import { VButton, VIcon } from '@/ui'
import { freshHomeOptions } from '../../types' import { freshHomeOptions } from '../../types'
import { supportedCategories } from './filter'
import { getContent } from './content/content' import { getContent } from './content/content'
import { supportedCategories } from './filter'
const tabs = Object.entries(supportedCategories).map(([name, category]) => ({ const tabs = Object.entries(supportedCategories).map(([name, category]) => ({
id: category.code as number, id: category.code as number,

View File

@ -1,4 +1,4 @@
import { FreshLayoutItem } from '../fresh-layout-item' import type { FreshLayoutItem } from '../fresh-layout-item'
export const categories: FreshLayoutItem = { export const categories: FreshLayoutItem = {
name: 'categories', name: 'categories',

View File

@ -20,10 +20,11 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { applyContentFilter } from '@/components/feeds/api' import { applyContentFilter } from '@/components/feeds/api'
import SubHeader from '../../../SubHeader.vue' import SubHeader from '../../../SubHeader.vue'
import RankList from './RankList.vue'
import BangumiTimeline from './BangumiTimeline.vue' import BangumiTimeline from './BangumiTimeline.vue'
import { RankListCard } from './rank-list' import type { RankListCard } from './rank-list'
import RankList from './RankList.vue'
const bangumiDataMap = { const bangumiDataMap = {
anime: { anime: {

View File

@ -99,13 +99,14 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { DpiImage, VIcon, VEmpty, VLoading } from '@/ui'
import { addComponentListener } from '@/core/settings'
import { enableHorizontalScroll } from '@/core/horizontal-scroll'
import { cssVariableMixin, requestMixin } from '../../../../mixin'
import { rankListCssVars } from './rank-list'
import { setupScrollMask, cleanUpScrollMask } from '../../../scroll-mask'
import { getJsonWithCredentials } from '@/core/ajax' import { getJsonWithCredentials } from '@/core/ajax'
import { enableHorizontalScroll } from '@/core/horizontal-scroll'
import { addComponentListener } from '@/core/settings'
import { DpiImage, VEmpty, VIcon, VLoading } from '@/ui'
import { cssVariableMixin, requestMixin } from '../../../../mixin'
import { cleanUpScrollMask, setupScrollMask } from '../../../scroll-mask'
import { rankListCssVars } from './rank-list'
interface TimelineSeason { interface TimelineSeason {
cover: string cover: string

View File

@ -20,10 +20,11 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { applyContentFilter } from '@/components/feeds/api' import { applyContentFilter } from '@/components/feeds/api'
import { RankListCard } from './rank-list'
import SubHeader from '../../../SubHeader.vue'
import type { RankListCard } from './rank-list'
import RankList from './RankList.vue' import RankList from './RankList.vue'
import VideoSlides from './VideoSlides.vue' import VideoSlides from './VideoSlides.vue'
import SubHeader from '../../../SubHeader.vue'
/* /*
TODO: 有几个区表面上是普通视频, 但内容走的还是番剧那套, 所以 RankList 也要换 API TODO: 有几个区表面上是普通视频, 但内容走的还是番剧那套, 所以 RankList 也要换 API

View File

@ -106,8 +106,9 @@
<script lang="ts"> <script lang="ts">
import UpInfo from '@/components/feeds/UpInfo.vue' import UpInfo from '@/components/feeds/UpInfo.vue'
import { formatCount } from '@/core/utils/formatters' import { formatCount } from '@/core/utils/formatters'
import { DpiImage, VIcon, VLoading, VEmpty, VButton } from '@/ui' import { DpiImage, VButton, VEmpty, VIcon, VLoading } from '@/ui'
import { requestMixin, cssVariableMixin } from '../../../../mixin'
import { cssVariableMixin, requestMixin } from '../../../../mixin'
import { rankListCssVars } from './rank-list' import { rankListCssVars } from './rank-list'
export default Vue.extend({ export default Vue.extend({

View File

@ -105,10 +105,11 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { applyContentFilter } from '@/components/feeds/api' import { applyContentFilter } from '@/components/feeds/api'
import { VideoCard } from '@/components/feeds/video-card' import type { VideoCard } from '@/components/feeds/video-card'
import { getWatchlaterList, toggleWatchlater, watchlaterList } from '@/components/video/watchlater' import { getWatchlaterList, toggleWatchlater, watchlaterList } from '@/components/video/watchlater'
import { formatDuration } from '@/core/utils/formatters' import { formatDuration } from '@/core/utils/formatters'
import { DpiImage, VButton, VIcon, VLoading, VEmpty } from '@/ui' import { DpiImage, VButton, VEmpty, VIcon, VLoading } from '@/ui'
import { cssVariableMixin, requestMixin } from '../../../../mixin' import { cssVariableMixin, requestMixin } from '../../../../mixin'
export default Vue.extend({ export default Vue.extend({

View File

@ -1,4 +1,5 @@
import { categories } from '@/components/utils/categories/data' import { categories } from '@/components/utils/categories/data'
import supportedNames from './supported-names.json' import supportedNames from './supported-names.json'
const excludedNames = [ const excludedNames = [

View File

@ -53,9 +53,10 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { getVideoFeeds } from '@/components/feeds/api' import { getVideoFeeds } from '@/components/feeds/api'
import { VideoCard } from '@/components/feeds/video-card' import type { VideoCard } from '@/components/feeds/video-card'
import { ArrayContent } from '@/core/common-types' import type { ArrayContent } from '@/core/common-types'
import { VButton, VIcon } from '@/ui' import { VButton, VIcon } from '@/ui'
import VideoList from '../../VideoList.vue' import VideoList from '../../VideoList.vue'
type FeedsApi = () => Promise<VideoCard[]> type FeedsApi = () => Promise<VideoCard[]>

View File

@ -1,4 +1,4 @@
import { FreshLayoutItem } from '../fresh-layout-item' import type { FreshLayoutItem } from '../fresh-layout-item'
export const feeds: FreshLayoutItem = { export const feeds: FreshLayoutItem = {
name: 'feeds', name: 'feeds',

View File

@ -1,4 +1,4 @@
import { Executable, VueModule, WithName } from '@/core/common-types' import type { Executable, VueModule, WithName } from '@/core/common-types'
export interface FreshLayoutItem extends WithName { export interface FreshLayoutItem extends WithName {
component: Executable<VueModule> component: Executable<VueModule>

View File

@ -1,4 +1,5 @@
import { registerAndGetData } from '@/plugins/data' import { registerAndGetData } from '@/plugins/data'
import { areas } from './areas/areas' import { areas } from './areas/areas'
import { blackboard } from './blackboard/blackboard' import { blackboard } from './blackboard/blackboard'
import { categories } from './categories/categories' import { categories } from './categories/categories'

View File

@ -23,9 +23,10 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { VButton, VIcon } from '@/ui' import { VButton, VIcon } from '@/ui'
import VideoList from '../../VideoList.vue'
import { freshHomeOptions } from '../../types'
import { getTrendingVideos } from '../../../trending' import { getTrendingVideos } from '../../../trending'
import { freshHomeOptions } from '../../types'
import VideoList from '../../VideoList.vue'
export default Vue.extend({ export default Vue.extend({
components: { components: {

View File

@ -1,4 +1,4 @@
import { FreshLayoutItem } from '../fresh-layout-item' import type { FreshLayoutItem } from '../fresh-layout-item'
export const trending: FreshLayoutItem = { export const trending: FreshLayoutItem = {
name: 'trending', name: 'trending',

View File

@ -1,5 +1,6 @@
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import { FreshLayoutItemSettings } from './layouts/fresh-layout-item'
import type { FreshLayoutItemSettings } from './layouts/fresh-layout-item'
export const freshHomeOptions = getComponentSettings('freshHome').options as { export const freshHomeOptions = getComponentSettings('freshHome').options as {
layoutOptions: Record<string, FreshLayoutItemSettings> layoutOptions: Record<string, FreshLayoutItemSettings>

View File

@ -8,7 +8,8 @@
<script lang="ts"> <script lang="ts">
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { TabControl } from '@/ui' import { TabControl } from '@/ui'
import { TabMappings } from '@/ui/tab-mapping' import type { TabMappings } from '@/ui/tab-mapping'
import HomeRedesignBase from '../HomeRedesignBase.vue' import HomeRedesignBase from '../HomeRedesignBase.vue'
import { minimalHomeOptions } from './options' import { minimalHomeOptions } from './options'
import { MinimalHomeTabOption } from './types' import { MinimalHomeTabOption } from './types'

View File

@ -1,7 +1,8 @@
import { defineComponentMetadata, defineOptionsMetadata } from '@/components/define' import { defineComponentMetadata, defineOptionsMetadata } from '@/components/define'
import { contentLoaded } from '@/core/life-cycle' import { contentLoaded } from '@/core/life-cycle'
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { mountVueComponent, getNumberValidator } from '@/core/utils' import { getNumberValidator, mountVueComponent } from '@/core/utils'
import { homeUrls } from '../urls' import { homeUrls } from '../urls'
import { MinimalHomeTabOption } from './types' import { MinimalHomeTabOption } from './types'

View File

@ -1,5 +1,6 @@
import { OptionsOfMetadata } from '@/components/define' import type { OptionsOfMetadata } from '@/components/define'
import { getComponentSettings } from '@/core/settings' import { getComponentSettings } from '@/core/settings'
import type { minimalHomeOptionsMetadata } from '.' import type { minimalHomeOptionsMetadata } from '.'
export const minimalHomeOptions = export const minimalHomeOptions =

View File

@ -10,11 +10,12 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { getVideoFeeds } from '@/components/feeds/api' import { getVideoFeeds } from '@/components/feeds/api'
import { VideoCard } from '@/components/feeds/video-card' import type { VideoCard } from '@/components/feeds/video-card'
import VideoCardComponent from '@/components/feeds/VideoCard.vue' import VideoCardComponent from '@/components/feeds/VideoCard.vue'
import { logError } from '@/core/utils/log' import { logError } from '@/core/utils/log'
import { ascendingStringSort } from '@/core/utils/sort' import { ascendingStringSort } from '@/core/utils/sort'
import { VEmpty, ScrollTrigger } from '@/ui' import { ScrollTrigger, VEmpty } from '@/ui'
import MinimalHomeOperations from '../MinimalHomeOperations.vue' import MinimalHomeOperations from '../MinimalHomeOperations.vue'
export default Vue.extend({ export default Vue.extend({

View File

@ -9,11 +9,12 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { VideoCard } from '@/components/feeds/video-card' import type { VideoCard } from '@/components/feeds/video-card'
import VideoCardComponent from '@/components/feeds/VideoCard.vue' import VideoCardComponent from '@/components/feeds/VideoCard.vue'
import { logError } from '@/core/utils/log' import { logError } from '@/core/utils/log'
import { ascendingStringSort } from '@/core/utils/sort' import { ascendingStringSort } from '@/core/utils/sort'
import { VEmpty, VLoading } from '@/ui' import { VEmpty, VLoading } from '@/ui'
import { getTrendingVideos } from '../../trending' import { getTrendingVideos } from '../../trending'
import MinimalHomeOperations from '../MinimalHomeOperations.vue' import MinimalHomeOperations from '../MinimalHomeOperations.vue'
import { minimalHomeOptions } from '../options' import { minimalHomeOptions } from '../options'

View File

@ -1,8 +1,8 @@
import { applyContentFilter } from '@/components/feeds/api' import { applyContentFilter } from '@/components/feeds/api'
import { VideoCard } from '@/components/feeds/video-card' import type { VideoCard } from '@/components/feeds/video-card'
import { getJson, getJsonWithCredentials } from '@/core/ajax' import { getJson, getJsonWithCredentials } from '@/core/ajax'
import { getUID } from '@/core/utils' import { getUID } from '@/core/utils'
import { formatDuration, formatCount } from '@/core/utils/formatters' import { formatCount, formatDuration } from '@/core/utils/formatters'
export const getTrendingVideos = async (isPersonalized: boolean) => { export const getTrendingVideos = async (isPersonalized: boolean) => {
const api = 'https://api.bilibili.com/x/web-interface/index/top/feed/rcmd' const api = 'https://api.bilibili.com/x/web-interface/index/top/feed/rcmd'

View File

@ -1,5 +1,4 @@
import { newSwitchComponentWrapper, defineSwitchMetadata } from '@/components/switch-options' import { defineSwitchMetadata, newSwitchComponentWrapper } from '@/components/switch-options'
import { addComponentListener, getComponentSettings } from '@/core/settings' import { addComponentListener, getComponentSettings } from '@/core/settings'
import { sq } from '@/core/spin-query' import { sq } from '@/core/spin-query'
import { addStyle } from '@/core/style' import { addStyle } from '@/core/style'

View File

@ -1,5 +1,5 @@
import { newSwitchComponentWrapper } from '@/components/switch-options'
import { styledComponentEntry } from '@/components/styled-component' import { styledComponentEntry } from '@/components/styled-component'
import { newSwitchComponentWrapper } from '@/components/switch-options'
import { liveUrls } from '@/core/utils/urls' import { liveUrls } from '@/core/utils/urls'
export const component = newSwitchComponentWrapper({ export const component = newSwitchComponentWrapper({

View File

@ -1,11 +1,8 @@
import { import type { OptionsOfMetadata } from '@/components/define'
defineComponentMetadata, import { defineComponentMetadata, defineOptionsMetadata } from '@/components/define'
defineOptionsMetadata, import type { ComponentEntry } from '@/components/types'
OptionsOfMetadata,
} from '@/components/define'
import { ComponentEntry } from '@/components/types'
import { playerUrls } from '@/core/utils/urls'
import { addComponentListener } from '@/core/settings' import { addComponentListener } from '@/core/settings'
import { playerUrls } from '@/core/utils/urls'
const options = defineOptionsMetadata({ const options = defineOptionsMetadata({
highlight: { highlight: {

View File

@ -3,6 +3,7 @@ import { playerAgent } from '@/components/video/player-agent'
import { videoChange } from '@/core/observer' import { videoChange } from '@/core/observer'
import { addStyle } from '@/core/style' import { addStyle } from '@/core/style'
import { playerUrls } from '@/core/utils/urls' import { playerUrls } from '@/core/utils/urls'
import touchStyles from './double-click-control.scss' import touchStyles from './double-click-control.scss'
const entry = async () => { const entry = async () => {

View File

@ -1,5 +1,5 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { videoAndBangumiUrls, liveUrls } from '@/core/utils/urls' import { liveUrls, videoAndBangumiUrls } from '@/core/utils/urls'
const setTouch = async (enable: boolean) => { const setTouch = async (enable: boolean) => {
if (!document.URL.startsWith('https://live.bilibili.com')) { if (!document.URL.startsWith('https://live.bilibili.com')) {

View File

@ -1,5 +1,6 @@
import { select } from '@/core/spin-query' import { select } from '@/core/spin-query'
import { addStyle, removeStyle } from '@/core/style' import { addStyle, removeStyle } from '@/core/style'
import miniPlayerStyle from './mini-player.scss' import miniPlayerStyle from './mini-player.scss'
export const touchVideoMiniPlayer = async (enable: boolean) => { export const touchVideoMiniPlayer = async (enable: boolean) => {

View File

@ -44,10 +44,12 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { ProgressBar, ProgressRing } from '@/ui'
import { fixed } from '@/core/utils' import { fixed } from '@/core/utils'
import { formatPercent, formatDuration } from '@/core/utils/formatters' import { formatDuration, formatPercent } from '@/core/utils/formatters'
import { GesturePreviewParams, ProgressSeekMode } from './gesture-preview' import { ProgressBar, ProgressRing } from '@/ui'
import type { GesturePreviewParams } from './gesture-preview'
import { ProgressSeekMode } from './gesture-preview'
import { Videoshot } from './videoshot' import { Videoshot } from './videoshot'
import { syncVolumeUI } from './volume' import { syncVolumeUI } from './volume'

View File

@ -1,5 +1,6 @@
import { playerAgent } from '@/components/video/player-agent' import { playerAgent } from '@/components/video/player-agent'
import { GesturePreviewParams, ProgressSeekMode } from './gesture-preview'
import type { GesturePreviewParams, ProgressSeekMode } from './gesture-preview'
export const entry = async () => { export const entry = async () => {
const { videoChange } = await import('@/core/observer') const { videoChange } = await import('@/core/observer')

Some files were not shown because too many files have changed in this diff Show More