superdesk-ui-framework 3.0.1-beta.8 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/fonts/sd_icons.eot +0 -0
- package/app/fonts/sd_icons.svg +1 -0
- package/app/fonts/sd_icons.ttf +0 -0
- package/app/fonts/sd_icons.woff +0 -0
- package/app/scripts/toggleBoxNext.js +1 -1
- package/app/styles/_big-icon-font.scss +1 -1
- package/app/styles/_buttons.scss +11 -6
- package/app/styles/_content-divider.scss +63 -8
- package/app/styles/_helpers.scss +24 -1
- package/app/styles/_icon-font.scss +11 -10
- package/app/styles/_labels.scss +0 -1
- package/app/styles/_master-desk.scss +5 -4
- package/app/styles/_modals.scss +7 -3
- package/app/styles/_normalize.scss +4 -0
- package/app/styles/_sd-tag-input.scss +56 -2
- package/app/styles/_simple-list.scss +0 -2
- package/app/styles/_table-list.scss +116 -12
- package/app/styles/app.scss +3 -0
- package/app/styles/components/_list-item.scss +23 -16
- package/app/styles/components/_sd-collapse-box.scss +6 -6
- package/app/styles/components/_sd-comment-box.scss +8 -4
- package/app/styles/components/_sd-editor-popup.scss +4 -4
- package/app/styles/components/_sd-media-carousel.scss +37 -2
- package/app/styles/components/_sd-pagination.scss +41 -0
- package/app/styles/components/_sd-photo-preview.scss +2 -2
- package/app/styles/components/_subnav.scss +470 -470
- package/app/styles/design-tokens/_new-colors.scss +29 -12
- package/app/styles/dropdowns/_basic-dropdown.scss +6 -0
- package/app/styles/form-elements/_input-wrap.scss +138 -0
- package/app/styles/form-elements/_inputs.scss +230 -61
- package/app/styles/grids/_grid-layout.scss +13 -14
- package/app/styles/interface-elements/_side-panel.scss +1 -1
- package/app/styles/layout/_editor.scss +6 -0
- package/app/styles/menus/_sd-sidebar-menu.scss +1 -1
- package/app/styles/primereact/_pr-datepicker.scss +16 -2
- package/app/styles/primereact/_pr-dialog.scss +9 -0
- package/app/styles/primereact/_pr-menu.scss +6 -5
- package/app/styles/variables/_colors.scss +47 -47
- package/app/template/search-handler.html +2 -2
- package/app-typescript/components/ContentDivider.tsx +3 -0
- package/app-typescript/components/DatePicker.tsx +8 -9
- package/app-typescript/components/Dropdown.tsx +127 -82
- package/app-typescript/components/DurationInput.tsx +39 -14
- package/app-typescript/components/Form/FormLabel.tsx +8 -1
- package/app-typescript/components/Form/InputBase.tsx +12 -2
- package/app-typescript/components/Input.tsx +4 -4
- package/app-typescript/components/Label.tsx +17 -1
- package/app-typescript/components/Layouts/AuthoringFrame.tsx +2 -1
- package/app-typescript/components/Layouts/AuthoringFrameRightBar.tsx +21 -2
- package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +1 -1
- package/app-typescript/components/Layouts/AuthoringMain.tsx +4 -2
- package/app-typescript/components/Layouts/CoreLayout.tsx +3 -1
- package/app-typescript/components/Layouts/CoreLayoutMain.tsx +10 -1
- package/app-typescript/components/Lists/ContentList.tsx +64 -30
- package/app-typescript/components/Lists/TableList.tsx +255 -53
- package/app-typescript/components/Menu.tsx +2 -2
- package/app-typescript/components/Modal.tsx +6 -2
- package/app-typescript/components/MultiSelect.tsx +1 -1
- package/app-typescript/components/NavButton.tsx +2 -1
- package/app-typescript/components/Navigation/SideBarMenu.tsx +30 -4
- package/app-typescript/components/SearchBar.tsx +11 -3
- package/app-typescript/components/Spacer.tsx +87 -0
- package/app-typescript/components/TimePicker.tsx +2 -13
- package/app-typescript/components/TreeSelect.tsx +286 -180
- package/app-typescript/index.ts +1 -0
- package/dist/examples.bundle.css +110 -71
- package/dist/examples.bundle.js +23848 -21661
- package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +505 -2
- package/dist/playgrounds/react-playgrounds/Index.tsx +1 -0
- package/dist/playgrounds/react-playgrounds/Multiedit.tsx +321 -0
- package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +17 -19
- package/dist/playgrounds/react-playgrounds/Rundowns.tsx +22 -23
- package/dist/playgrounds/react-playgrounds/TestGround.tsx +226 -25
- package/dist/react/ContentDivider.tsx +22 -18
- package/dist/react/ContentList.tsx +188 -12
- package/dist/react/DatePicker.tsx +50 -2
- package/dist/react/Dropdowns.tsx +580 -48
- package/dist/react/DurationInput.tsx +7 -3
- package/dist/react/Inputs.tsx +1 -7
- package/dist/react/Modal.tsx +154 -22
- package/dist/react/MultiSelect.tsx +5 -5
- package/dist/react/NavButtons.tsx +31 -1
- package/dist/react/TableList.tsx +52 -139
- package/dist/react/Togglebox.tsx +1 -1
- package/dist/react/TreeSelect.tsx +167 -176
- package/dist/sd_icons.eot +0 -0
- package/dist/sd_icons.svg +1 -0
- package/dist/sd_icons.ttf +0 -0
- package/dist/sd_icons.woff +0 -0
- package/dist/superdesk-ui.bundle.css +1100 -407
- package/dist/superdesk-ui.bundle.js +6591 -4035
- package/dist/vendor.bundle.js +27 -27
- package/examples/css/docs-page.css +4 -4
- package/examples/index.js +4 -0
- package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +505 -2
- package/examples/pages/playgrounds/react-playgrounds/Index.tsx +1 -0
- package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +321 -0
- package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +17 -19
- package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +22 -23
- package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +226 -25
- package/examples/pages/react/ContentDivider.tsx +22 -18
- package/examples/pages/react/ContentList.tsx +188 -12
- package/examples/pages/react/DatePicker.tsx +50 -2
- package/examples/pages/react/Dropdowns.tsx +580 -48
- package/examples/pages/react/DurationInput.tsx +7 -3
- package/examples/pages/react/Inputs.tsx +1 -7
- package/examples/pages/react/Modal.tsx +154 -22
- package/examples/pages/react/MultiSelect.tsx +5 -5
- package/examples/pages/react/NavButtons.tsx +31 -1
- package/examples/pages/react/TableList.tsx +52 -139
- package/examples/pages/react/Togglebox.tsx +1 -1
- package/examples/pages/react/TreeSelect.tsx +167 -176
- package/package.json +3 -5
- package/react/components/ContentDivider.d.ts +1 -0
- package/react/components/ContentDivider.js +2 -0
- package/react/components/DatePicker.d.ts +2 -2
- package/react/components/DatePicker.js +3 -3
- package/react/components/Dropdown.d.ts +6 -5
- package/react/components/Dropdown.js +57 -30
- package/react/components/DurationInput.d.ts +1 -1
- package/react/components/DurationInput.js +46 -17
- package/react/components/Form/FormLabel.d.ts +4 -1
- package/react/components/Form/FormLabel.js +9 -3
- package/react/components/Form/InputBase.d.ts +0 -1
- package/react/components/Form/InputBase.js +15 -1
- package/react/components/Input.d.ts +3 -3
- package/react/components/Input.js +2 -1
- package/react/components/Label.d.ts +1 -0
- package/react/components/Label.js +17 -2
- package/react/components/Layouts/AuthoringFrame.d.ts +1 -0
- package/react/components/Layouts/AuthoringFrame.js +1 -1
- package/react/components/Layouts/AuthoringFrameRightBar.d.ts +9 -2
- package/react/components/Layouts/AuthoringFrameRightBar.js +14 -3
- package/react/components/Layouts/AuthoringInnerHeader.js +1 -1
- package/react/components/Layouts/AuthoringMain.js +1 -1
- package/react/components/Layouts/CoreLayout.d.ts +2 -0
- package/react/components/Layouts/CoreLayout.js +1 -1
- package/react/components/Layouts/CoreLayoutMain.d.ts +2 -0
- package/react/components/Layouts/CoreLayoutMain.js +8 -1
- package/react/components/Lists/ContentList.d.ts +6 -0
- package/react/components/Lists/ContentList.js +42 -16
- package/react/components/Lists/TableList.d.ts +30 -8
- package/react/components/Lists/TableList.js +127 -24
- package/react/components/Menu.js +1 -1
- package/react/components/Modal.d.ts +2 -0
- package/react/components/Modal.js +3 -3
- package/react/components/MultiSelect.d.ts +40 -0
- package/react/components/MultiSelect.js +70 -0
- package/react/components/NavButton.d.ts +1 -1
- package/react/components/Navigation/SideBarMenu.d.ts +6 -0
- package/react/components/Navigation/SideBarMenu.js +19 -2
- package/react/components/SearchBar.d.ts +1 -1
- package/react/components/SearchBar.js +15 -7
- package/react/components/TimePicker.d.ts +1 -5
- package/react/components/TimePicker.js +3 -7
- package/react/components/TreeSelect.d.ts +12 -5
- package/react/components/TreeSelect.js +189 -116
- package/react/index.d.ts +1 -0
- package/react/index.js +3 -0
- package/patches/@superdesk+primereact+5.0.2-4.patch +0 -66
@@ -0,0 +1,321 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import * as Components from './components/Index';
|
3
|
+
import { ButtonGroup, Button, NavButton, SubNav, Dropdown, Input, IconButton, Divider, Tooltip, Select, Option, Switch, Icon, AvatarWrapper, AvatarContentImage, AvatarContentText, Text, EmptyState, Alert, SlidingToolbar, TabLabel, Tabs, Heading, Modal } from '../../../../app-typescript/index';
|
4
|
+
import * as Layout from '../../../../app-typescript/components/Layouts';
|
5
|
+
import * as Form from '../../../../app-typescript/components/Form';
|
6
|
+
import * as Nav from '../../../../app-typescript/components/Navigation';
|
7
|
+
import { BoxedList, BoxedListItem, BoxedListContentRow } from '../../../../app-typescript/components/Lists';
|
8
|
+
import { Spacer } from '../../../../app-typescript/components/Spacer';
|
9
|
+
|
10
|
+
interface IProps {
|
11
|
+
children?: React.ReactNode;
|
12
|
+
}
|
13
|
+
|
14
|
+
interface IState {
|
15
|
+
theme: 'dark' | 'light' | string;
|
16
|
+
itemType: string;
|
17
|
+
dropDownState: string;
|
18
|
+
itemSelected1: boolean;
|
19
|
+
itemSelected2: boolean;
|
20
|
+
itemSelected3: boolean;
|
21
|
+
value1: boolean;
|
22
|
+
value2: boolean;
|
23
|
+
value3: boolean;
|
24
|
+
leftPanelOpen: boolean;
|
25
|
+
rightPanelOpen: boolean;
|
26
|
+
rightPanelPinned: boolean;
|
27
|
+
sideOverlayOpen: boolean;
|
28
|
+
sideBarOpen: boolean;
|
29
|
+
arr: any;
|
30
|
+
}
|
31
|
+
|
32
|
+
export class Multiedit extends React.Component<IProps, IState> {
|
33
|
+
constructor(props: IProps) {
|
34
|
+
super(props);
|
35
|
+
this.state = {
|
36
|
+
theme: 'light',
|
37
|
+
itemType: 'itemtype01',
|
38
|
+
dropDownState: '',
|
39
|
+
itemSelected1: false,
|
40
|
+
itemSelected2: false,
|
41
|
+
itemSelected3: false,
|
42
|
+
value1: false,
|
43
|
+
value2: false,
|
44
|
+
value3: false,
|
45
|
+
leftPanelOpen: false,
|
46
|
+
rightPanelOpen: false,
|
47
|
+
rightPanelPinned: false,
|
48
|
+
sideOverlayOpen: false,
|
49
|
+
sideBarOpen: false,
|
50
|
+
arr: [<Editor />, <Editor />]
|
51
|
+
|
52
|
+
}
|
53
|
+
this.handleTheme = this.handleTheme.bind(this);
|
54
|
+
}
|
55
|
+
|
56
|
+
handleTheme(newTheme: string) {
|
57
|
+
this.setState({
|
58
|
+
theme: newTheme
|
59
|
+
})
|
60
|
+
}
|
61
|
+
|
62
|
+
changeStatus(item: any, status: string) {
|
63
|
+
if (item.status.includes(status)) {
|
64
|
+
item.status.splice(item.status.indexOf(status), 1);
|
65
|
+
} else {
|
66
|
+
item.status.push(status);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
render() {
|
71
|
+
return (
|
72
|
+
<Modal
|
73
|
+
className='p-dialog-flex'
|
74
|
+
onHide={() => false}
|
75
|
+
maximized={true} contentPadding={"none"}
|
76
|
+
headerTemplate="Multiedit"
|
77
|
+
visible={true} >
|
78
|
+
<Spacer children={this.state.arr} gap={'0'}></Spacer>
|
79
|
+
<div style={{
|
80
|
+
padding: '0 20px',
|
81
|
+
display: 'flex',
|
82
|
+
alignItems: 'center'
|
83
|
+
}}>
|
84
|
+
<Dropdown
|
85
|
+
append
|
86
|
+
items={[
|
87
|
+
{ label: 'Action 1', onSelect: () => this.setState({arr: [...this.state.arr, <Editor />]}) },
|
88
|
+
]}>
|
89
|
+
<Button type="primary" icon="plus-large" text="Add article" style="filled" size="large" shape="round" iconOnly={true} onClick={()=> false} />
|
90
|
+
</Dropdown>
|
91
|
+
</div>
|
92
|
+
</Modal>
|
93
|
+
);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
interface IEditor {
|
98
|
+
sideBarOpen?: boolean;
|
99
|
+
}
|
100
|
+
|
101
|
+
export class Editor extends React.Component<IEditor, IEditor> {
|
102
|
+
constructor(props: IEditor) {
|
103
|
+
super(props);
|
104
|
+
this.state = {
|
105
|
+
sideBarOpen: false,
|
106
|
+
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
render() {
|
111
|
+
return <div style={{borderRight: '4px solid grey'}}>
|
112
|
+
<Layout.AuthoringFrame
|
113
|
+
header={(
|
114
|
+
<SubNav zIndex={2}>
|
115
|
+
<ButtonGroup align='end'>
|
116
|
+
<ButtonGroup subgroup={true} spaces="no-space">
|
117
|
+
<Tooltip text='More actions' flow='left'>
|
118
|
+
<NavButton type='default' icon='dots-vertical' text='More actions' onClick={()=> false} />
|
119
|
+
</Tooltip>
|
120
|
+
<Tooltip text='Send to / Publish' flow='left'>
|
121
|
+
<NavButton type='highlight' icon='send-to' iconSize='big' text='Send to / Publish' onClick={()=> false} />
|
122
|
+
</Tooltip>
|
123
|
+
<Tooltip text='Send to / Publish' flow='left'>
|
124
|
+
<NavButton type='darker' icon={this.state.sideBarOpen ? 'forward-thin' : 'backward-thin'} text='More actions' onClick={()=> this.setState({sideBarOpen: !this.state.sideBarOpen})} />
|
125
|
+
</Tooltip>
|
126
|
+
</ButtonGroup>
|
127
|
+
</ButtonGroup>
|
128
|
+
</SubNav>
|
129
|
+
)}
|
130
|
+
main={(
|
131
|
+
<Layout.AuthoringMain
|
132
|
+
headerPadding='medium'
|
133
|
+
toolBar={(
|
134
|
+
<React.Fragment>
|
135
|
+
<div className="sd-editor-toolbar__content">
|
136
|
+
<dl>
|
137
|
+
<dt>Created</dt>
|
138
|
+
<dd><time title="July 29, 2021 3:58 PM">07/29</time></dd>
|
139
|
+
<dt>by</dt>
|
140
|
+
<dt>Nareg Asmarian</dt>
|
141
|
+
</dl>
|
142
|
+
<dl>
|
143
|
+
<dt>Modified</dt>
|
144
|
+
<dd><time title="July 29, 2021 3:58 PM">07/29</time></dd>
|
145
|
+
</dl>
|
146
|
+
</div>
|
147
|
+
<ButtonGroup align='end'>
|
148
|
+
<IconButton icon="preview-mode" toolTipAppend={true} ariaValue="Print preview" onClick={()=> false} />
|
149
|
+
<IconButton icon="adjust" ariaValue="Toogle theme" onClick={()=> false} />
|
150
|
+
<IconButton icon="switches" ariaValue="Theme settings" onClick={()=> false} />
|
151
|
+
</ButtonGroup>
|
152
|
+
</React.Fragment>
|
153
|
+
)}
|
154
|
+
authoringHeader ={(
|
155
|
+
<React.Fragment>
|
156
|
+
<Form.FormGroup inlineLabel={true}>
|
157
|
+
<Form.FormItem>
|
158
|
+
<Input
|
159
|
+
type='text'
|
160
|
+
label='Slugline'
|
161
|
+
value='This is some value'
|
162
|
+
maxLength={30}
|
163
|
+
error='This is error message'
|
164
|
+
info='This is some hint message'
|
165
|
+
required={false}
|
166
|
+
disabled={false}
|
167
|
+
invalid={false}
|
168
|
+
onChange={(value) => {}} />
|
169
|
+
</Form.FormItem>
|
170
|
+
<Form.FormItem>
|
171
|
+
<Input
|
172
|
+
type='text'
|
173
|
+
label='Slugline'
|
174
|
+
value='This is some value'
|
175
|
+
maxLength={30}
|
176
|
+
error='This is error message'
|
177
|
+
info='This is some hint message'
|
178
|
+
required={false}
|
179
|
+
disabled={false}
|
180
|
+
invalid={false}
|
181
|
+
onChange={(value) => {}} />
|
182
|
+
</Form.FormItem>
|
183
|
+
</Form.FormGroup>
|
184
|
+
<Form.FormGroup inlineLabel={true}>
|
185
|
+
<Form.FormItem>
|
186
|
+
<Input
|
187
|
+
type='text'
|
188
|
+
label='Genre'
|
189
|
+
value='This is some value'
|
190
|
+
maxLength={30}
|
191
|
+
error='This is error message'
|
192
|
+
info='This is some hint message'
|
193
|
+
required={false}
|
194
|
+
disabled={false}
|
195
|
+
invalid={false}
|
196
|
+
onChange={(value) => {}} />
|
197
|
+
</Form.FormItem>
|
198
|
+
</Form.FormGroup>
|
199
|
+
<Form.FormGroup marginBottom='0' inlineLabel={true}>
|
200
|
+
<Form.FormItem>
|
201
|
+
<Input
|
202
|
+
type='text'
|
203
|
+
label='Subject'
|
204
|
+
value='This is some value'
|
205
|
+
maxLength={30}
|
206
|
+
error='This is error message'
|
207
|
+
info='This is some hint message'
|
208
|
+
required={true}
|
209
|
+
disabled={false}
|
210
|
+
invalid={false}
|
211
|
+
onChange={(value) => {}} />
|
212
|
+
</Form.FormItem>
|
213
|
+
<Form.FormItem autoWidth={true}>
|
214
|
+
<Form.FormText>Just testing:</Form.FormText>
|
215
|
+
</Form.FormItem>
|
216
|
+
<Form.FormItem>
|
217
|
+
<Select
|
218
|
+
label='Categories'
|
219
|
+
labelHidden={true}
|
220
|
+
value='This is some value'
|
221
|
+
error='This is error message'
|
222
|
+
info='This is some hint message'
|
223
|
+
required={true}
|
224
|
+
disabled={false}
|
225
|
+
invalid={false}
|
226
|
+
onChange={(value) => {}}>
|
227
|
+
<Option>Option 1</Option>
|
228
|
+
<Option>Option 2</Option>
|
229
|
+
</Select>
|
230
|
+
</Form.FormItem>
|
231
|
+
<Form.FormItem autoWidth={true}>
|
232
|
+
<ButtonGroup>
|
233
|
+
<IconButton ariaValue="Submit" icon="picture" onClick={()=> false} />
|
234
|
+
<Button text="Cancel" onClick={()=> false} type="default" style="hollow" />
|
235
|
+
<Button text="Submit" onClick={()=> false} type="primary" />
|
236
|
+
</ButtonGroup>
|
237
|
+
</Form.FormItem>
|
238
|
+
</Form.FormGroup>
|
239
|
+
</React.Fragment>
|
240
|
+
)}>
|
241
|
+
</Layout.AuthoringMain>
|
242
|
+
)}
|
243
|
+
sidePanel={(
|
244
|
+
<Layout.Panel side='right' background='grey' open={false} size='x-small'>
|
245
|
+
<Layout.PanelHeader title='Pinned content' onClose={() => false}>
|
246
|
+
</Layout.PanelHeader>
|
247
|
+
<Layout.PanelContent>
|
248
|
+
<Layout.PanelContentBlock>
|
249
|
+
<BoxedList density='comfortable'>
|
250
|
+
<BoxedListItem
|
251
|
+
type="success"
|
252
|
+
clickable={true}
|
253
|
+
media={(
|
254
|
+
<Icon name='slideshow' />
|
255
|
+
)}
|
256
|
+
actions={(
|
257
|
+
<IconButton icon="dots-vertical" ariaValue="More actions" onClick={()=> false} />
|
258
|
+
)}
|
259
|
+
>
|
260
|
+
<BoxedListContentRow>
|
261
|
+
Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper.
|
262
|
+
</BoxedListContentRow>
|
263
|
+
<BoxedListContentRow>
|
264
|
+
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
|
265
|
+
</BoxedListContentRow>
|
266
|
+
</BoxedListItem>
|
267
|
+
<BoxedListItem
|
268
|
+
type="warning"
|
269
|
+
media={(
|
270
|
+
<AvatarWrapper
|
271
|
+
size="medium"
|
272
|
+
>
|
273
|
+
<AvatarContentText text="JL" tooltipText="Jeffrey Lebowski" />
|
274
|
+
</AvatarWrapper>
|
275
|
+
)}
|
276
|
+
footer={(
|
277
|
+
<ButtonGroup align="end">
|
278
|
+
<Button text="cancel" size="small" style="hollow" onClick={()=> false} />
|
279
|
+
<Button text="yes" size="small" style="hollow" type="primary" onClick={()=> false} />
|
280
|
+
</ButtonGroup>
|
281
|
+
)}
|
282
|
+
actions={(
|
283
|
+
<IconButton icon="dots-vertical" ariaValue="More actions" onClick={()=> false} />
|
284
|
+
)}
|
285
|
+
>
|
286
|
+
<BoxedListContentRow>
|
287
|
+
Maecenas sed diam eget risus varius blandit sit amet magna.
|
288
|
+
</BoxedListContentRow>
|
289
|
+
</BoxedListItem>
|
290
|
+
<BoxedListItem
|
291
|
+
selected={true}
|
292
|
+
actions={(
|
293
|
+
<IconButton icon="dots-vertical" ariaValue="More actions" onClick={()=> false} />
|
294
|
+
)}
|
295
|
+
>
|
296
|
+
<BoxedListContentRow>
|
297
|
+
Maecenas sed diam eget risus varius blandit sit amet magna. Vestibulum id ligula porta felis euismod semper.
|
298
|
+
</BoxedListContentRow>
|
299
|
+
</BoxedListItem>
|
300
|
+
</BoxedList>
|
301
|
+
</Layout.PanelContentBlock>
|
302
|
+
</Layout.PanelContent>
|
303
|
+
</Layout.Panel>
|
304
|
+
)}
|
305
|
+
|
306
|
+
sideBarClosed={this.state.sideBarOpen}
|
307
|
+
sideBar={(
|
308
|
+
<Nav.SideBarTabs
|
309
|
+
items={[
|
310
|
+
{ icon: 'info', size: 'big', tooltip: 'Info', onClick: () => false },
|
311
|
+
{ icon: 'chat', size: 'big', tooltip: 'Comments', onClick: () => false },
|
312
|
+
{ icon: 'history', size: 'big', tooltip: 'History', onClick: () => false },
|
313
|
+
{ icon: 'package', size: 'big', tooltip: 'Packages', onClick: () => false },
|
314
|
+
{ icon: 'attachment', size: 'big', tooltip: 'Attachments', onClick: () => false },
|
315
|
+
{ icon: 'comments', size: 'big', tooltip: 'Inline Comments', onClick: () => false },
|
316
|
+
{ icon: 'suggestion', size: 'big', tooltip: 'Suggestions', onClick: () => false }]} />
|
317
|
+
)}
|
318
|
+
/>
|
319
|
+
</div>
|
320
|
+
}
|
321
|
+
}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
import
|
3
|
-
import { ButtonGroup, Button, NavButton, SubNav, Dropdown, Input, IconButton, Divider, Tooltip, Select, Option, Switch, Icon, AvatarWrapper, AvatarContentImage, AvatarContentText, Text, EmptyState, Alert, SlidingToolbar, TabLabel, Tabs, Heading, RadioButtonGroup, Container, Label, IconLabel } from '../../../../app-typescript/index';
|
2
|
+
import { ButtonGroup, Button, NavButton, SubNav, Dropdown, Input, IconButton, Divider, Tooltip, Select, Option, Text, SlidingToolbar, Container, Label, IconLabel } from '../../../../app-typescript/index';
|
4
3
|
import * as Layout from '../../../../app-typescript/components/Layouts';
|
5
4
|
import * as Form from '../../../../app-typescript/components/Form';
|
6
5
|
import * as Nav from '../../../../app-typescript/components/Navigation';
|
7
|
-
import { BoxedList, BoxedListItem, BoxedListContentRow } from '../../../../app-typescript/components/Lists';
|
8
|
-
import { SimpleList, SimpleListItem } from '../../../../app-typescript/components/Lists';
|
9
6
|
import { TableList } from '../../../../app-typescript/components/Lists/TableList';
|
10
7
|
|
11
8
|
interface IProps {
|
12
9
|
children?: React.ReactNode;
|
10
|
+
rightPanel?: boolean;
|
11
|
+
openPanel(): any;
|
12
|
+
closePanel(): void;
|
13
13
|
}
|
14
14
|
|
15
15
|
interface IState {
|
@@ -44,7 +44,7 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
44
44
|
value2: false,
|
45
45
|
value3: false,
|
46
46
|
leftPanelOpen: false,
|
47
|
-
rightPanelOpen: false,
|
47
|
+
rightPanelOpen: this.props.rightPanel ? this.props.rightPanel : false,
|
48
48
|
rightPanelPinned: false,
|
49
49
|
sideOverlayOpen: false,
|
50
50
|
inputValue: 'string',
|
@@ -60,7 +60,7 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
60
60
|
<IconLabel style='translucent' innerLabel='Duration:' text='00:20' type='success' />
|
61
61
|
</>,
|
62
62
|
action: <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />,
|
63
|
-
onClick: () => { this.
|
63
|
+
onClick: () => { this.props.openPanel() }
|
64
64
|
},
|
65
65
|
{
|
66
66
|
start: <>
|
@@ -73,7 +73,7 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
73
73
|
<IconLabel style='translucent' innerLabel='Duration:' text='00:11' type='warning' />
|
74
74
|
</>,
|
75
75
|
action: <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />,
|
76
|
-
onClick: () => { this.
|
76
|
+
onClick: () => { this.props.openPanel() }
|
77
77
|
},
|
78
78
|
{
|
79
79
|
start: <>
|
@@ -86,7 +86,7 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
86
86
|
<IconLabel style='translucent' innerLabel='Duration:' text='00:20' type='success' />
|
87
87
|
</>,
|
88
88
|
action: <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />,
|
89
|
-
onClick: () => { this.
|
89
|
+
onClick: () => { this.props.openPanel() }
|
90
90
|
},
|
91
91
|
{
|
92
92
|
start: <>
|
@@ -99,7 +99,7 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
99
99
|
<IconLabel style='translucent' innerLabel='Duration:' text='00:15' type='alert' />
|
100
100
|
</>,
|
101
101
|
action: <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />,
|
102
|
-
onClick: () => { this.
|
102
|
+
onClick: () => { this.props.openPanel() }
|
103
103
|
},
|
104
104
|
{
|
105
105
|
start: <>
|
@@ -112,10 +112,9 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
112
112
|
<IconLabel style='translucent' innerLabel='Duration:' text='00:20' type='success' />
|
113
113
|
</>,
|
114
114
|
action: <IconButton icon='dots-vertical' size='small' ariaValue='More actions' onClick={()=> false} />,
|
115
|
-
onClick: () => { this.
|
115
|
+
onClick: () => { this.props.openPanel() }
|
116
116
|
},
|
117
117
|
]
|
118
|
-
|
119
118
|
}
|
120
119
|
this.handleTheme = this.handleTheme.bind(this);
|
121
120
|
}
|
@@ -319,40 +318,39 @@ export class RundownEditor extends React.Component<IProps, IState> {
|
|
319
318
|
<Text color='light' size='medium' className='sd-margin--0'>OF</Text>
|
320
319
|
<IconLabel style='translucent' innerLabel='Planned:'text='00:45' size='large' />
|
321
320
|
</ButtonGroup>
|
322
|
-
|
323
321
|
<TableList
|
324
322
|
className='sd-margin-y--4'
|
325
323
|
dragAndDrop
|
326
324
|
addItem
|
327
325
|
array={this.state.array}
|
328
|
-
itemsDropdown={[
|
326
|
+
itemsDropdown={() => [
|
329
327
|
{ label: <Label style='translucent' type='primary' text='aacc' />, onSelect: () => 1 },
|
330
328
|
{ label: <Label style='translucent' text='prlg' />, onSelect: () => 1 },
|
331
329
|
{ label: <Label style='translucent' type='primary' text='prlg' />, onSelect: () => 1 },
|
332
330
|
]}
|
333
|
-
|
334
|
-
/>
|
331
|
+
/>
|
335
332
|
|
336
333
|
</Layout.AuthoringMain>
|
337
334
|
</Layout.MainPanel>
|
338
335
|
|
339
|
-
<Layout.RightPanel open={this.
|
340
|
-
<Layout.Panel size='
|
336
|
+
<Layout.RightPanel open={this.props.rightPanel}>
|
337
|
+
<Layout.Panel size='x-large' side='right'>
|
341
338
|
<Layout.PanelContent>
|
342
339
|
<Layout.AuthoringFrame
|
343
340
|
main={
|
344
341
|
<Layout.AuthoringMain
|
345
342
|
headerPadding='medium'
|
346
343
|
toolbarCustom={true}
|
344
|
+
headerCollapsed={true}
|
347
345
|
toolBar={(
|
348
346
|
<React.Fragment>
|
349
347
|
<SubNav className='sd-shadow--z0'>
|
350
348
|
<SlidingToolbar>
|
351
349
|
<ButtonGroup align='start'>
|
352
|
-
<IconButton ariaValue="Close" icon="close-small" onClick={() => this.
|
350
|
+
<IconButton ariaValue="Close" icon="close-small" onClick={() => this.props.closePanel()} />
|
353
351
|
</ButtonGroup>
|
354
352
|
<ButtonGroup align='end'>
|
355
|
-
<Button text="Save Changes" style='hollow' onClick={() => this.
|
353
|
+
<Button text="Save Changes" style='hollow' onClick={() => this.props.closePanel()} type="primary" />
|
356
354
|
</ButtonGroup>
|
357
355
|
</SlidingToolbar>
|
358
356
|
</SubNav>
|
@@ -1,14 +1,9 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
import * as Components from './components/Index';
|
3
2
|
import { ButtonGroup, Button, NavButton, SubNav, Dropdown, CheckButtonGroup, RadioGroup, RadioButtonGroup, Input, Select, Option, Label, IconLabel, Icon, IconButton, Checkbox, GridList, Badge, Tooltip, CreateButton, Modal, EmptyState, Container, BoxedList, BoxedListItem, BoxedListContentRow, Text, Heading, FormLabel, SlidingToolbar, Switch, SwitchGroup, SearchBar } from '../../../../app-typescript/index';
|
4
3
|
import * as Layout from '../../../../app-typescript/components/Layouts';
|
5
4
|
import * as Form from '../../../../app-typescript/components/Form';
|
6
5
|
import {RundownEditor} from './RundownEditor';
|
7
6
|
import * as Nav from '../../../../app-typescript/components/Navigation';
|
8
|
-
import * as GridElements from '../../../../app-typescript/components/GridItem';
|
9
|
-
|
10
|
-
|
11
|
-
import dummy_items from '../dummy-data/items';
|
12
7
|
import { ContentList } from '../../../../app-typescript/components/Lists/ContentList';
|
13
8
|
import { TableList } from '../../../../app-typescript/components/Lists/TableList';
|
14
9
|
|
@@ -164,13 +159,13 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
164
159
|
<Nav.SideBarMenu
|
165
160
|
items={[
|
166
161
|
{ icon: 'dashboard', size: 'big' },
|
167
|
-
{ icon: 'view', size: 'big' },
|
162
|
+
{ icon: 'view', size: 'big', editor: this.state.openEditor },
|
168
163
|
{ icon: 'marked-star', size: 'big' },
|
169
164
|
{ icon: 'spike', size: 'big' },
|
170
165
|
{ icon: 'personal', size: 'big' },
|
171
166
|
{ icon: 'global-search', size: 'big' },
|
172
167
|
{ icon: 'picture', size: 'big' },
|
173
|
-
{ icon: 'rundown', size: 'big',
|
168
|
+
{ icon: 'rundown', size: 'big', }]} />
|
174
169
|
|
175
170
|
<Layout.LayoutContainer>
|
176
171
|
<Layout.HeaderPanel>
|
@@ -487,7 +482,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
487
482
|
<Container direction='row' gap='small'><Text color='light'>Updated 3 hours ago by </Text><Text weight='medium'>John Doe</Text></Container>
|
488
483
|
</Container>
|
489
484
|
<Container className='sd-margin-s--auto sd-flex--items-center'>
|
490
|
-
<Dropdown
|
485
|
+
{/* <Dropdown
|
491
486
|
align = 'right'
|
492
487
|
append = {true}
|
493
488
|
items={[
|
@@ -500,7 +495,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
500
495
|
]
|
501
496
|
}]}>
|
502
497
|
<IconButton ariaValue='dropdown-more-options' icon='dots-vertical' onClick={() => false} />
|
503
|
-
</Dropdown>
|
498
|
+
</Dropdown> */}
|
504
499
|
</Container>
|
505
500
|
</Layout.PanelContentBlock>
|
506
501
|
|
@@ -524,15 +519,14 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
524
519
|
<IconLabel style='translucent' innerLabel='Planned:'text='01:00' />
|
525
520
|
</ButtonGroup>
|
526
521
|
<TableList
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
/>
|
522
|
+
className='sd-margin-y--4'
|
523
|
+
array={this.state.array}
|
524
|
+
itemsDropdown={() => [
|
525
|
+
{ label: <Label style='translucent' type='primary' text='aacc' />, onSelect: () => 1 },
|
526
|
+
{ label: <Label style='translucent' text='prlg' />, onSelect: () => 1 },
|
527
|
+
{ label: <Label style='translucent' type='primary' text='prlg' />, onSelect: () => 1 },
|
528
|
+
]}
|
529
|
+
/>
|
536
530
|
</Layout.PanelContentBlock>
|
537
531
|
</Layout.PanelContent>
|
538
532
|
</Layout.Panel>
|
@@ -542,17 +536,21 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
542
536
|
<Layout.OverlayPanel />
|
543
537
|
{/* OVERLAY PANEL (Send To) */}
|
544
538
|
</Layout.LayoutContainer>
|
539
|
+
|
545
540
|
<Layout.ContentSplitter visible={this.state.openEditor} />
|
541
|
+
|
546
542
|
{/* RUNDOWN EDITOR */}
|
547
543
|
<Layout.AuthoringContainer open={this.state.openEditor}>
|
548
544
|
<RundownEditor />
|
549
545
|
</Layout.AuthoringContainer>
|
550
546
|
{/* END RUNDOWN EDITOR */}
|
547
|
+
|
551
548
|
</Layout.Layout >
|
552
549
|
|
553
550
|
{/* Manage Templates Modal */}
|
554
551
|
<Modal headerTemplate="Manage Templates"
|
555
552
|
visible={this.state.modalManageTemplate}
|
553
|
+
zIndex={1000}
|
556
554
|
contentBg='medium'
|
557
555
|
contentPadding='none'
|
558
556
|
size='x-large' onHide={() => {this.setState({modalManageTemplate: false})}}>
|
@@ -632,8 +630,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
632
630
|
</Container>
|
633
631
|
</BoxedListItem>
|
634
632
|
</BoxedList> */}
|
635
|
-
|
636
|
-
|
637
633
|
</Layout.PanelContent>
|
638
634
|
</Layout.Panel>
|
639
635
|
</Layout.LeftPanel>
|
@@ -652,6 +648,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
652
648
|
{/* New Show Modal */}
|
653
649
|
<Modal headerTemplate="Create new Show"
|
654
650
|
visible={this.state.modalNewShow}
|
651
|
+
zIndex={1000}
|
655
652
|
footerTemplate={newShowFooter}
|
656
653
|
contentBg='medium'
|
657
654
|
size='medium' onHide={() => {this.setState({modalNewShow: false})}}>
|
@@ -683,6 +680,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
683
680
|
{/* New Show Modal Success */}
|
684
681
|
<Modal headerTemplate="Create new Show"
|
685
682
|
visible={this.state.modalNewShowSuccess}
|
683
|
+
zIndex={1000}
|
686
684
|
footerTemplate={newShowFooter2}
|
687
685
|
contentBg='medium'
|
688
686
|
size='medium' onHide={() => {this.setState({modalNewShowSuccess: false})}}>
|
@@ -692,14 +690,13 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
692
690
|
The show <strong>Marker</strong> has been successfully created.<br />
|
693
691
|
Do you want to cretate a template for this show right away?
|
694
692
|
</Text>
|
695
|
-
|
696
|
-
|
697
693
|
</Container>
|
698
694
|
</Modal>
|
699
695
|
|
700
696
|
{/* New Template Modal */}
|
701
697
|
<Modal headerTemplate="Create new Template"
|
702
698
|
visible={this.state.modalNewTemplate}
|
699
|
+
zIndex={1000}
|
703
700
|
contentBg='medium'
|
704
701
|
contentPadding='none'
|
705
702
|
size='x-large' onHide={() => {this.setState({modalNewTemplate: false})}}>
|
@@ -733,7 +730,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
733
730
|
</ButtonGroup>
|
734
731
|
</Container>
|
735
732
|
<BoxedList>
|
736
|
-
|
733
|
+
<BoxedListItem
|
737
734
|
alignVertical='center'
|
738
735
|
clickable={true}
|
739
736
|
density='compact'
|
@@ -804,7 +801,9 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
804
801
|
|
805
802
|
{/* Manage Shows Modal */}
|
806
803
|
<Modal headerTemplate="Manage Shows"
|
804
|
+
maximizable
|
807
805
|
visible={this.state.modalManageShow}
|
806
|
+
zIndex={1000}
|
808
807
|
contentBg='medium'
|
809
808
|
contentPadding='none'
|
810
809
|
size='x-large' onHide={() => {this.setState({modalManageShow: false})}}>
|