Skip to content

Commit e11d187

Browse files
committed
chore: move PieceExtended, PieceUi, IOutputLayerExtended, ISourceLayerExtended interface into core
1 parent a904a45 commit e11d187

70 files changed

Lines changed: 144 additions & 161 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/corelib/src/dataModel/Piece.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import {
88
import { ProtectedString, protectString, unprotectString } from '../protectedString.js'
99
import { PieceId, RundownId, SegmentId, PartId } from './Ids.js'
1010
import { CoreUserEditingDefinition, CoreUserEditingProperties } from './UserEditingDefinitions.js'
11+
import { IOutputLayerExtended, ISourceLayerExtended } from './ShowStyleBase.js'
12+
import { PieceInstanceWithTimings } from '../playout/processAndPrune.js'
1113

1214
/** A generic list of playback availability statuses for a Piece */
1315
export enum PieceStatusCode {
@@ -95,6 +97,30 @@ export interface Piece
9597
userEditProperties?: CoreUserEditingProperties
9698
}
9799

100+
export interface PieceExtended {
101+
instance: PieceInstanceWithTimings
102+
103+
/** Source layer that this piece belongs to */
104+
sourceLayer?: ISourceLayerExtended
105+
/** Output layer that this part uses */
106+
outputLayer?: IOutputLayerExtended
107+
/** Position in timeline, relative to the beginning of the Part */
108+
renderedInPoint: number | null
109+
/** Duration in timeline */
110+
renderedDuration: number | null
111+
/** If set, the item was cropped in runtime by another item following it */
112+
cropped?: boolean
113+
/** Maximum width of a label so as not to appear underneath the following item */
114+
maxLabelWidth?: number
115+
/** If this piece has a "buddy" piece in the preceeding part, then it's not neccessary to display it's left label */
116+
hasOriginInPreceedingPart?: boolean
117+
}
118+
119+
export interface PieceUi extends PieceExtended {
120+
/** This item has already been linked to the parent item of the spanning item group */
121+
linked?: boolean
122+
}
123+
98124
export type PieceTimelineObjectsBlob = ProtectedString<'PieceTimelineObjectsBlob'>
99125

100126
export function deserializePieceTimelineObjectsBlob(

packages/corelib/src/dataModel/ShowStyleBase.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { IBlueprintConfig, IOutputLayer, ISourceLayer, SourceLayerType } from '@
22
import { ObjectWithOverrides } from '../settings/objectWithOverrides.js'
33
import { BlueprintHash, LastBlueprintConfig } from './Blueprint.js'
44
import { BlueprintId, ShowStyleBaseId } from './Ids.js'
5+
import { PieceExtended } from './Piece.js'
56

67
export interface HotkeyDefinition {
78
_id: string
@@ -22,7 +23,19 @@ export interface HotkeyDefinition {
2223
down?: (e: any) => void
2324
}
2425

26+
export interface IOutputLayerExtended extends IOutputLayer {
27+
/** Is this output layer used in this segment */
28+
used: boolean
29+
/** Source layers that will be used by this output layer */
30+
sourceLayers: Array<ISourceLayerExtended>
31+
}
2532
export type OutputLayers = Record<string, IOutputLayer | undefined>
33+
export interface ISourceLayerExtended extends ISourceLayer {
34+
/** Pieces present on this source layer */
35+
pieces: Array<PieceExtended>
36+
followingItems: Array<PieceExtended>
37+
}
38+
2639
export type SourceLayers = Record<string, ISourceLayer | undefined>
2740

2841
export interface DBShowStyleBase {

packages/meteor-lib/src/triggers/RundownViewEventBus.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import {
99
SegmentId,
1010
TriggeredActionId,
1111
} from '@sofie-automation/corelib/dist/dataModel/Ids'
12-
import type { PieceUi } from '../uiTypes/Piece.js'
1312
import type { ShelfTabs } from '../uiTypes/ShelfTabs.js'
1413
import type { IAdLibListItem } from '../uiTypes/Adlib.js'
1514
import type { BucketAdLibItem } from '../uiTypes/Bucket.js'
1615
import { Bucket } from '@sofie-automation/corelib/dist/dataModel/Bucket'
16+
import { PieceUi } from '@sofie-automation/corelib/dist/dataModel/Piece.js'
1717

1818
export enum RundownViewEvents {
1919
ACTIVATE_RUNDOWN_PLAYLIST = 'activateRundownPlaylist',

packages/meteor-lib/src/uiTypes/OutputLayer.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

packages/meteor-lib/src/uiTypes/Piece.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

packages/meteor-lib/src/uiTypes/SourceLayer.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

packages/webui/src/client/lib/RundownResolver.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Piece } from '@sofie-automation/corelib/dist/dataModel/Piece'
1+
import { Piece, PieceExtended } from '@sofie-automation/corelib/dist/dataModel/Piece'
22
import { DBSegment, SegmentOrphanedReason } from '@sofie-automation/corelib/dist/dataModel/Segment'
33
import { DBPart } from '@sofie-automation/corelib/dist/dataModel/Part'
44
import { wrapPartToTemporaryInstance } from '@sofie-automation/meteor-lib/dist/collections/PartInstances'
@@ -25,15 +25,8 @@ import {
2525
} from '@sofie-automation/corelib/dist/dataModel/Ids'
2626
import { RundownPlaylistClientUtil } from './rundownPlaylistUtil.js'
2727
import { PieceInstances, Pieces } from '../collections/index.js'
28-
29-
import { PieceExtended } from '@sofie-automation/meteor-lib/dist/uiTypes/Piece'
30-
import { ISourceLayerExtended } from '@sofie-automation/meteor-lib/dist/uiTypes/SourceLayer'
31-
import { IOutputLayerExtended } from '@sofie-automation/meteor-lib/dist/uiTypes/OutputLayer'
3228
import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js'
33-
34-
export type { PieceExtended } from '@sofie-automation/meteor-lib/dist/uiTypes/Piece'
35-
export type { ISourceLayerExtended } from '@sofie-automation/meteor-lib/dist/uiTypes/SourceLayer'
36-
export type { IOutputLayerExtended } from '@sofie-automation/meteor-lib/dist/uiTypes/OutputLayer'
29+
import { IOutputLayerExtended, ISourceLayerExtended } from '@sofie-automation/corelib/src/dataModel/ShowStyleBase.js'
3730

3831
export interface SegmentExtended extends DBSegment {
3932
/** Output layers available in the installation used by this segment */

packages/webui/src/client/lib/rundown.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import _ from 'underscore'
2-
import { PieceUi, PartUi } from '../ui/SegmentTimeline/SegmentTimelineContainer.js'
2+
import { PartUi } from '../ui/SegmentTimeline/SegmentTimelineContainer.js'
33
import { Timecode } from '@sofie-automation/corelib/dist/index'
44
import { Settings } from '../lib/Settings.js'
55
import { TFunction } from 'react-i18next'
@@ -15,9 +15,6 @@ import {
1515
SegmentExtended,
1616
PartExtended,
1717
getPieceInstancesForPartInstance,
18-
PieceExtended,
19-
IOutputLayerExtended,
20-
ISourceLayerExtended,
2118
PartInstanceLimited,
2219
isLoopRunning,
2320
} from './RundownResolver.js'
@@ -43,12 +40,16 @@ import { calculatePartInstanceExpectedDurationWithTransition } from '@sofie-auto
4340
import { AdLibPieceUi } from './shelf.js'
4441
import { PartId, PieceId, RundownId, SegmentId, ShowStyleBaseId } from '@sofie-automation/corelib/dist/dataModel/Ids'
4542
import { PieceInstances, Segments } from '../collections/index.js'
46-
import { PieceStatusCode } from '@sofie-automation/corelib/dist/dataModel/Piece'
43+
import { PieceExtended, PieceStatusCode, PieceUi } from '@sofie-automation/corelib/dist/dataModel/Piece'
4744
import { assertNever } from '@sofie-automation/shared-lib/dist/lib/lib'
4845
import { MongoQuery } from '@sofie-automation/corelib/dist/mongo'
4946
import { DBPart } from '@sofie-automation/corelib/dist/dataModel/Part'
5047
import { RundownPlaylistClientUtil } from './rundownPlaylistUtil.js'
51-
import { UIShowStyleBase } from '@sofie-automation/corelib/src/dataModel/ShowStyleBase.js'
48+
import {
49+
IOutputLayerExtended,
50+
ISourceLayerExtended,
51+
UIShowStyleBase,
52+
} from '@sofie-automation/corelib/src/dataModel/ShowStyleBase.js'
5253
import { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js'
5354

5455
/**

packages/webui/src/client/lib/ui/pieceUiClassNames.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { PieceLifespan, SourceLayerType } from '@sofie-automation/blueprints-integration'
22
import { PartId } from '@sofie-automation/corelib/dist/dataModel/Ids'
3-
import { PieceStatusCode } from '@sofie-automation/corelib/dist/dataModel/Piece'
3+
import { PieceStatusCode, PieceUi } from '@sofie-automation/corelib/dist/dataModel/Piece'
44
import classNames from 'classnames'
5-
import { PieceUi } from '../../ui/SegmentContainer/withResolvedSegment.js'
65
import { RundownUtils } from '../rundown.js'
76
import { ReadonlyDeep } from 'type-fest'
87
import { PieceContentStatusObj } from '@sofie-automation/corelib/dist/dataModel/PieceContentStatus'

packages/webui/src/client/ui/ClockView/CameraScreen/Part.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import classNames from 'classnames'
33
import { useContext } from 'react'
44
import { AreaZoom } from './index.js'
55
import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist'
6-
import { PieceExtended } from '../../../lib/RundownResolver.js'
76
import { getAllowSpeaking, getAllowVibrating } from '../../../lib/localStorage.js'
87
import { getPartInstanceTimingValue } from '../../../lib/rundownTiming.js'
98
import { AutoNextStatus } from '../../RundownView/RundownTiming/AutoNextStatus.js'
@@ -13,6 +12,7 @@ import { PartDisplayDuration } from '../../RundownView/RundownTiming/PartDuratio
1312
import { TimingDataResolution, TimingTickResolution, useTiming } from '../../RundownView/RundownTiming/withTiming.js'
1413
import { PartUi } from '../../SegmentContainer/withResolvedSegment.js'
1514
import { Piece } from './Piece.js'
15+
import { PieceExtended } from '@sofie-automation/corelib/src/dataModel/Piece.js'
1616

1717
interface IProps {
1818
part: PartUi

0 commit comments

Comments
 (0)