EmbyCrackedClient/web/modules/tabbedview/listcontroller.js

1 line
59 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import dom from"./../dom.js";import focusManager from"./../focusmanager.js";import globalize from"./../common/globalize.js";import userSettings from"./../common/usersettings/usersettings.js";import itemManager from"./../common/itemmanager/itemmanager.js";import layoutManager from"./../layoutmanager.js";import cardBuilder from"./../cardbuilder/cardbuilder.js";import listView from"./../listview/listview.js";import loading from"./../loading/loading.js";import AlphaPicker from"./../alphapicker/alphapicker.js";import playbackManager from"./../common/playback/playbackmanager.js";import connectionManager from"./../emby-apiclient/connectionmanager.js";import mainTabsManager from"./../maintabsmanager.js";import itemShortcuts from"./../shortcuts.js";let supportsCssVariables=CSS.supports("color","var(--fake-var)"),supportsCalc=CSS.supports("width","min(45.2%,calc(100% - .65em))"),supportsMin=CSS.supports("width","min(10em, 5vw)"),supportsCalcMin=supportsCalc&&supportsMin;function loadMultiSelect(){return layoutManager.tv?Promise.resolve(null):Emby.importModule("./modules/multiselect/multiselect.js")}let dataGrid;function loadDataGrid(){return dataGrid?Promise.resolve(dataGrid):Emby.importModule("./modules/datagrid/datagrid.js").then(function(response){return dataGrid=response})}function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function getApiClient(instance){return instance.getApiClient?instance.getApiClient():instance.apiClient||((instance=instance.params.serverId)?connectionManager.getApiClient(instance):connectionManager.currentApiClient())}function onAlphaNumericValueEntered(value){trySelectValue(this,this.scroller,this.view,value,!0)}function onAlphaValueChanged(e){e=e.detail.value;trySelectValue(this,this.scroller,this.itemsContainer,e,!!layoutManager.tv)}function trySelectValue(instance,scroller,view,value,focus){let sortValues=instance.getSortValues();!value||"#"===value&&"Ascending"===sortValues.sortOrder?instance.itemsContainer.scrollToIndex(0,{forceInstantScroll:!1},focus):instance.getItems({Limit:0}).then(function(totalResult){var sortBy,query;totalResult.TotalRecordCount<=1?instance.itemsContainer.scrollToIndex(0,{forceInstantScroll:!1},focus):"#"===value&&"Descending"===sortValues.sortOrder?instance.itemsContainer.scrollToIndex(totalResult.TotalRecordCount-1,{forceInstantScroll:!1},focus):(query={Limit:0},(sortBy=sortValues.sortBy||"").startsWith("AlbumArtist")?query.AlbumArtistStartsWithOrGreater=value:sortBy.startsWith("Artist")?query.ArtistStartsWithOrGreater=value:query.NameStartsWithOrGreater=value,instance.getItems(query).then(function(result){let newIndex;newIndex="Descending"===sortValues.sortOrder?result.TotalRecordCount:Math.max(totalResult.TotalRecordCount-result.TotalRecordCount,0),instance.itemsContainer.scrollToIndex(newIndex,{forceInstantScroll:!1},focus)}))})}function refreshAfterSettingsChange(instance){instance.resetRandomSeed(),instance.itemsContainer.refreshItems()}function showViewSettingsMenu(e){let instance=this;Emby.importModule("./modules/viewsettings/viewsettings.js").then(function(ViewSettings){let isGrid="datagrid"===instance.getViewSettings().imageType;(new ViewSettings).show({settingsKey:instance.getSettingsKey(),settings:instance.getViewSettings(),visibleSettings:instance.getVisibleViewSettings(),availableFields:instance.getAvailableFields(),viewOptions:instance.getAvailableViewOptions(),positionTo:e.target.closest("button"),positionY:"bottom",onChange:function(){var defaultSortBy,sorting,viewSettings=instance.getViewSettings();isGrid&&"datagrid"!==viewSettings.imageType&&(defaultSortBy=(sorting=instance.getDefaultSorting())?.sortBy,sorting=sorting?.sortOrder,instance.setSortValueInternal(defaultSortBy,sorting)),isGrid="datagrid"===viewSettings.imageType,refreshAfterSettingsChange(instance)}})})}function setSelectedSortOption(instance,options){var currentValues=instance.getSortValues();for(let i=0,length=options.length;i<length;i++){var opt=options[i];if(opt.selected=opt.value=