superdesk-ui-framework 3.0.1-beta.9 → 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.
Files changed (160) hide show
  1. package/app/fonts/sd_icons.eot +0 -0
  2. package/app/fonts/sd_icons.svg +1 -0
  3. package/app/fonts/sd_icons.ttf +0 -0
  4. package/app/fonts/sd_icons.woff +0 -0
  5. package/app/scripts/toggleBoxNext.js +1 -1
  6. package/app/styles/_big-icon-font.scss +1 -1
  7. package/app/styles/_buttons.scss +11 -6
  8. package/app/styles/_content-divider.scss +63 -8
  9. package/app/styles/_helpers.scss +24 -1
  10. package/app/styles/_icon-font.scss +11 -10
  11. package/app/styles/_labels.scss +0 -1
  12. package/app/styles/_master-desk.scss +5 -4
  13. package/app/styles/_modals.scss +7 -3
  14. package/app/styles/_normalize.scss +4 -0
  15. package/app/styles/_sd-tag-input.scss +56 -2
  16. package/app/styles/_simple-list.scss +0 -2
  17. package/app/styles/_table-list.scss +116 -12
  18. package/app/styles/app.scss +3 -0
  19. package/app/styles/components/_list-item.scss +23 -16
  20. package/app/styles/components/_sd-collapse-box.scss +6 -6
  21. package/app/styles/components/_sd-comment-box.scss +8 -4
  22. package/app/styles/components/_sd-editor-popup.scss +4 -4
  23. package/app/styles/components/_sd-media-carousel.scss +37 -2
  24. package/app/styles/components/_sd-pagination.scss +41 -0
  25. package/app/styles/components/_sd-photo-preview.scss +2 -2
  26. package/app/styles/components/_subnav.scss +470 -470
  27. package/app/styles/design-tokens/_new-colors.scss +29 -12
  28. package/app/styles/dropdowns/_basic-dropdown.scss +6 -0
  29. package/app/styles/form-elements/_input-wrap.scss +138 -0
  30. package/app/styles/form-elements/_inputs.scss +230 -61
  31. package/app/styles/grids/_grid-layout.scss +13 -14
  32. package/app/styles/interface-elements/_side-panel.scss +1 -1
  33. package/app/styles/layout/_editor.scss +6 -0
  34. package/app/styles/menus/_sd-sidebar-menu.scss +1 -1
  35. package/app/styles/primereact/_pr-datepicker.scss +16 -2
  36. package/app/styles/primereact/_pr-dialog.scss +9 -0
  37. package/app/styles/primereact/_pr-menu.scss +6 -5
  38. package/app/styles/variables/_colors.scss +47 -47
  39. package/app/template/search-handler.html +2 -2
  40. package/app-typescript/components/ContentDivider.tsx +3 -0
  41. package/app-typescript/components/DatePicker.tsx +8 -9
  42. package/app-typescript/components/Dropdown.tsx +127 -82
  43. package/app-typescript/components/DurationInput.tsx +39 -14
  44. package/app-typescript/components/Form/FormLabel.tsx +8 -1
  45. package/app-typescript/components/Form/InputBase.tsx +12 -2
  46. package/app-typescript/components/Input.tsx +4 -4
  47. package/app-typescript/components/Label.tsx +17 -1
  48. package/app-typescript/components/Layouts/AuthoringFrame.tsx +2 -1
  49. package/app-typescript/components/Layouts/AuthoringFrameRightBar.tsx +21 -2
  50. package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +1 -1
  51. package/app-typescript/components/Layouts/AuthoringMain.tsx +4 -2
  52. package/app-typescript/components/Layouts/CoreLayout.tsx +3 -1
  53. package/app-typescript/components/Layouts/CoreLayoutMain.tsx +10 -1
  54. package/app-typescript/components/Lists/ContentList.tsx +64 -30
  55. package/app-typescript/components/Lists/TableList.tsx +255 -53
  56. package/app-typescript/components/Menu.tsx +2 -2
  57. package/app-typescript/components/Modal.tsx +6 -2
  58. package/app-typescript/components/MultiSelect.tsx +1 -1
  59. package/app-typescript/components/NavButton.tsx +2 -1
  60. package/app-typescript/components/Navigation/SideBarMenu.tsx +30 -4
  61. package/app-typescript/components/SearchBar.tsx +11 -3
  62. package/app-typescript/components/Spacer.tsx +87 -0
  63. package/app-typescript/components/TimePicker.tsx +2 -13
  64. package/app-typescript/components/TreeSelect.tsx +286 -180
  65. package/app-typescript/index.ts +1 -0
  66. package/dist/examples.bundle.css +110 -71
  67. package/dist/examples.bundle.js +23848 -21661
  68. package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +505 -2
  69. package/dist/playgrounds/react-playgrounds/Index.tsx +1 -0
  70. package/dist/playgrounds/react-playgrounds/Multiedit.tsx +321 -0
  71. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +17 -19
  72. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +22 -23
  73. package/dist/playgrounds/react-playgrounds/TestGround.tsx +226 -25
  74. package/dist/react/ContentDivider.tsx +22 -18
  75. package/dist/react/ContentList.tsx +188 -12
  76. package/dist/react/DatePicker.tsx +50 -2
  77. package/dist/react/Dropdowns.tsx +580 -48
  78. package/dist/react/DurationInput.tsx +7 -3
  79. package/dist/react/Inputs.tsx +1 -7
  80. package/dist/react/Modal.tsx +154 -22
  81. package/dist/react/MultiSelect.tsx +5 -5
  82. package/dist/react/NavButtons.tsx +31 -1
  83. package/dist/react/TableList.tsx +52 -139
  84. package/dist/react/Togglebox.tsx +1 -1
  85. package/dist/react/TreeSelect.tsx +167 -176
  86. package/dist/sd_icons.eot +0 -0
  87. package/dist/sd_icons.svg +1 -0
  88. package/dist/sd_icons.ttf +0 -0
  89. package/dist/sd_icons.woff +0 -0
  90. package/dist/superdesk-ui.bundle.css +1100 -407
  91. package/dist/superdesk-ui.bundle.js +6591 -4035
  92. package/dist/vendor.bundle.js +27 -27
  93. package/examples/css/docs-page.css +4 -4
  94. package/examples/index.js +4 -0
  95. package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +505 -2
  96. package/examples/pages/playgrounds/react-playgrounds/Index.tsx +1 -0
  97. package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +321 -0
  98. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +17 -19
  99. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +22 -23
  100. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +226 -25
  101. package/examples/pages/react/ContentDivider.tsx +22 -18
  102. package/examples/pages/react/ContentList.tsx +188 -12
  103. package/examples/pages/react/DatePicker.tsx +50 -2
  104. package/examples/pages/react/Dropdowns.tsx +580 -48
  105. package/examples/pages/react/DurationInput.tsx +7 -3
  106. package/examples/pages/react/Inputs.tsx +1 -7
  107. package/examples/pages/react/Modal.tsx +154 -22
  108. package/examples/pages/react/MultiSelect.tsx +5 -5
  109. package/examples/pages/react/NavButtons.tsx +31 -1
  110. package/examples/pages/react/TableList.tsx +52 -139
  111. package/examples/pages/react/Togglebox.tsx +1 -1
  112. package/examples/pages/react/TreeSelect.tsx +167 -176
  113. package/package.json +3 -5
  114. package/react/components/ContentDivider.d.ts +1 -0
  115. package/react/components/ContentDivider.js +2 -0
  116. package/react/components/DatePicker.d.ts +2 -2
  117. package/react/components/DatePicker.js +3 -3
  118. package/react/components/Dropdown.d.ts +6 -5
  119. package/react/components/Dropdown.js +57 -30
  120. package/react/components/DurationInput.d.ts +1 -1
  121. package/react/components/DurationInput.js +46 -17
  122. package/react/components/Form/FormLabel.d.ts +4 -1
  123. package/react/components/Form/FormLabel.js +9 -3
  124. package/react/components/Form/InputBase.d.ts +0 -1
  125. package/react/components/Form/InputBase.js +15 -1
  126. package/react/components/Input.d.ts +3 -3
  127. package/react/components/Input.js +2 -1
  128. package/react/components/Label.d.ts +1 -0
  129. package/react/components/Label.js +17 -2
  130. package/react/components/Layouts/AuthoringFrame.d.ts +1 -0
  131. package/react/components/Layouts/AuthoringFrame.js +1 -1
  132. package/react/components/Layouts/AuthoringFrameRightBar.d.ts +9 -2
  133. package/react/components/Layouts/AuthoringFrameRightBar.js +14 -3
  134. package/react/components/Layouts/AuthoringInnerHeader.js +1 -1
  135. package/react/components/Layouts/AuthoringMain.js +1 -1
  136. package/react/components/Layouts/CoreLayout.d.ts +2 -0
  137. package/react/components/Layouts/CoreLayout.js +1 -1
  138. package/react/components/Layouts/CoreLayoutMain.d.ts +2 -0
  139. package/react/components/Layouts/CoreLayoutMain.js +8 -1
  140. package/react/components/Lists/ContentList.d.ts +6 -0
  141. package/react/components/Lists/ContentList.js +42 -16
  142. package/react/components/Lists/TableList.d.ts +30 -8
  143. package/react/components/Lists/TableList.js +127 -24
  144. package/react/components/Menu.js +1 -1
  145. package/react/components/Modal.d.ts +2 -0
  146. package/react/components/Modal.js +3 -3
  147. package/react/components/MultiSelect.d.ts +40 -0
  148. package/react/components/MultiSelect.js +70 -0
  149. package/react/components/NavButton.d.ts +1 -1
  150. package/react/components/Navigation/SideBarMenu.d.ts +6 -0
  151. package/react/components/Navigation/SideBarMenu.js +19 -2
  152. package/react/components/SearchBar.d.ts +1 -1
  153. package/react/components/SearchBar.js +15 -7
  154. package/react/components/TimePicker.d.ts +1 -5
  155. package/react/components/TimePicker.js +3 -7
  156. package/react/components/TreeSelect.d.ts +12 -5
  157. package/react/components/TreeSelect.js +189 -116
  158. package/react/index.d.ts +1 -0
  159. package/react/index.js +3 -0
  160. 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 * 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, 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.setState({rightPanelOpen: !this.state.rightPanelOpen})}
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.setState({rightPanelOpen: !this.state.rightPanelOpen})}
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.setState({rightPanelOpen: !this.state.rightPanelOpen})}
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.setState({rightPanelOpen: !this.state.rightPanelOpen})}
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.setState({rightPanelOpen: !this.state.rightPanelOpen})}
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
- onClick={() => false}
334
- />
331
+ />
335
332
 
336
333
  </Layout.AuthoringMain>
337
334
  </Layout.MainPanel>
338
335
 
339
- <Layout.RightPanel open={this.state.rightPanelOpen}>
340
- <Layout.Panel size='full' side='right'>
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.setState({rightPanelOpen: !this.state.rightPanelOpen})} />
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.setState({rightPanelOpen: !this.state.rightPanelOpen})} type="primary" />
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', active: true }]} />
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
- className='sd-margin-y--4'
528
- array={this.state.array}
529
- itemsDropdown={[
530
- { label: <Label style='translucent' type='primary' text='aacc' />, onSelect: () => 1 },
531
- { label: <Label style='translucent' text='prlg' />, onSelect: () => 1 },
532
- { label: <Label style='translucent' type='primary' text='prlg' />, onSelect: () => 1 },
533
- ]}
534
- onClick={() => false}
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
- <BoxedListItem
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})}}>