superdesk-ui-framework 3.1.27 → 4.0.0
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/styles/layout/_editor.scss +1 -1
- package/app-typescript/components/Dropdown.tsx +120 -165
- package/app-typescript/components/Layouts/Panel.tsx +3 -2
- package/app-typescript/components/Menu.tsx +3 -4
- package/app-typescript/components/Modal.tsx +4 -2
- package/app-typescript/components/MultiSelect.tsx +3 -2
- package/app-typescript/components/Popover.tsx +0 -2
- package/app-typescript/components/SelectWithTemplate.tsx +3 -1
- package/app-typescript/components/ShowPopup.tsx +9 -5
- package/app-typescript/components/SubNav.tsx +5 -6
- package/app-typescript/components/TreeMenu.tsx +3 -2
- package/app-typescript/components/TreeSelect/TreeSelect.tsx +3 -2
- package/app-typescript/components/WithPopover.tsx +0 -2
- package/app-typescript/components/_Positioner.tsx +3 -4
- package/app-typescript/components/avatar/avatar-group.tsx +0 -3
- package/app-typescript/index.ts +1 -0
- package/app-typescript/zIndex.tsx +5 -0
- package/dist/components/CreateButton.tsx +2 -2
- package/dist/components/Dropdowns.tsx +4 -483
- package/dist/components/Modal.tsx +0 -12
- package/dist/components/MultiSelect.tsx +0 -2
- package/dist/components/NavButtons.tsx +4 -4
- package/dist/components/Panel.tsx +0 -1
- package/dist/components/Popover.tsx +0 -3
- package/dist/components/SubNav.tsx +9 -10
- package/dist/components/TableList.tsx +1 -1
- package/dist/design-patterns/ThreePaneLayoutPattern.tsx +3 -3
- package/dist/examples.bundle.js +3110 -3478
- package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +2 -3
- package/dist/playgrounds/react-playgrounds/EditorTest.tsx +1 -1
- package/dist/playgrounds/react-playgrounds/Multiedit.tsx +1 -2
- package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +1 -1
- package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +2 -2
- package/dist/playgrounds/react-playgrounds/Rundowns.tsx +3 -10
- package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +2 -3
- package/dist/playgrounds/react-playgrounds/TestGround.tsx +0 -4
- package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +2 -3
- package/dist/superdesk-ui.bundle.css +1 -1
- package/dist/superdesk-ui.bundle.js +2406 -2399
- package/dist/vendor.bundle.js +21 -21
- package/examples/pages/components/CreateButton.tsx +2 -2
- package/examples/pages/components/Dropdowns.tsx +4 -483
- package/examples/pages/components/Modal.tsx +0 -12
- package/examples/pages/components/MultiSelect.tsx +0 -2
- package/examples/pages/components/NavButtons.tsx +4 -4
- package/examples/pages/components/Panel.tsx +0 -1
- package/examples/pages/components/Popover.tsx +0 -3
- package/examples/pages/components/SubNav.tsx +9 -10
- package/examples/pages/components/TableList.tsx +1 -1
- package/examples/pages/design-patterns/ThreePaneLayoutPattern.tsx +3 -3
- package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +2 -3
- package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +1 -1
- package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +1 -2
- package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +1 -1
- package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +2 -2
- package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +3 -10
- package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +2 -3
- package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +0 -4
- package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +2 -3
- package/package.json +1 -1
- package/react/components/Dropdown.d.ts +1 -3
- package/react/components/Dropdown.js +31 -60
- package/react/components/Layouts/Panel.d.ts +1 -1
- package/react/components/Layouts/Panel.js +5 -2
- package/react/components/Menu.d.ts +1 -1
- package/react/components/Menu.js +3 -3
- package/react/components/Modal.d.ts +1 -1
- package/react/components/Modal.js +5 -2
- package/react/components/MultiSelect.d.ts +1 -1
- package/react/components/MultiSelect.js +3 -1
- package/react/components/Popover.d.ts +0 -1
- package/react/components/Popover.js +1 -1
- package/react/components/SelectWithTemplate.d.ts +3 -0
- package/react/components/SelectWithTemplate.js +3 -0
- package/react/components/ShowPopup.d.ts +20 -1
- package/react/components/ShowPopup.js +12 -5
- package/react/components/SubNav.d.ts +0 -1
- package/react/components/SubNav.js +1 -4
- package/react/components/TreeMenu.d.ts +1 -1
- package/react/components/TreeMenu.js +3 -1
- package/react/components/TreeSelect/TreeSelect.d.ts +1 -1
- package/react/components/TreeSelect/TreeSelect.js +3 -1
- package/react/components/WithPopover.d.ts +0 -1
- package/react/components/WithPopover.js +1 -1
- package/react/components/_Positioner.d.ts +0 -1
- package/react/components/_Positioner.js +3 -3
- package/react/components/avatar/avatar-group.d.ts +0 -1
- package/react/components/avatar/avatar-group.js +2 -3
- package/react/index.d.ts +1 -0
- package/react/index.js +4 -1
- package/react/zIndex.d.ts +2 -0
- package/react/zIndex.js +8 -0
@@ -17,7 +17,7 @@ export default class NavButtonsDoc extends React.Component {
|
|
17
17
|
|
18
18
|
<Markup.ReactMarkup>
|
19
19
|
<Markup.ReactMarkupPreview>
|
20
|
-
<SubNav
|
20
|
+
<SubNav>
|
21
21
|
<ButtonGroup align='start' spaces='no-space'>
|
22
22
|
<Tooltip text='Filters' flow='right'>
|
23
23
|
<NavButton icon='filter-large' type='darker' state="active" text="Filter" onClick={() => false} />
|
@@ -36,7 +36,7 @@ export default class NavButtonsDoc extends React.Component {
|
|
36
36
|
</SubNav>
|
37
37
|
</Markup.ReactMarkupPreview>
|
38
38
|
<Markup.ReactMarkupCode>{`
|
39
|
-
<SubNav
|
39
|
+
<SubNav>
|
40
40
|
<ButtonGroup align='start' spaces='no-space'>
|
41
41
|
<Tooltip text='Filters' flow='right'>
|
42
42
|
<NavButton icon='filter-large' type='darker' state="active" text="Filter" onClick={() => false} />
|
@@ -59,7 +59,7 @@ export default class NavButtonsDoc extends React.Component {
|
|
59
59
|
<h3 className="docs-page__h3">Styles / Types</h3>
|
60
60
|
<Markup.ReactMarkup>
|
61
61
|
<Markup.ReactMarkupPreview>
|
62
|
-
<SubNav
|
62
|
+
<SubNav>
|
63
63
|
<ButtonGroup align='start' spaces='no-space'>
|
64
64
|
<NavButton icon='adjust' type='default' text="Adjust" onClick={() => false} />
|
65
65
|
<NavButton icon='eye-open' type='darker' text="View" onClick={() => false} />
|
@@ -72,7 +72,7 @@ export default class NavButtonsDoc extends React.Component {
|
|
72
72
|
</SubNav>
|
73
73
|
</Markup.ReactMarkupPreview>
|
74
74
|
<Markup.ReactMarkupCode>{`
|
75
|
-
<SubNav
|
75
|
+
<SubNav>
|
76
76
|
<ButtonGroup align='start' spaces='no-space'>
|
77
77
|
<NavButton icon='adjust' type='default' text="Adjust" onClick={() => false} />
|
78
78
|
<NavButton icon='eye-open' type='darker' text="View" onClick={() => false} />
|
@@ -359,7 +359,6 @@ export default class PanelDoc extends React.Component<IProps, IState> {
|
|
359
359
|
<p className="docs-page__paragraph">PanelHeader</p>
|
360
360
|
<PropsList>
|
361
361
|
<Prop name='title' isRequired={false} type='string' default='/' description='Specifies the title of the panel.'/>
|
362
|
-
<Prop name='zIndex' isRequired={false} type='number' default='1' description='Increase the z-index of the header if needed.'/>
|
363
362
|
<Prop name='theme' isRequired={false} type='light | dark' default='/' description='Explicitly define the theme just for the of Panel Header. All child elements and the content inside the Header will inherit the selected theme.'/>
|
364
363
|
<Prop name='color' isRequired={false} type='light | darker | blueGrey | blueGreyDarker' default='light' description='Background colour of the Panel Header. blueGrey and blueGreyDarker will also change the text colour to white.'/>
|
365
364
|
<Prop name='ClassName' isRequired={false} type='string' default='false' description='Add custom or helper classes to modify the default behaviour if needed. Use only if necessary.'/>
|
@@ -35,7 +35,6 @@ export class PopoverDoc extends React.Component {
|
|
35
35
|
triggerSelector="#button-view-content"
|
36
36
|
title="Popover test"
|
37
37
|
placement="top-end"
|
38
|
-
zIndex={999}
|
39
38
|
>
|
40
39
|
Donec sed odio dui. Aenean lacinia bibendum nulla sed consectetur.
|
41
40
|
</Popover>
|
@@ -49,7 +48,6 @@ export class PopoverDoc extends React.Component {
|
|
49
48
|
triggerSelector="#button-view-content"
|
50
49
|
title="Popover test"
|
51
50
|
placement="top-end"
|
52
|
-
zIndex={999}
|
53
51
|
>
|
54
52
|
Donec sed odio dui. Aenean lacinia bibendum nulla sed consectetur.
|
55
53
|
</Popover>
|
@@ -65,7 +63,6 @@ export class PopoverDoc extends React.Component {
|
|
65
63
|
<Prop name='placement' isRequired={false}
|
66
64
|
type='auto | auto-end | auto-start | bottom | bottom-end | bottom-start | left | left-end | left-start | right | right-end | right-start | top | top-end | top-start'
|
67
65
|
default='auto' description='Define the placement of the Popover.' />
|
68
|
-
<Prop name='zIndex' isRequired={false} type='number' default='null' description='Defines the z-index of the Popover.' />
|
69
66
|
</PropsList>
|
70
67
|
</section>
|
71
68
|
)
|
@@ -9,7 +9,7 @@ export default class SubNavDoc extends React.Component {
|
|
9
9
|
<h2 className='docs-page__h2'>Sub Navigation bar</h2>
|
10
10
|
<p></p>
|
11
11
|
<Markup.ReactMarkupCodePreview>{`
|
12
|
-
<SubNav
|
12
|
+
<SubNav>
|
13
13
|
<ButtonGroup align='start'>
|
14
14
|
<NavButton icon='search' onClick={()=> false} />
|
15
15
|
</ButtonGroup>
|
@@ -22,7 +22,7 @@ export default class SubNavDoc extends React.Component {
|
|
22
22
|
|
23
23
|
<Markup.ReactMarkup>
|
24
24
|
<Markup.ReactMarkupPreview>
|
25
|
-
<SubNav
|
25
|
+
<SubNav>
|
26
26
|
<ButtonGroup align='start'>
|
27
27
|
<NavButton icon='search' onClick={()=> false} />
|
28
28
|
</ButtonGroup>
|
@@ -30,7 +30,7 @@ export default class SubNavDoc extends React.Component {
|
|
30
30
|
<NavButton icon='expand-thin' type='highlight' onClick={()=> false} />
|
31
31
|
</ButtonGroup>
|
32
32
|
</SubNav>
|
33
|
-
<SubNav color='darker'
|
33
|
+
<SubNav color='darker'>
|
34
34
|
<ButtonGroup align='start'>
|
35
35
|
<NavButton icon='filter-large' type='darker' onClick={()=> false} />
|
36
36
|
</ButtonGroup>
|
@@ -48,7 +48,7 @@ export default class SubNavDoc extends React.Component {
|
|
48
48
|
</ButtonGroup>
|
49
49
|
</SubNav>
|
50
50
|
<br />
|
51
|
-
<SubNav color='darker'
|
51
|
+
<SubNav color='darker'>
|
52
52
|
<ButtonGroup align='start' padded={true}>
|
53
53
|
<Button text='Something' onClick={()=> false} />
|
54
54
|
<Button text='Else' onClick={()=> false} />
|
@@ -58,7 +58,7 @@ export default class SubNavDoc extends React.Component {
|
|
58
58
|
</ButtonGroup>
|
59
59
|
</SubNav>
|
60
60
|
<br />
|
61
|
-
<SubNav color='blueGreyDarker'
|
61
|
+
<SubNav color='blueGreyDarker'>
|
62
62
|
<ButtonGroup align='center'>
|
63
63
|
<Button text='One' onClick={()=> false} />
|
64
64
|
<Button text='Two' onClick={()=> false} />
|
@@ -72,7 +72,7 @@ export default class SubNavDoc extends React.Component {
|
|
72
72
|
</SubNav>
|
73
73
|
</Markup.ReactMarkupPreview>
|
74
74
|
<Markup.ReactMarkupCode>{`
|
75
|
-
<SubNav
|
75
|
+
<SubNav>
|
76
76
|
<ButtonGroup align='start'>
|
77
77
|
<NavButton icon='search' onClick={()=> false} />
|
78
78
|
</ButtonGroup>
|
@@ -80,7 +80,7 @@ export default class SubNavDoc extends React.Component {
|
|
80
80
|
<NavButton icon='expand-thin' type='highlight' onClick={()=> false} />
|
81
81
|
</ButtonGroup>
|
82
82
|
</SubNav>
|
83
|
-
<SubNav color='darker'
|
83
|
+
<SubNav color='darker'>
|
84
84
|
<ButtonGroup align='start'>
|
85
85
|
<NavButton icon='filter-large' type='darker' onClick={()=> false} />
|
86
86
|
</ButtonGroup>
|
@@ -100,7 +100,7 @@ export default class SubNavDoc extends React.Component {
|
|
100
100
|
|
101
101
|
<br />
|
102
102
|
|
103
|
-
<SubNav color='darker'
|
103
|
+
<SubNav color='darker'>
|
104
104
|
<ButtonGroup align='start' padded={true}>
|
105
105
|
<Button text='Something' onClick={()=> false} />
|
106
106
|
<Button text='Else' onClick={()=> false} />
|
@@ -112,7 +112,7 @@ export default class SubNavDoc extends React.Component {
|
|
112
112
|
|
113
113
|
<br />
|
114
114
|
|
115
|
-
<SubNav color='blueGreyDarker'
|
115
|
+
<SubNav color='blueGreyDarker'>
|
116
116
|
<ButtonGroup align='center'>
|
117
117
|
<Button text='One' onClick={()=> false} />
|
118
118
|
<Button text='Two' onClick={()=> false} />
|
@@ -132,7 +132,6 @@ export default class SubNavDoc extends React.Component {
|
|
132
132
|
<PropsList>
|
133
133
|
<Prop name='color' isRequired={false} type='light | darker | blueGrey | blueGreyDarker' default='light' description='Background colour of the SubNav component.'/>
|
134
134
|
<Prop name='theme' isRequired={false} type='light | dark' default='/' description='Choose the UI theme. It will inherit the default theme if not set. All child elements will inherit the theme of the SubNav if it is set.'/>
|
135
|
-
<Prop name='zIndex' isRequired={true} type='number' default='1000' description='Increase the default z-index value (1000) by the specified amount.'/>
|
136
135
|
<Prop name='className' isRequired={false} type='string' default='/' description='Add helper classes or custom CSS styles.'/>
|
137
136
|
</PropsList>
|
138
137
|
</section>
|
@@ -23,7 +23,7 @@ export default class TableListDoc extends React.Component<IProps, IState> {
|
|
23
23
|
</>,
|
24
24
|
center: <span>Item 1</span>,
|
25
25
|
end: <IconLabel style='translucent' text='Label success' type='success' icon='time' />,
|
26
|
-
action: <Dropdown
|
26
|
+
action: <Dropdown items={[
|
27
27
|
{ label: <Label style='translucent' type='primary' text='aacc' />, onSelect: () => 1 },
|
28
28
|
{ label: <Label style='translucent' text='prlg' />, onSelect: () => 1 },
|
29
29
|
{ label: <Label style='translucent' type='primary' text='prlg' />, onSelect: () => 1 },
|
@@ -77,7 +77,7 @@ class ThreePaneLayoutPattern extends React.Component<IProps, IState> {
|
|
77
77
|
<div style={{height: 600,}} className='sd-border--light'>
|
78
78
|
<Layout.PageLayout fullHeight={true}
|
79
79
|
header={(
|
80
|
-
<SubNav
|
80
|
+
<SubNav>
|
81
81
|
<ButtonGroup align="inline">
|
82
82
|
<Tooltip text='Click to toggle left panel' flow='right'>
|
83
83
|
<NavButton
|
@@ -212,7 +212,7 @@ class ThreePaneLayoutPattern extends React.Component<IProps, IState> {
|
|
212
212
|
<Markup.ReactMarkupCode>{`
|
213
213
|
<Layout.PageLayout
|
214
214
|
header={(
|
215
|
-
<SubNav
|
215
|
+
<SubNav>
|
216
216
|
<ButtonGroup align="inline">
|
217
217
|
<Tooltip text='Click to toggle left panel' flow='right'>
|
218
218
|
<NavButton
|
@@ -359,4 +359,4 @@ class ThreePaneLayoutPattern extends React.Component<IProps, IState> {
|
|
359
359
|
}
|
360
360
|
}
|
361
361
|
|
362
|
-
export { ThreePaneLayoutPattern };
|
362
|
+
export { ThreePaneLayoutPattern };
|
@@ -296,7 +296,7 @@ export class CoreLayout extends React.Component<IProps, IState> {
|
|
296
296
|
{!this.state.fullEditor && !this.state.rightPanel
|
297
297
|
&& <Layout.LayoutContainer>
|
298
298
|
<Layout.HeaderPanel>
|
299
|
-
<SubNav
|
299
|
+
<SubNav>
|
300
300
|
<SearchBar placeholder='Search media'></SearchBar>
|
301
301
|
<ButtonGroup align='end' spaces='no-space'>
|
302
302
|
<Dropdown
|
@@ -346,7 +346,7 @@ export class CoreLayout extends React.Component<IProps, IState> {
|
|
346
346
|
</Dropdown>
|
347
347
|
</ButtonGroup>
|
348
348
|
</SubNav>
|
349
|
-
<SubNav
|
349
|
+
<SubNav>
|
350
350
|
<ButtonGroup align='start'>
|
351
351
|
<NavButton icon='filter-large' onClick={this.handleFilter} />
|
352
352
|
</ButtonGroup>
|
@@ -585,7 +585,6 @@ export class CoreLayout extends React.Component<IProps, IState> {
|
|
585
585
|
<Layout.Container className='sd-margin-s--auto sd-flex--items-center'>
|
586
586
|
{/* <Dropdown
|
587
587
|
align = 'right'
|
588
|
-
append = {true}
|
589
588
|
items={[
|
590
589
|
{
|
591
590
|
type: 'group', label: 'Actions', items: [
|
@@ -84,7 +84,6 @@ export class Multiedit extends React.Component<IProps, IState> {
|
|
84
84
|
}}
|
85
85
|
>
|
86
86
|
<Dropdown
|
87
|
-
append
|
88
87
|
items={[
|
89
88
|
{ label: 'Action 1', onSelect: () => this.setState({arr: [...this.state.arr, <Editor />]}) },
|
90
89
|
]}
|
@@ -116,7 +115,7 @@ export class Editor extends React.Component<{}, IEditor> {
|
|
116
115
|
<div style={{borderRight: '4px solid grey'}}>
|
117
116
|
<Layout.AuthoringFrame
|
118
117
|
header={(
|
119
|
-
<SubNav
|
118
|
+
<SubNav>
|
120
119
|
<ButtonGroup align='end'>
|
121
120
|
<ButtonGroup subgroup={true} spaces="no-space">
|
122
121
|
<Tooltip text='More actions' flow='left'>
|
@@ -123,7 +123,7 @@ export class PersonalProfile extends React.Component<IProps, IState> {
|
|
123
123
|
<Components.Layout header='My Profile' theme={this.state.theme}>
|
124
124
|
<Components.LayoutContainer>
|
125
125
|
<Components.HeaderPanel>
|
126
|
-
<SubNav
|
126
|
+
<SubNav>
|
127
127
|
<ButtonGroup align='start' spaces='no-space'>
|
128
128
|
<Tooltip text='User list' flow='right'>
|
129
129
|
<NavButton icon='arrow-left' onClick={() => false} />
|
@@ -135,7 +135,7 @@ export class PersonalProfile extends React.Component<IProps, IState> {
|
|
135
135
|
</AvatarWrapper>
|
136
136
|
<h2 className='subnav__page-title'>Jeffrey Lebowski</h2>
|
137
137
|
</SubNav>
|
138
|
-
<SubNav
|
138
|
+
<SubNav>
|
139
139
|
<SubNavDivider width='small' />
|
140
140
|
<Tabs onClick={this.handleClick}>
|
141
141
|
<TabLabel label='Overview' indexValue={0}/>
|
@@ -176,7 +176,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
176
176
|
|
177
177
|
<Layout.LayoutContainer>
|
178
178
|
<Layout.HeaderPanel>
|
179
|
-
<SubNav
|
179
|
+
<SubNav>
|
180
180
|
<SearchBar placeholder='Search media'></SearchBar>
|
181
181
|
<ButtonGroup align='end' spaces='no-space'>
|
182
182
|
<Dropdown
|
@@ -227,7 +227,7 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
227
227
|
</Dropdown>
|
228
228
|
</ButtonGroup>
|
229
229
|
</SubNav>
|
230
|
-
<SubNav
|
230
|
+
<SubNav>
|
231
231
|
<ButtonGroup align='start'>
|
232
232
|
<NavButton icon='filter-large' onClick={this.handleFilter} />
|
233
233
|
</ButtonGroup>
|
@@ -503,7 +503,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
503
503
|
<Container className='sd-margin-s--auto sd-flex--items-center'>
|
504
504
|
{/* <Dropdown
|
505
505
|
align = 'right'
|
506
|
-
append = {true}
|
507
506
|
items={[
|
508
507
|
{
|
509
508
|
type: 'group', label: 'Actions', items: [
|
@@ -588,7 +587,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
588
587
|
<Modal
|
589
588
|
headerTemplate="Manage Templates"
|
590
589
|
visible={this.state.modalManageTemplate}
|
591
|
-
zIndex={1000}
|
592
590
|
contentBg='medium'
|
593
591
|
contentPadding='none'
|
594
592
|
size='x-large' onHide={() => {this.setState({modalManageTemplate: false})}}
|
@@ -691,7 +689,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
691
689
|
<Modal
|
692
690
|
headerTemplate="Create new Show"
|
693
691
|
visible={this.state.modalNewShow}
|
694
|
-
zIndex={1000}
|
695
692
|
footerTemplate={newShowFooter}
|
696
693
|
contentBg='medium'
|
697
694
|
size='medium' onHide={() => {this.setState({modalNewShow: false})}}
|
@@ -723,7 +720,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
723
720
|
<Modal
|
724
721
|
headerTemplate="Create new Show"
|
725
722
|
visible={this.state.modalNewShowSuccess}
|
726
|
-
zIndex={1000}
|
727
723
|
footerTemplate={newShowFooter2}
|
728
724
|
contentBg='medium'
|
729
725
|
size='medium' onHide={() => {this.setState({modalNewShowSuccess: false})}}
|
@@ -740,7 +736,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
740
736
|
{/* New Template Modal */}
|
741
737
|
<Modal headerTemplate="Create new Template"
|
742
738
|
visible={this.state.modalNewTemplate}
|
743
|
-
zIndex={1000}
|
744
739
|
contentBg='medium'
|
745
740
|
contentPadding='none'
|
746
741
|
size='x-large' onHide={() => {this.setState({modalNewTemplate: false})}}
|
@@ -866,14 +861,13 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
866
861
|
headerTemplate="Manage Shows"
|
867
862
|
maximizable
|
868
863
|
visible={this.state.modalManageShow}
|
869
|
-
zIndex={1000}
|
870
864
|
contentBg='medium'
|
871
865
|
contentPadding='none'
|
872
866
|
size='x-large' onHide={() => {this.setState({modalManageShow: false})}}
|
873
867
|
>
|
874
868
|
<Layout.LayoutContainer>
|
875
869
|
<Layout.HeaderPanel>
|
876
|
-
<SubNav
|
870
|
+
<SubNav>
|
877
871
|
<SearchBar placeholder='Search shows'></SearchBar>
|
878
872
|
<ButtonGroup align='end' spaces='no-space'>
|
879
873
|
<CreateButton ariaValue='New show' onClick={() => false} />
|
@@ -962,7 +956,6 @@ export class Rundowns extends React.Component<IProps, IState> {
|
|
962
956
|
<Container className='sd-margin-s--auto sd-flex--items-center'>
|
963
957
|
<Dropdown
|
964
958
|
align = 'right'
|
965
|
-
append = {true}
|
966
959
|
items={[
|
967
960
|
{
|
968
961
|
type: 'group', label: 'Actions', items: [
|
@@ -83,7 +83,7 @@ export class SamsPlayground extends React.Component<IProps, IState> {
|
|
83
83
|
|
84
84
|
<Components.LayoutContainer>
|
85
85
|
<Components.HeaderPanel>
|
86
|
-
<SubNav
|
86
|
+
<SubNav>
|
87
87
|
<ButtonGroup align='inline'>
|
88
88
|
<Dropdown
|
89
89
|
items={[
|
@@ -107,7 +107,7 @@ export class SamsPlayground extends React.Component<IProps, IState> {
|
|
107
107
|
<NavButton icon='dots-vertical' onClick={() => false} />
|
108
108
|
</ButtonGroup>
|
109
109
|
</SubNav>
|
110
|
-
<SubNav
|
110
|
+
<SubNav>
|
111
111
|
<ButtonGroup align='inline'>
|
112
112
|
<NavButton icon='filter-large' onClick={this.handleFilter} />
|
113
113
|
</ButtonGroup>
|
@@ -270,7 +270,6 @@ export class SamsPlayground extends React.Component<IProps, IState> {
|
|
270
270
|
<div className="side-panel__content-block-inner side-panel__content-block-inner--right">
|
271
271
|
<Dropdown
|
272
272
|
align = 'right'
|
273
|
-
append = {true}
|
274
273
|
items={[
|
275
274
|
{
|
276
275
|
type: 'group', label: 'Actions', items: [
|
@@ -1008,7 +1008,6 @@ export class TestGround extends React.Component<IProps, IState> {
|
|
1008
1008
|
{/* Event Only (This one existed Before) */}
|
1009
1009
|
<Modal
|
1010
1010
|
headerTemplate="Save Event"
|
1011
|
-
zIndex={10000}
|
1012
1011
|
visible={this.state.modalSaveEvent}
|
1013
1012
|
contentPadding='medium'
|
1014
1013
|
contentBg='medium'
|
@@ -1059,7 +1058,6 @@ export class TestGround extends React.Component<IProps, IState> {
|
|
1059
1058
|
{/* Event and Planning */}
|
1060
1059
|
<Modal
|
1061
1060
|
headerTemplate="Save Event"
|
1062
|
-
zIndex={10000}
|
1063
1061
|
visible={this.state.modalSaveEvent2}
|
1064
1062
|
contentPadding='medium'
|
1065
1063
|
contentBg='medium'
|
@@ -1158,7 +1156,6 @@ export class TestGround extends React.Component<IProps, IState> {
|
|
1158
1156
|
{/* Planning only */}
|
1159
1157
|
<Modal
|
1160
1158
|
headerTemplate="Save Event"
|
1161
|
-
zIndex={10000}
|
1162
1159
|
visible={this.state.modalSaveEvent3}
|
1163
1160
|
contentPadding='medium'
|
1164
1161
|
contentBg='medium'
|
@@ -1266,7 +1263,6 @@ export class TestGround extends React.Component<IProps, IState> {
|
|
1266
1263
|
|
1267
1264
|
{/* Planning templates modal */}
|
1268
1265
|
<Modal headerTemplate="Planning templates"
|
1269
|
-
zIndex={10000}
|
1270
1266
|
visible={this.state.modalPlanningTemplates}
|
1271
1267
|
contentPadding='medium'
|
1272
1268
|
contentBg='medium'
|
@@ -83,7 +83,7 @@ export class UiPlayground extends React.Component<IProps, IState> {
|
|
83
83
|
|
84
84
|
<Components.LayoutContainer>
|
85
85
|
<Components.HeaderPanel>
|
86
|
-
<SubNav
|
86
|
+
<SubNav>
|
87
87
|
<ButtonGroup align='inline'>
|
88
88
|
<Dropdown
|
89
89
|
items={[
|
@@ -107,7 +107,7 @@ export class UiPlayground extends React.Component<IProps, IState> {
|
|
107
107
|
<NavButton icon='dots-vertical' onClick={() => false} />
|
108
108
|
</ButtonGroup>
|
109
109
|
</SubNav>
|
110
|
-
<SubNav
|
110
|
+
<SubNav>
|
111
111
|
<ButtonGroup align='inline'>
|
112
112
|
<NavButton icon='filter-large' onClick={this.handleFilter} />
|
113
113
|
</ButtonGroup>
|
@@ -269,7 +269,6 @@ export class UiPlayground extends React.Component<IProps, IState> {
|
|
269
269
|
<div className="side-panel__content-block-inner side-panel__content-block-inner--right">
|
270
270
|
<Dropdown
|
271
271
|
align = 'right'
|
272
|
-
append = {true}
|
273
272
|
items={[
|
274
273
|
{
|
275
274
|
type: 'group', label: 'Actions', items: [
|
package/package.json
CHANGED
@@ -22,11 +22,9 @@ interface IMenu {
|
|
22
22
|
items: Array<IMenuItem | ISubmenu | IMenuGroup | 'divider'>;
|
23
23
|
header?: Array<IMenuItem | ISubmenu | IMenuGroup | 'divider'>;
|
24
24
|
footer?: Array<IMenuItem | ISubmenu | IMenuGroup | 'divider'>;
|
25
|
-
append?: boolean;
|
26
25
|
children: React.ReactNode;
|
27
|
-
zIndex?: number;
|
28
26
|
onChange?(event?: any): void;
|
29
27
|
maxHeight?: number;
|
30
28
|
}
|
31
|
-
export declare const Dropdown: ({ items, header, footer, children,
|
29
|
+
export declare const Dropdown: ({ items, header, footer, children, align, onChange, maxHeight, }: IMenu) => JSX.Element;
|
32
30
|
export {};
|
@@ -39,11 +39,16 @@ var React = __importStar(require("react"));
|
|
39
39
|
var ReactDOM = __importStar(require("react-dom"));
|
40
40
|
var core_1 = require("@popperjs/core");
|
41
41
|
var react_id_generator_1 = require("react-id-generator");
|
42
|
+
var zIndex_1 = require("./../zIndex");
|
42
43
|
var DROPDOWN_ID_CONTAINER = "sd-dropdown-constainer";
|
43
44
|
var Dropdown = function (_a) {
|
44
|
-
var items = _a.items, header = _a.header, footer = _a.footer, children = _a.children,
|
45
|
-
var _b = React.useState(
|
46
|
-
|
45
|
+
var items = _a.items, header = _a.header, footer = _a.footer, children = _a.children, align = _a.align, onChange = _a.onChange, maxHeight = _a.maxHeight;
|
46
|
+
var _b = React.useState(-1), zIndex = _b[0], setZIndex = _b[1];
|
47
|
+
if (zIndex === -1) {
|
48
|
+
setZIndex((0, zIndex_1.getNextZIndex)());
|
49
|
+
}
|
50
|
+
var _c = React.useState(false), open = _c[0], setOpen = _c[1];
|
51
|
+
var _d = React.useState(false), change = _d[0], setChange = _d[1];
|
47
52
|
var menuID = (0, react_id_generator_1.useId)()[0];
|
48
53
|
var ref = React.useRef(null);
|
49
54
|
var buttonRef = React.useRef(null);
|
@@ -71,7 +76,7 @@ var Dropdown = function (_a) {
|
|
71
76
|
}
|
72
77
|
}, [change]);
|
73
78
|
React.useLayoutEffect(function () {
|
74
|
-
if (
|
79
|
+
if (change) {
|
75
80
|
addInPlaceholder();
|
76
81
|
}
|
77
82
|
setChange(true);
|
@@ -101,28 +106,17 @@ var Dropdown = function (_a) {
|
|
101
106
|
if (!open) {
|
102
107
|
var menuRef_1;
|
103
108
|
setOpen(true);
|
104
|
-
|
109
|
+
setTimeout(function () {
|
105
110
|
menuRef_1 = ref.current;
|
106
111
|
var toggleRef = buttonRef.current;
|
107
112
|
if (toggleRef && menuRef_1) {
|
108
113
|
(0, core_1.createPopper)(toggleRef, menuRef_1, {
|
109
114
|
placement: checkAlign() ? 'bottom-end' : 'bottom-start',
|
115
|
+
strategy: 'fixed',
|
110
116
|
});
|
117
|
+
menuRef_1.style.display = 'block';
|
111
118
|
}
|
112
|
-
}
|
113
|
-
else {
|
114
|
-
setTimeout(function () {
|
115
|
-
menuRef_1 = ref.current;
|
116
|
-
var toggleRef = buttonRef.current;
|
117
|
-
if (toggleRef && menuRef_1) {
|
118
|
-
(0, core_1.createPopper)(toggleRef, menuRef_1, {
|
119
|
-
placement: checkAlign() ? 'bottom-end' : 'bottom-start',
|
120
|
-
strategy: 'fixed',
|
121
|
-
});
|
122
|
-
menuRef_1.style.display = 'block';
|
123
|
-
}
|
124
|
-
}, 0);
|
125
|
-
}
|
119
|
+
}, 0);
|
126
120
|
document.addEventListener('click', closeMenu);
|
127
121
|
setTimeout(function () {
|
128
122
|
menuRef_1.getElementsByTagName('button')[0].focus();
|
@@ -181,47 +175,24 @@ var Dropdown = function (_a) {
|
|
181
175
|
return (React.createElement(DropdownItem, { key: index, label: item['label'], icon: item['icon'], active: item['active'], onSelect: item['onSelect'], onChange: onChange }));
|
182
176
|
}
|
183
177
|
}
|
184
|
-
return (React.createElement("div", { className: 'dropdown ' + (open ? 'open' : '') },
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
React.createElement("span", { className: "dropdown__caret" })),
|
203
|
-
append ?
|
204
|
-
null : (function () {
|
205
|
-
if (header && footer) {
|
206
|
-
return (React.createElement("div", { className: 'dropdown__menu dropdown__menu--has-head-foot', role: 'menu', ref: ref, style: { zIndex: zIndex } },
|
207
|
-
React.createElement("ul", { className: 'dropdown__menu-header' }, headerElements),
|
208
|
-
React.createElement("ul", { className: 'dropdown__menu-body' }, dropdownElements),
|
209
|
-
React.createElement("ul", { className: 'dropdown__menu-footer dropdown__menu-footer--has-list ' }, footerElements)));
|
210
|
-
}
|
211
|
-
else if (header) {
|
212
|
-
return (React.createElement("div", { className: 'dropdown__menu dropdown__menu--has-head-foot', role: 'menu', ref: ref, style: { zIndex: zIndex } },
|
213
|
-
React.createElement("ul", { className: 'dropdown__menu-header' }, headerElements),
|
214
|
-
React.createElement("ul", { className: 'dropdown__menu-body' }, dropdownElements)));
|
215
|
-
}
|
216
|
-
else if (footer) {
|
217
|
-
return (React.createElement("div", { className: 'dropdown__menu dropdown__menu--has-head-foot', role: 'menu', ref: ref, style: { zIndex: zIndex } },
|
218
|
-
React.createElement("ul", { className: 'dropdown__menu-body' }, dropdownElements),
|
219
|
-
React.createElement("ul", { className: 'dropdown__menu-footer dropdown__menu-footer--has-list ' }, footerElements)));
|
220
|
-
}
|
221
|
-
else {
|
222
|
-
return (React.createElement("ul", { className: 'dropdown__menu', role: 'menu', ref: ref, style: { zIndex: zIndex } }, dropdownElements));
|
223
|
-
}
|
224
|
-
})()));
|
178
|
+
return (React.createElement("div", { className: 'dropdown ' + (open ? 'open' : '') }, typeof children === 'object'
|
179
|
+
? (React.isValidElement(children)
|
180
|
+
? React.createElement("div", { ref: buttonRef, style: { display: 'content' } }, (function () {
|
181
|
+
var attrs = {
|
182
|
+
className: children.props.className
|
183
|
+
? (children.props.className + ' dropdown__toggle dropdown-toggle')
|
184
|
+
: 'dropdown__toggle dropdown-toggle',
|
185
|
+
'aria-haspopup': "menu",
|
186
|
+
'aria-expanded': open,
|
187
|
+
onClick: toggleDisplay,
|
188
|
+
ref: buttonRef,
|
189
|
+
};
|
190
|
+
return React.cloneElement(children, attrs);
|
191
|
+
})())
|
192
|
+
: null)
|
193
|
+
: React.createElement("button", { style: { whiteSpace: 'nowrap' }, ref: buttonRef, className: ' dropdown__toggle dropdown-toggle', "aria-haspopup": "menu", tabIndex: 0, "aria-expanded": open, onClick: toggleDisplay },
|
194
|
+
children,
|
195
|
+
React.createElement("span", { className: "dropdown__caret" }))));
|
225
196
|
};
|
226
197
|
exports.Dropdown = Dropdown;
|
227
198
|
var DropdownItem = function (_a) {
|
@@ -15,7 +15,6 @@ export default class Panel extends React.PureComponent<IPropsPanel> {
|
|
15
15
|
}
|
16
16
|
interface IPropsPanelHeader {
|
17
17
|
color?: 'light' | 'darker' | 'blueGrey' | 'blueGreyDarker';
|
18
|
-
zIndex?: number;
|
19
18
|
title?: string;
|
20
19
|
theme?: 'light-ui' | 'dark-ui';
|
21
20
|
className?: string;
|
@@ -23,6 +22,7 @@ interface IPropsPanelHeader {
|
|
23
22
|
iconButtons?: Array<React.ReactNode>;
|
24
23
|
}
|
25
24
|
declare class PanelHeader extends React.PureComponent<IPropsPanelHeader> {
|
25
|
+
private zIndex;
|
26
26
|
constructor(props: IPropsPanelHeader);
|
27
27
|
render(): JSX.Element;
|
28
28
|
}
|