SYMBOL INDEX (728 symbols across 83 files) FILE: ci/generateList.ts function generateList (line 33) | async function generateList() { FILE: ci/invidiousType.ts type InvidiousInstance (line 1) | type InvidiousInstance = [ type monitor (line 15) | type monitor = { type ivStats (line 48) | type ivStats = { FILE: ci/pipedCI.ts type percent (line 3) | type percent = string type dailyMinutesDown (line 4) | type dailyMinutesDown = Record type PipedInstance (line 6) | type PipedInstance = { function dailyMinuteFilter (line 28) | function dailyMinuteFilter (dailyMinutesDown: dailyMinutesDown) { function getPipedList (line 88) | async function getPipedList(): Promise { FILE: src/background.ts function registerFirefoxContentScript (line 169) | async function registerFirefoxContentScript(options: Registration) { function unregisterFirefoxContentScript (line 209) | async function unregisterFirefoxContentScript(id: string) { function submitVote (line 226) | async function submitVote(type: number, UUID: string, category: string, ... function asyncRequestToServer (line 254) | async function asyncRequestToServer(type: string, address: string, data ... FILE: src/components/CategoryPillComponent.tsx type CategoryPillProps (line 14) | interface CategoryPillProps { type CategoryPillState (line 20) | interface CategoryPillState { class CategoryPillComponent (line 26) | class CategoryPillComponent extends React.Component { method constructor (line 82) | constructor(props: NoticeProps) { method componentDidMount (line 117) | componentDidMount(): void { method render (line 121) | render(): React.ReactElement { method getCountdownElements (line 251) | getCountdownElements(): React.ReactElement[] { method onMouseEnter (line 276) | onMouseEnter(event: React.MouseEvent): void { method fadedMouseEnter (line 283) | fadedMouseEnter(): void { method timerMouseEnter (line 291) | timerMouseEnter(): void { method timerMouseLeave (line 301) | timerMouseLeave(): void { method toggleManualPause (line 311) | toggleManualPause(): void { method countdown (line 324) | countdown(): void { method removeFadeAnimation (line 351) | removeFadeAnimation(): void { method pauseCountdown (line 358) | pauseCountdown(): void { method startCountdown (line 374) | startCountdown(): void { method setupInterval (line 388) | setupInterval(): void { method resetCountdown (line 394) | resetCountdown(): void { method close (line 410) | close(silent?: boolean): void { method addNoticeInfoMessage (line 417) | addNoticeInfoMessage(message: string, message2 = ""): void { method getElement (line 452) | getElement(): React.RefObject { method componentWillUnmount (line 456) | componentWillUnmount(): void { method handleMouseMove (line 461) | handleMouseMove(e: MouseEvent): void { FILE: src/components/NoticeTextSectionComponent.tsx type NoticeTextSelectionProps (line 3) | interface NoticeTextSelectionProps { type NoticeTextSelectionState (line 11) | interface NoticeTextSelectionState { class NoticeTextSelectionComponent (line 15) | class NoticeTextSelectionComponent extends React.Component number { method afterVote (line 713) | afterVote(segment: SponsorTime, type: number, category: Category): void { method setNoticeInfoMessageWithOnClick (line 745) | setNoticeInfoMessageWithOnClick(onClick: (event: React.MouseEvent) => ... method setNoticeInfoMessage (line 752) | setNoticeInfoMessage(...messages: string[]): void { method addVoteButtonInfo (line 758) | addVoteButtonInfo(message: string): void { method resetVoteButtonInfo (line 764) | resetVoteButtonInfo(): void { method closeListener (line 770) | closeListener(): void { method clearConfigListener (line 776) | clearConfigListener(): void { method unmutedListener (line 783) | unmutedListener(time: number): void { method resetStateToStart (line 793) | resetStateToStart(actionState: SkipNoticeAction = SkipNoticeAction.Non... method getSkipButtonText (line 803) | private getSkipButtonText(buttonIndex: number, forceType?: ActionType)... method getUndoText (line 814) | private getUndoText(forceType?: ActionType): string { method getRedoText (line 827) | private getRedoText(forceType?: ActionType): string { method getStartText (line 840) | private getStartText(forceType?: ActionType): string { FILE: src/components/SponsorTimeEditComponent.tsx type SponsorTimeEditProps (line 17) | interface SponsorTimeEditProps { type SponsorTimeEditState (line 30) | interface SponsorTimeEditState { class SponsorTimeEditComponent (line 44) | class SponsorTimeEditComponent extends React.Component void): bo... method checkToShowFullVideoWarning (line 423) | checkToShowFullVideoWarning(): void { method checkToShowChapterWarning (line 436) | checkToShowChapterWarning(): void { method getCategoryOptions (line 449) | getCategoryOptions(): React.ReactElement[] { method getCategoryLockedClass (line 477) | getCategoryLockedClass(category: string): string { method categorySelectionChange (line 481) | categorySelectionChange(event: React.ChangeEvent): ... method actionTypeSelectionChange (line 527) | actionTypeSelectionChange(event: React.ChangeEvent)... method handleReplacingLostTimes (line 538) | private handleReplacingLostTimes(category: Category, actionType: Actio... method getActionTypeOptions (line 575) | getActionTypeOptions(sponsorTime: SponsorTime): React.ReactElement[] { method setTimeToNow (line 590) | setTimeToNow(index: number): void { method setTimeToEnd (line 594) | setTimeToEnd(): void { method setTimeTo (line 602) | setTimeTo(index: number, time: number): void { method toggleEditTime (line 619) | toggleEditTime(): void { method getFormattedSponsorTimesEdits (line 638) | getFormattedSponsorTimesEdits(sponsorTime: SponsorTime): [string, stri... method saveEditTimes (line 645) | saveEditTimes(): void { method getNextActionType (line 709) | private getNextActionType(category: Category, actionType: ActionType):... method previewTime (line 714) | previewTime(ctrlPressed = false, shiftPressed = false, skipToEndTime =... method inspectTime (line 730) | inspectTime(): void { method deleteTime (line 739) | deleteTime(): void { method descriptionUpdate (line 771) | descriptionUpdate(description: string): void { method fetchSuggestions (line 783) | async fetchSuggestions(description: string): Promise { method configUpdate (line 809) | configUpdate(): void { FILE: src/components/SubmissionNoticeComponent.tsx type SubmissionNoticeProps (line 14) | interface SubmissionNoticeProps { type SubmissionNoticeState (line 23) | interface SubmissionNoticeState { class SubmissionNoticeComponent (line 29) | class SubmissionNoticeComponent extends React.Component void, ... function getConfig (line 279) | function getConfig(selectedConfigurationID: ConfigurationID | null) { function getConfigurationValue (line 283) | function getConfigurationValue(selectedConfigurationID: Configuration... function updateConfigurationValue (line 295) | function updateConfigurationValue(selectedConfigurationID: Configuration... function ExtraOptionsComponent (line 312) | function ExtraOptionsComponent(props: {selectedConfigurationID: Configur... FILE: src/components/options/CategorySkipOptionsComponent.tsx type CategorySkipOptionsProps (line 12) | interface CategorySkipOptionsProps { type ToggleOption (line 23) | interface ToggleOption { function CategorySkipOptionsComponent (line 32) | function CategorySkipOptionsComponent(props: CategorySkipOptionsProps): ... function skipOptionSelected (line 142) | function skipOptionSelected(event: React.ChangeEvent, function getCategorySkipOptions (line 173) | function getCategorySkipOptions(category: Category, isDefaultConfig: boo... function ExtraOptionComponents (line 197) | function ExtraOptionComponents(props: {category: string; selectedConfigu... function ExtraOptionComponent (line 215) | function ExtraOptionComponent({option, selectedConfigurationID}: {option... function getExtraOptions (line 261) | function getExtraOptions(category: string): ToggleOption[] { FILE: src/components/options/KeybindComponent.tsx type KeybindProps (line 7) | interface KeybindProps { type KeybindState (line 11) | interface KeybindState { class KeybindComponent (line 18) | class KeybindComponent extends React.Component { method resetToDefault (line 175) | resetToDefault() { function migrateOldSyncFormats (line 190) | function migrateOldSyncFormats(config: SBConfig, local: SBStorage) { function generateDebugDetails (line 607) | function generateDebugDetails(): string { FILE: src/content.ts function messageListener (line 204) | function messageListener(request: Message, sender: unknown, sendResponse... function contentConfigUpdateListener (line 365) | function contentConfigUpdateListener(changes: StorageChangesObject) { function contentLocalConfigUpdateListener (line 386) | function contentLocalConfigUpdateListener(changes: StorageChangesObject) { function resetValues (line 409) | function resetValues() { function videoIDChange (line 457) | function videoIDChange(): void { function handleMobileControlsMutations (line 511) | function handleMobileControlsMutations(): void { function getPreviewBarAttachElement (line 537) | function getPreviewBarAttachElement(): HTMLElement | null { function createPreviewBar (line 598) | function createPreviewBar(): void { function durationChangeListener (line 615) | function durationChangeListener(): void { function videoOnReadyListener (line 624) | function videoOnReadyListener(): void { function cancelSponsorSchedule (line 630) | function cancelSponsorSchedule(): void { function startSponsorSchedule (line 652) | async function startSponsorSchedule(includeIntersectingSegments = false,... function waitForNextTimeChange (line 857) | function waitForNextTimeChange(): Promise { function getVirtualTime (line 863) | function getVirtualTime(): number { function inMuteSegment (line 875) | function inMuteSegment(currentTime: number, includeOverlap: boolean): bo... function incorrectVideoCheck (line 886) | function incorrectVideoCheck(videoID?: string, sponsorTime?: SponsorTime... function setupVideoListeners (line 912) | function setupVideoListeners(video: HTMLVideoElement) { function updateVirtualTime (line 1119) | function updateVirtualTime() { function updateWaitingTime (line 1160) | function updateWaitingTime(video: HTMLVideoElement): void { function clearWaitingTime (line 1164) | function clearWaitingTime(): void { function setupSkipButtonControlBar (line 1168) | function setupSkipButtonControlBar() { function setupCategoryPill (line 1187) | function setupCategoryPill() { function sponsorsLookup (line 1195) | async function sponsorsLookup(keepOldSubmissions = true, ignoreCache = f... function notifyPopupOfSegments (line 1276) | function notifyPopupOfSegments(): void { function importExistingChapters (line 1293) | function importExistingChapters(wait: boolean) { function handleExistingChaptersChannelChange (line 1326) | function handleExistingChaptersChannelChange() { function lockedCategoriesLookup (line 1332) | async function lockedCategoriesLookup(): Promise { function startSkipScheduleCheckingForStartSponsors (line 1355) | function startSkipScheduleCheckingForStartSponsors() { function selectSegment (line 1409) | function selectSegment(UUID: SegmentUUID): void { function updatePreviewBar (line 1414) | function updatePreviewBar(): void { function updateCategoryPill (line 1472) | function updateCategoryPill() { function channelIDChange (line 1482) | async function channelIDChange() { function videoElementChange (line 1493) | function videoElementChange(newVideo: boolean, video: HTMLVideoElement):... function checkPreviewbarState (line 1512) | function checkPreviewbarState(): void { function getNextSkipIndex (line 1534) | function getNextSkipIndex(currentTime: number, includeIntersectingSegmen... function getLatestEndTimeIndex (line 1607) | function getLatestEndTimeIndex(sponsorTimes: SponsorTime[], index: numbe... function getStartTimes (line 1657) | function getStartTimes(sponsorTimes: SponsorTime[], includeIntersectingS... function previewTime (line 1711) | function previewTime(time: number, unpause = true) { function sendTelemetryAndCount (line 1722) | function sendTelemetryAndCount(skippingSegments: SponsorTime[], secondsS... function skipToTime (line 1755) | function skipToTime({v, skipTime, skippingSegments, openNotice, forceAut... function createSkipNotice (line 1850) | function createSkipNotice(skippingSegments: SponsorTime[], autoSkip: boo... function createUpcomingNotice (line 1872) | function createUpcomingNotice(skippingSegments: SponsorTime[], timeLeft:... function unskipSponsorTime (line 1883) | function unskipSponsorTime(segment: SponsorTime, unskipTime: number = nu... function reskipSponsorTime (line 1896) | function reskipSponsorTime(segment: SponsorTime, forceSeek = false) { function createButton (line 1911) | function createButton(baseID: string, title: string, callback: () => voi... function shouldAutoSkip (line 1954) | function shouldAutoSkip(segment: SponsorTime): boolean { function shouldSkip (line 1969) | function shouldSkip(segment: SponsorTime): boolean { function isLoopedChapter (line 1978) | function isLoopedChapter(segment: SponsorTime): boolean{ function createButtons (line 1984) | async function createButtons(): Promise { function updateVisibilityOfPlayerControlsButton (line 2004) | async function updateVisibilityOfPlayerControlsButton(): Promise { function updateEditButtonsOnPlayer (line 2022) | function updateEditButtonsOnPlayer(): void { function getRealCurrentTime (line 2066) | function getRealCurrentTime(): number { function startOrEndTimingNewSegment (line 2081) | function startOrEndTimingNewSegment() { function getIncompleteSegment (line 2127) | function getIncompleteSegment(): SponsorTime { function isSegmentCreationInProgress (line 2132) | function isSegmentCreationInProgress(): boolean { function cancelCreatingSegment (line 2137) | function cancelCreatingSegment() { function updateSponsorTimesSubmitting (line 2154) | function updateSponsorTimesSubmitting(getFromConfig = true) { function openInfoMenu (line 2193) | function openInfoMenu() { function closeInfoMenu (line 2275) | function closeInfoMenu() { function clearSponsorTimes (line 2287) | function clearSponsorTimes() { function vote (line 2312) | async function vote(type: number, UUID: SegmentUUID, category?: Category... function voteAsync (line 2345) | async function voteAsync(type: number, UUID: SegmentUUID, category?: Cat... function closeAllSkipNotices (line 2400) | function closeAllSkipNotices(){ function dontShowNoticeAgain (line 2407) | function dontShowNoticeAgain() { function resetSponsorSubmissionNotice (line 2415) | function resetSponsorSubmissionNotice(callRef = true) { function closeSubmissionMenu (line 2420) | function closeSubmissionMenu() { function openSubmissionMenu (line 2425) | function openSubmissionMenu() { function previewRecentSegment (line 2436) | function previewRecentSegment() { function submitSegments (line 2446) | function submitSegments() { function sendSubmitMessage (line 2457) | async function sendSubmitMessage(): Promise { function getSegmentsMessage (line 2573) | function getSegmentsMessage(sponsorTimes: SponsorTime[]): string { function updateActiveSegment (line 2594) | function updateActiveSegment(currentTime: number): void { function nextChapter (line 2605) | function nextChapter(): void { function previousChapter (line 2620) | function previousChapter(): void { function handleKeybindVote (line 2644) | async function handleKeybindVote(type: number): Promise{ function addHotkeyListener (line 2661) | function addHotkeyListener(): void { function hotkeyListener (line 2671) | function hotkeyListener(e: KeyboardEvent): void { function hotkeyPropagationListener (line 2748) | function hotkeyPropagationListener(e: KeyboardEvent): void { function addCSS (line 2777) | function addCSS() { function updateAdFlag (line 2804) | function updateAdFlag(): void { function showTimeWithoutSkips (line 2813) | function showTimeWithoutSkips(skippedDuration: number): void { function checkForPreloadedSegment (line 2848) | function checkForPreloadedSegment() { function setCategoryColorCSSVariables (line 2882) | function setCategoryColorCSSVariables() { function checkForMiniplayerPlaying (line 2913) | function checkForMiniplayerPlaying() { FILE: src/dearrowPromotion.ts function tryShowingDeArrowPromotion (line 13) | async function tryShowingDeArrowPromotion() { function badTitle (line 68) | function badTitle(title: string): boolean { function hideDeArrowPromotion (line 72) | function hideDeArrowPromotion(): void { FILE: src/globals.d.ts type Window (line 3) | interface Window { SB: SBObject } FILE: src/help.ts function init (line 40) | async function init() { FILE: src/js-components/previewBar.ts constant TOOLTIP_VISIBLE_CLASS (line 20) | const TOOLTIP_VISIBLE_CLASS = 'sponsorCategoryTooltipVisible'; constant MIN_CHAPTER_SIZE (line 21) | const MIN_CHAPTER_SIZE = 0.003; type PreviewBarSegment (line 23) | interface PreviewBarSegment { type ChapterGroup (line 35) | interface ChapterGroup extends SegmentContainer { class PreviewBar (line 40) | class PreviewBar { method constructor (line 81) | constructor(parent: HTMLElement, onMobileYouTube: boolean, onInvidious... method setupHoverText (line 104) | setupHoverText(): void { method setTooltipTitle (line 256) | private setTooltipTitle(segment: PreviewBarSegment, tooltip: HTMLEleme... method createElement (line 286) | createElement(parent?: HTMLElement): void { method clear (line 304) | clear(): void { method set (line 320) | set(segments: PreviewBarSegment[], videoDuration: number): void { method updatePageElements (line 351) | private updatePageElements(): void { method update (line 367) | private update(): void { method createBar (line 408) | createBar(barSegment: PreviewBarSegment): HTMLLIElement { method createChaptersBar (line 444) | createChaptersBar(segments: PreviewBarSegment[]): void { method createChapterRenderGroups (line 563) | createChapterRenderGroups(segments: PreviewBarSegment[]): ChapterGroup... method getActionTypePrioritized (line 660) | private getActionTypePrioritized(actionTypes: ActionType[]): ActionType { method setupChapterSection (line 670) | private setupChapterSection(section: HTMLElement, startTime: number, e... method firstTimeSetupChapterSection (line 683) | private firstTimeSetupChapterSection(section: HTMLElement): void { method createChapterMutationObservers (line 691) | private createChapterMutationObservers(): void { method updateChapterAllMutation (line 736) | private updateChapterAllMutation(originalChapterBar: HTMLElement, prog... method updateChapterMutation (line 746) | private updateChapterMutation(changes: Record, pr... method findLeftAndScale (line 815) | private findLeftAndScale(selector: string, currentElement: HTMLElement... method getPartialChapterSectionStyle (line 882) | private getPartialChapterSectionStyle(element: HTMLElement, param: str... method updateChapterText (line 891) | updateChapterText(segments: SponsorTime[], submittingSegments: Sponsor... method setActiveSegments (line 924) | private setActiveSegments(segments: SponsorTime[]): void { method getChaptersContainer (line 1022) | private getChaptersContainer(): HTMLElement { method getChapterButton (line 1038) | private getChapterButton(chaptersContainer: HTMLElement): HTMLButtonEl... method remove (line 1043) | remove(): void { method chapterFilter (line 1057) | private chapterFilter(segment: PreviewBarSegment): boolean { method chapterGroupFilter (line 1063) | private chapterGroupFilter(segment: SegmentContainer): boolean { method intervalToPercentage (line 1067) | intervalToPercentage(startTime: number, endTime: number) { method intervalToDecimal (line 1071) | intervalToDecimal(startTime: number, endTime: number) { method timeToPercentage (line 1075) | timeToPercentage(time: number): string { method timeToRightPercentage (line 1079) | timeToRightPercentage(time: number): string { method timeToDecimal (line 1083) | timeToDecimal(time: number): number { method decimalToTime (line 1087) | decimalToTime(decimal: number): number { method decimalTimeConverter (line 1094) | decimalTimeConverter(value: number, isTime: boolean): number { method getMinimumSize (line 1141) | getMinimumSize(showLarger = false): number { method getSmallestSegment (line 1146) | private getSmallestSegment(timeInSeconds: number, segments: PreviewBar... method getChapterChevron (line 1185) | private getChapterChevron(): HTMLElement { FILE: src/js-components/skipButtonControlBar.ts type SkipButtonControlBarProps (line 8) | interface SkipButtonControlBarProps { class SkipButtonControlBar (line 15) | class SkipButtonControlBar { method constructor (line 42) | constructor(props: SkipButtonControlBarProps) { method getElement (line 85) | getElement(): HTMLElement { method attachToPage (line 89) | attachToPage(): void { method getMountingContainer (line 110) | private getMountingContainer(): HTMLElement { method enable (line 120) | enable(segment: SponsorTime, duration?: number): void { method refreshText (line 133) | refreshText(): void { method setShowKeybindHint (line 142) | setShowKeybindHint(show: boolean): void { method stopTimer (line 148) | stopTimer(): void { method startTimer (line 152) | startTimer(): void { method disable (line 157) | disable(): void { method isEnabled (line 166) | isEnabled(): boolean { method toggleSkip (line 170) | toggleSkip(): void { method disableText (line 177) | disableText(): void { method updateMobileControls (line 195) | updateMobileControls(): void { method getTitle (line 205) | private getTitle(): string { method getChapterPrefix (line 209) | private getChapterPrefix(): HTMLElement { method handleTouchStart (line 214) | private handleTouchStart(event: TouchEvent): void { method handleTouchMove (line 219) | private handleTouchMove(event: TouchEvent): void { method handleTouchEnd (line 227) | private handleTouchEnd(): void { method updateLeftStyle (line 241) | private updateLeftStyle() { FILE: src/messageTypes.ts type BaseMessage (line 8) | interface BaseMessage { type DefaultMessage (line 12) | interface DefaultMessage { type IsInfoFoundMessage (line 23) | interface IsInfoFoundMessage { type SkipMessage (line 28) | interface SkipMessage { type SubmitVoteMessage (line 33) | interface SubmitVoteMessage { type HideSegmentMessage (line 39) | interface HideSegmentMessage { type CopyToClipboardMessage (line 45) | interface CopyToClipboardMessage { type ImportSegmentsMessage (line 50) | interface ImportSegmentsMessage { type LoopChapterMessage (line 55) | interface LoopChapterMessage { type KeyDownMessage (line 60) | interface KeyDownMessage { type SetCurrentTabSkipProfileResponse (line 72) | interface SetCurrentTabSkipProfileResponse { type Message (line 77) | type Message = BaseMessage & (DefaultMessage | IsInfoFoundMessage | Skip... type IsInfoFoundMessageResponse (line 79) | interface IsInfoFoundMessageResponse { type GetVideoIdResponse (line 92) | interface GetVideoIdResponse { type GetChannelIDResponse (line 96) | interface GetChannelIDResponse { type SponsorStartResponse (line 101) | interface SponsorStartResponse { type IsChannelWhitelistedResponse (line 105) | interface IsChannelWhitelistedResponse { type LoopedChapterResponse (line 109) | interface LoopedChapterResponse { type MessageResponse (line 113) | type MessageResponse = type VoteResponse (line 126) | type VoteResponse = { type ImportSegmentsResponse (line 134) | interface ImportSegmentsResponse { type RefreshSegmentsResponse (line 138) | interface RefreshSegmentsResponse { type LogResponse (line 142) | interface LogResponse { type TimeUpdateMessage (line 147) | interface TimeUpdateMessage { type InfoUpdatedMessage (line 152) | type InfoUpdatedMessage = IsInfoFoundMessageResponse & { type VideoChangedPopupMessage (line 156) | interface VideoChangedPopupMessage { type PopupMessage (line 163) | type PopupMessage = TimeUpdateMessage | InfoUpdatedMessage | VideoChange... FILE: src/options.ts function init (line 34) | async function init() { function createStickyHeader (line 406) | function createStickyHeader() { function shouldHideOption (line 426) | async function shouldHideOption(element: Element): Promise { function optionsConfigUpdateListener (line 434) | function optionsConfigUpdateListener() { function optionsLocalConfigUpdateListener (line 447) | function optionsLocalConfigUpdateListener(changes: StorageChangesObject) { function updateDisplayElement (line 460) | function updateDisplayElement(element: HTMLElement) { function invidiousInstanceAddInit (line 489) | function invidiousInstanceAddInit(element: HTMLElement, option: string) { function invidiousInit (line 548) | function invidiousInit(checkbox: HTMLInputElement, option: string) { function invidiousOnClick (line 564) | async function invidiousOnClick(checkbox: HTMLInputElement, option: stri... function activatePrivateTextChange (line 574) | function activatePrivateTextChange(element: HTMLElement) { function setTextOption (line 642) | async function setTextOption(option: string, element: HTMLElement, value... function downloadConfig (line 683) | function downloadConfig(element: Element) { function uploadConfig (line 696) | function uploadConfig(e: Event, element: HTMLElement) { function validateServerAddress (line 716) | function validateServerAddress(input: string): string { function copyDebugOutputToClipboard (line 733) | function copyDebugOutputToClipboard() { function isIncognitoAllowed (line 744) | function isIncognitoAllowed(): Promise { FILE: src/permissions.ts function init (line 16) | async function init() { FILE: src/popup/PopupComponent.tsx type LoadingStatus (line 16) | enum LoadingStatus { type LoadingData (line 26) | interface LoadingData { type SkipProfileAction (line 32) | type SkipProfileAction = "forJustThisVideo" | "forThisChannel" | "forThi... type SkipProfileOption (line 33) | interface SkipProfileOption { type SegmentsLoadedProps (line 38) | interface SegmentsLoadedProps { type LoadSegmentsProps (line 46) | interface LoadSegmentsProps extends SegmentsLoadedProps { type SkipProfileRadioButtonsProps (line 50) | interface SkipProfileRadioButtonsProps { type SkipOptionActionComponentProps (line 58) | interface SkipOptionActionComponentProps { function getVideoStatusText (line 294) | function getVideoStatusText(status: LoadingData): string { function loadSegments (line 313) | async function loadSegments(props: LoadSegmentsProps): Promise { function segmentsLoaded (line 335) | function segmentsLoaded(response: IsInfoFoundMessageResponse, props: Seg... function sendMessage (line 374) | function sendMessage(request: Message): Promise { function setupComPort (line 387) | function setupComPort(props: SegmentsLoadedProps): void { function onMessage (line 393) | function onMessage(props: SegmentsLoadedProps, msg: PopupMessage) { function forwardClickEvents (line 413) | function forwardClickEvents(sendMessage: (request: Message) => Promise void }): JSX.Element { function getFormattedHours (line 217) | function getFormattedHours(minutes) { FILE: src/popup/popupUtils.ts function copyToClipboardPopup (line 3) | function copyToClipboardPopup(text: string, sendMessage: (request: Messa... FILE: src/render/AdvancedSkipOptions.tsx class AdvancedSkipOptions (line 6) | class AdvancedSkipOptions { method constructor (line 7) | constructor(element: Element) { FILE: src/render/CategoryChooser.tsx class CategoryChooser (line 6) | class CategoryChooser { method constructor (line 8) | constructor(element: Element) { FILE: src/render/CategoryPill.tsx class CategoryPill (line 14) | class CategoryPill { method constructor (line 26) | constructor() { method attachToPage (line 36) | async attachToPage(onMobileYouTube: boolean, onInvidious: boolean, method attachToPageInternal (line 45) | private async attachToPageInternal(): Promise { method close (line 106) | close(): void { method setVisibility (line 111) | setVisibility(show: boolean): void { method setSegment (line 121) | async setSegment(segment: SponsorTime): Promise { FILE: src/render/ChapterVote.tsx class ChapterVote (line 7) | class ChapterVote { method constructor (line 16) | constructor(vote: (type: number, UUID: SegmentUUID, category?: Categor... method getContainer (line 31) | getContainer(): HTMLElement { method close (line 35) | close(): void { method setVisibility (line 40) | setVisibility(show: boolean): void { method setSegment (line 53) | async setSegment(segment: SponsorTime): Promise { FILE: src/render/GenericNotice.tsx type TextBox (line 13) | interface TextBox { type NoticeOptions (line 18) | interface NoticeOptions { class GenericNotice (line 33) | class GenericNotice { method constructor (line 42) | constructor(contentContainer: ContentContainer, idSuffix: string, opti... method update (line 61) | update(options: NoticeOptions): void { method getMessageBoxes (line 105) | getMessageBoxes(idSuffix: string, textBoxes: TextBox[]): JSX.Element[] { method getButtons (line 123) | getButtons(buttons?: ButtonListener[]): JSX.Element[] { method close (line 144) | close(): void { FILE: src/render/RectangleTooltip.tsx type RectangleTooltipProps (line 4) | interface RectangleTooltipProps { class RectangleTooltip (line 20) | class RectangleTooltip { method constructor (line 26) | constructor(props: RectangleTooltipProps) { method close (line 89) | close(): void { FILE: src/render/SkipNotice.tsx class SkipNotice (line 12) | class SkipNotice { method constructor (line 23) | constructor(segments: SponsorTime[], autoSkip = false, contentContaine... method setShowKeybindHint (line 62) | setShowKeybindHint(value: boolean): void { method close (line 68) | close(): void { method toggleSkip (line 77) | toggleSkip(): void { method unmutedListener (line 81) | unmutedListener(time: number): void { method waitForSkipNoticeRef (line 85) | async waitForSkipNoticeRef(): Promise { FILE: src/render/SubmissionNotice.tsx class SubmissionNotice (line 10) | class SubmissionNotice { method constructor (line 22) | constructor(contentContainer: ContentContainer, callback: () => Promis... method update (line 45) | update(): void { method close (line 49) | close(callRef = true): void { method submit (line 56) | submit(): void { method scrollToBottom (line 60) | scrollToBottom(): void { FILE: src/render/Tooltip.tsx class Tooltip (line 3) | class Tooltip extends GenericTooltip { method constructor (line 4) | constructor(props: TooltipProps) { FILE: src/render/UnsubmittedVideos.tsx class UnsubmittedVideos (line 5) | class UnsubmittedVideos { method constructor (line 9) | constructor(element: Element) { method update (line 18) | update(): void { FILE: src/render/UpcomingNotice.tsx class UpcomingNotice (line 9) | class UpcomingNotice { method constructor (line 21) | constructor(segments: SponsorTime[], contentContainer: ContentContaine... method close (line 48) | close(): void { method sameNotice (line 55) | sameNotice(segments: SponsorTime[]): boolean { FILE: src/svg-icons/checkIcon.tsx type CheckIconProps (line 3) | interface CheckIconProps { FILE: src/svg-icons/clipboardIcon.tsx type ClipboardIconProps (line 3) | interface ClipboardIconProps { FILE: src/svg-icons/pencilIcon.tsx type PencilIconProps (line 3) | interface PencilIconProps { FILE: src/svg-icons/resetIcon.tsx type AddIconProps (line 3) | interface AddIconProps { FILE: src/svg-icons/sb_svg.tsx type SbIconProps (line 3) | interface SbIconProps { function SbSvg (line 12) | function SbSvg({ FILE: src/types.ts type ContentContainer (line 5) | interface ContentContainer { type VideoDurationResponse (line 28) | interface VideoDurationResponse { type CategorySkipOption (line 32) | enum CategorySkipOption { type CategorySelection (line 40) | interface CategorySelection { type SponsorHideType (line 45) | enum SponsorHideType { type ActionType (line 52) | enum ActionType { type SegmentUUID (line 68) | type SegmentUUID = string & { __segmentUUIDBrand: unknown }; type Category (line 69) | type Category = string & { __categoryBrand: unknown }; type SponsorSourceType (line 71) | enum SponsorSourceType { type SegmentContainer (line 78) | interface SegmentContainer { type SponsorTime (line 82) | interface SponsorTime extends SegmentContainer { type ScheduledTime (line 95) | interface ScheduledTime extends SponsorTime { type PreviewBarOption (line 99) | interface PreviewBarOption { type Registration (line 105) | interface Registration { type BackgroundScriptContainer (line 114) | interface BackgroundScriptContainer { type VideoInfo (line 119) | interface VideoInfo { type VideoID (line 195) | type VideoID = string; type UnEncodedSegmentTimes (line 197) | type UnEncodedSegmentTimes = [string, SponsorTime[]][]; type ChannelIDStatus (line 199) | enum ChannelIDStatus { type ChannelIDInfo (line 205) | interface ChannelIDInfo { type SkipToTimeParams (line 210) | interface SkipToTimeParams { type ToggleSkippable (line 219) | interface ToggleSkippable { type NoticeVisibilityMode (line 224) | enum NoticeVisibilityMode { type SegmentListDefaultTab (line 232) | enum SegmentListDefaultTab { FILE: src/utils.ts class Utils (line 12) | class Utils { method constructor (line 28) | constructor(backgroundScriptContainer: BackgroundScriptContainer = nul... method wait (line 32) | async wait(condition: () => T, timeout = 5000, check = 100): Promis... method containsPermission (line 36) | containsPermission(permissions: chrome.permissions.Permissions): Promi... method setupExtraSitePermissions (line 50) | setupExtraSitePermissions(callback: (granted: boolean) => void): void { method getExtraSiteRegistration (line 70) | getExtraSiteRegistration(): Registration { method setupExtraSiteContentScripts (line 88) | setupExtraSiteContentScripts(): void { method removeExtraSiteRegistration (line 101) | removeExtraSiteRegistration(): void { method applyInvidiousPermissions (line 118) | applyInvidiousPermissions(enable: boolean, option = "supportInvidious"... method containsInvidiousPermission (line 135) | containsInvidiousPermission(): Promise { method getMergedTimestamps (line 154) | getMergedTimestamps(timestamps: number[][]): [number, number][] { method getTimestampsDuration (line 196) | getTimestampsDuration(timestamps: number[][]): number { method getSponsorIndexFromUUID (line 202) | getSponsorIndexFromUUID(sponsorTimes: SponsorTime[], UUID: string): nu... method getSponsorTimeFromUUID (line 212) | getSponsorTimeFromUUID(sponsorTimes: SponsorTime[], UUID: string): Spo... method getPermissionRegex (line 219) | getPermissionRegex(domains: string[] = []): string[] { method findReferenceNode (line 233) | findReferenceNode(): HTMLElement { method isContentScript (line 268) | isContentScript(): boolean { method isHex (line 272) | isHex(num: string): boolean { method addHiddenSegment (line 276) | async addHiddenSegment(videoID: VideoID, segmentUUID: string, hidden: ... FILE: src/utils/arrayUtils.ts function partition (line 1) | function partition(array: T[], filter: (element: T) => boolean): [T[]... FILE: src/utils/categoryUtils.ts function getSkippingText (line 3) | function getSkippingText(segments: SponsorTime[], autoSkip: boolean): st... function getUpcomingText (line 41) | function getUpcomingText(segments: SponsorTime[]): string { function getVoteText (line 49) | function getVoteText(segments: SponsorTime[]): string { function getCategorySuffix (line 58) | function getCategorySuffix(category: Category): string { function shortCategoryName (line 70) | function shortCategoryName(categoryName: string): string { constant DEFAULT_CATEGORY (line 73) | const DEFAULT_CATEGORY = "chooseACategory"; FILE: src/utils/compatibility.ts function runCompatibilityChecks (line 3) | function runCompatibilityChecks() { function isVorapisInstalled (line 17) | function isVorapisInstalled() { FILE: src/utils/configUtils.ts function showDonationLink (line 3) | function showDonationLink(): boolean { FILE: src/utils/constants.ts function getGuidelineInfo (line 4) | function getGuidelineInfo(category: Category): TextBox[] { FILE: src/utils/crossExtension.ts function isDeArrowInstalled (line 7) | function isDeArrowInstalled(): Promise { function getExtensionIdsToImportFrom (line 36) | function getExtensionIdsToImportFrom(): string[] { FILE: src/utils/exporter.ts function exportTimes (line 15) | function exportTimes(segments: SponsorTime[]): string { function exportTime (line 27) | function exportTime(segment: SponsorTime): string { function importTimes (line 35) | function importTimes(data: string, videoDuration: number): SponsorTime[] { function removeIf (line 99) | function removeIf(value: string, matchers: Array<{ matcher: RegExp; cond... function exportTimesAsHashParam (line 110) | function exportTimesAsHashParam(segments: SponsorTime[]): string { function normalizeChapterName (line 122) | function normalizeChapterName(description: string): string { FILE: src/utils/genericUtils.ts function getLuminance (line 2) | function getLuminance(color: string): number { function hexToRgb (line 9) | function hexToRgb(hex: string): { r: number; g: number; b: number } | nu... function indexesOf (line 24) | function indexesOf(array: T[], value: T): number[] { FILE: src/utils/logger.ts function logDebug (line 8) | function logDebug(message: string) { function logWarn (line 16) | function logWarn(message: string) { FILE: src/utils/mobileUtils.ts function isMobileControlsOpen (line 1) | function isMobileControlsOpen(): boolean { FILE: src/utils/noticeUtils.ts type SkipNoticeAction (line 4) | enum SkipNoticeAction { function downvoteButtonColor (line 14) | function downvoteButtonColor(segments: SponsorTime[], actionState: SkipN... FILE: src/utils/pageCleaner.ts function cleanPage (line 1) | function cleanPage() { FILE: src/utils/pageUtils.ts function getControls (line 5) | function getControls(): HTMLElement { function isInPreviewPlayer (line 32) | function isInPreviewPlayer(element: Element): boolean { function isVisible (line 36) | function isVisible(element: HTMLElement): boolean { function getHashParams (line 40) | function getHashParams(): Record { function hasAutogeneratedChapters (line 61) | function hasAutogeneratedChapters(): boolean { function getExistingChapters (line 65) | function getExistingChapters(currentVideoID: VideoID, duration: number):... function isPlayingPlaylist (line 110) | function isPlayingPlaylist() { FILE: src/utils/requests.ts function asyncRequestToServer (line 12) | async function asyncRequestToServer(type: string, address: string, data ... FILE: src/utils/segmentData.ts type SegmentResponse (line 20) | interface SegmentResponse { function getSegmentsForVideo (line 25) | async function getSegmentsForVideo(videoID: VideoID, ignoreCache: boolea... function fetchSegmentsForVideo (line 57) | async function fetchSegmentsForVideo(videoID: VideoID): Promise(key: keyof CustomConfiguration): T { function hideTooShortSegments (line 84) | function hideTooShortSegments(sponsorTimes: SponsorTime[]) { FILE: src/utils/skipRule.ts constant SKIP_RULE_ATTRIBUTES (line 10) | const SKIP_RULE_ATTRIBUTES = Object.values(SkipRuleAttribute); constant SKIP_RULE_OPERATORS (line 11) | const SKIP_RULE_OPERATORS = Object.values(SkipRuleOperator); constant INVERTED_SKIP_RULE_OPERATORS (line 12) | const INVERTED_SKIP_RULE_OPERATORS = { constant WORD_EXTRA_CHARACTER (line 26) | const WORD_EXTRA_CHARACTER = /[a-zA-Z0-9.]/; constant OPERATOR_EXTRA_CHARACTER (line 27) | const OPERATOR_EXTRA_CHARACTER = /[<>=!~*&|-]/; constant ANY_EXTRA_CHARACTER (line 28) | const ANY_EXTRA_CHARACTER = /[a-zA-Z0-9<>=!~*&|.-]/; function getCategorySelection (line 30) | function getCategorySelection(segment: SponsorTime | VideoLabelsCacheDat... function getSkipCheckValue (line 61) | function getSkipCheckValue(segment: SponsorTime | VideoLabelsCacheData, ... function isSkipCheckPassing (line 120) | function isSkipCheckPassing(segment: SponsorTime | VideoLabelsCacheData,... function isSkipPredicatePassing (line 153) | function isSkipPredicatePassing(segment: SponsorTime | VideoLabelsCacheD... function getCategoryDefaultSelection (line 166) | function getCategoryDefaultSelection(category: string): CategorySelection { type TokenType (line 175) | type TokenType = type SourcePos (line 185) | interface SourcePos { type Span (line 189) | interface Span { type Token (line 194) | interface Token { class Lexer (line 200) | class Lexer { method constructor (line 208) | public constructor(source: string) { method makeToken (line 216) | private makeToken(type: TokenType): Token { method consume (line 230) | private consume(): string | null { method peek (line 254) | private peek(): string | null { method expectKeyword (line 273) | private expectKeyword(keywords: readonly string[], caseSensitive: bool... method skipWhitespace (line 293) | private skipWhitespace() { method skipLine (line 312) | private skipLine() { method isEof (line 326) | private isEof(): boolean { method resetToCurrent (line 337) | private resetToCurrent() { method nextToken (line 342) | public nextToken(): Token { type ParseError (line 559) | interface ParseError { class Parser (line 564) | class Parser { method constructor (line 576) | public constructor(lexer: Lexer) { method errorAt (line 596) | private errorAt(span: Span, message: string, panic: boolean) { method error (line 613) | private error(message: string, panic: boolean) { method errorAtCurrent (line 625) | private errorAtCurrent(message: string, panic: boolean) { method consume (line 635) | private consume() { method match (line 649) | private match(expected: readonly TokenType[]): boolean { method expect (line 668) | private expect(expected: readonly TokenType[], message: string, panic:... method synchronize (line 678) | private synchronize() { method isEof (line 693) | private isEof(): boolean { method parse (line 703) | public parse(): { rules: AdvancedSkipRule[]; errors: ParseError[] } { method parseRule (line 720) | private parseRule(): AdvancedSkipRule | null { method parsePredicate (line 755) | private parsePredicate(): AdvancedSkipPredicate | null { method parseOr (line 759) | private parseOr(): AdvancedSkipPredicate | null { method parseAnd (line 775) | private parseAnd(): AdvancedSkipPredicate | null { method parseUnary (line 791) | private parseUnary(): AdvancedSkipPredicate | null { method parsePrimary (line 800) | private parsePrimary(): AdvancedSkipPredicate | null { method parseCheck (line 810) | private parseCheck(): AdvancedSkipCheck | null { function parseConfig (line 856) | function parseConfig(config: string): { rules: AdvancedSkipRule[]; error... function configToText (line 861) | function configToText(config: AdvancedSkipRule[]): string { function predicateToText (line 895) | function predicateToText(predicate: AdvancedSkipPredicate, outerPreceden... function invertPredicate (line 914) | function invertPredicate(predicate: AdvancedSkipPredicate): AdvancedSkip... FILE: src/utils/skipRule.type.ts type Permission (line 3) | interface Permission { type SkipRuleAttribute (line 10) | enum SkipRuleAttribute { type SkipRuleOperator (line 30) | enum SkipRuleOperator { type AdvancedSkipCheck (line 45) | interface AdvancedSkipCheck { type PredicateOperator (line 52) | enum PredicateOperator { type AdvancedSkipOperator (line 57) | interface AdvancedSkipOperator { type AdvancedSkipPredicate (line 65) | type AdvancedSkipPredicate = AdvancedSkipCheck | AdvancedSkipOperator; type AdvancedSkipRule (line 67) | interface AdvancedSkipRule { FILE: src/utils/thumbnails.ts function handleThumbnails (line 9) | async function handleThumbnails(thumbnails: HTMLImageElement[]): Promise... function labelThumbnail (line 16) | async function labelThumbnail(thumbnail: HTMLImageElement): Promise { function getHasStartSegment (line 87) | async function getHasStartSegment(videoID: VideoID): Promise { function waitForInstall (line 74) | async function waitForInstall(driver: WebDriver, startingTab = 0): Promi... function goToVideo (line 83) | async function goToVideo(driver: WebDriver, videoId: string): Promise { FILE: webpack/configDiffPlugin.js function partialDeepEquals (line 9) | function partialDeepEquals (actual, expected, logger) { function printActualExpected (line 38) | function printActualExpected(key, actual, expected, logger) { class configDiffPlugin (line 44) | class configDiffPlugin { method apply (line 45) | apply(compiler) { FILE: webpack/webpack.common.js class DocumentScriptCompiler (line 62) | class DocumentScriptCompiler { method apply (line 69) | apply(compiler) { method transform (line 159) | transform(content, path) { FILE: webpack/webpack.manifest.js class BuildManifest (line 35) | class BuildManifest { method constructor (line 36) | constructor (options = {}) { method apply (line 42) | apply() { function mergeObjects (line 81) | function mergeObjects(object1, object2) { FILE: webpack/webpack.prod.js function createGHPSourceMapURL (line 6) | async function createGHPSourceMapURL(env) {