superdesk-ui-framework 3.0.66 → 3.0.68

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 (78) hide show
  1. package/app/styles/components/_list-item.scss +22 -11
  2. package/app-typescript/components/Autocomplete.tsx +9 -3
  3. package/app-typescript/components/Badge.tsx +16 -2
  4. package/app-typescript/components/Dropdown.tsx +3 -1
  5. package/app-typescript/components/DropdownFirst.tsx +14 -2
  6. package/app-typescript/components/DurationInput.tsx +19 -4
  7. package/app-typescript/components/EmptyState.tsx +11 -2
  8. package/app-typescript/components/Layouts/Panel.tsx +12 -1
  9. package/app-typescript/components/Lists/ContentList.tsx +5 -1
  10. package/app-typescript/components/Modal.tsx +10 -1
  11. package/app-typescript/components/Navigation/BottomNav.tsx +9 -2
  12. package/app-typescript/components/Navigation/QuickNavBar.tsx +10 -2
  13. package/app-typescript/components/Navigation/SideBarMenu.tsx +9 -4
  14. package/app-typescript/components/SidebarMenu.tsx +8 -1
  15. package/app-typescript/components/TabList.tsx +5 -1
  16. package/app-typescript/components/TagInput.tsx +4 -1
  17. package/app-typescript/components/ThemeSelector.tsx +13 -2
  18. package/app-typescript/components/TreeMenu.tsx +127 -122
  19. package/app-typescript/components/TreeSelect/TreeSelect.tsx +157 -141
  20. package/app-typescript/components/WithPortal.tsx +49 -0
  21. package/app-typescript/components/avatar/avatar-image.tsx +2 -0
  22. package/app-typescript/components/avatar/avatar.tsx +2 -1
  23. package/dist/examples.bundle.js +1446 -1318
  24. package/dist/playgrounds/planning.html +121 -43
  25. package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +398 -385
  26. package/dist/playgrounds/react-playgrounds/EditorTest.tsx +359 -365
  27. package/dist/playgrounds/react-playgrounds/FirstPlayground.tsx +33 -33
  28. package/dist/playgrounds/react-playgrounds/Multiedit.tsx +227 -231
  29. package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +41 -38
  30. package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +76 -96
  31. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +73 -101
  32. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +788 -729
  33. package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +35 -26
  34. package/dist/playgrounds/react-playgrounds/TestGround.tsx +99 -128
  35. package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +40 -25
  36. package/dist/playgrounds/react-playgrounds/components/GraphicButton.tsx +6 -5
  37. package/dist/playgrounds/react-playgrounds/components/Layout.tsx +0 -2
  38. package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -9
  39. package/dist/playgrounds/react-playgrounds/tsconfig.json +4 -0
  40. package/dist/superdesk-ui.bundle.css +24 -14
  41. package/dist/superdesk-ui.bundle.js +830 -727
  42. package/dist/vendor.bundle.js +14 -14
  43. package/examples/pages/playgrounds/planning.html +121 -43
  44. package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +398 -385
  45. package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +359 -365
  46. package/examples/pages/playgrounds/react-playgrounds/FirstPlayground.tsx +33 -33
  47. package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +227 -231
  48. package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +41 -38
  49. package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +76 -96
  50. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +73 -101
  51. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +788 -729
  52. package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +35 -26
  53. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +99 -128
  54. package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +40 -25
  55. package/examples/pages/playgrounds/react-playgrounds/components/GraphicButton.tsx +6 -5
  56. package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +0 -2
  57. package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -9
  58. package/examples/pages/playgrounds/react-playgrounds/tsconfig.json +4 -0
  59. package/package.json +3 -2
  60. package/react/components/Autocomplete.js +2 -2
  61. package/react/components/Badge.js +1 -1
  62. package/react/components/Dropdown.js +3 -1
  63. package/react/components/DropdownFirst.js +6 -2
  64. package/react/components/DurationInput.js +5 -1
  65. package/react/components/EmptyState.js +2 -1
  66. package/react/components/Lists/ContentList.js +1 -1
  67. package/react/components/Navigation/BottomNav.js +4 -1
  68. package/react/components/Navigation/QuickNavBar.js +2 -1
  69. package/react/components/Navigation/SideBarMenu.js +3 -1
  70. package/react/components/TabList.js +2 -1
  71. package/react/components/TagInput.js +1 -1
  72. package/react/components/TreeSelect/TreeSelect.d.ts +3 -2
  73. package/react/components/TreeSelect/TreeSelect.js +81 -73
  74. package/react/components/WithPortal.d.ts +14 -0
  75. package/react/components/WithPortal.js +69 -0
  76. package/react/components/avatar/avatar.js +2 -1
  77. /package/dist/playgrounds/dummy-data/{items.js → items.ts} +0 -0
  78. /package/examples/pages/playgrounds/dummy-data/{items.js → items.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import * as Components from './components/Index';
3
- import { ButtonGroup, Button, NavButton, SubNav, Dropdown, CheckButtonGroup, RadioGroup, RadioButtonGroup, Input, Select, Option, Label, Icon, IconButton, Checkbox, GridList, Badge } from '../../../../app-typescript/index';
3
+ import { ButtonGroup, Button, NavButton, SubNav, Dropdown, RadioButtonGroup, Input, Select, Option, Label, Icon, IconButton, Checkbox, GridList, Badge } from '../../../../app-typescript/index';
4
4
  import * as GridElements from '../../../../app-typescript/components/GridItem';
5
5
 
6
6
  import dummy_items from '../dummy-data/items';
@@ -77,7 +77,9 @@ export class UiPlayground extends React.Component<IProps, IState> {
77
77
  { icon: 'spike', size: 'big' },
78
78
  { icon: 'personal', size: 'big' },
79
79
  { icon: 'global-search', size: 'big' },
80
- { icon: 'picture', size: 'big', active: true }]} />
80
+ { icon: 'picture', size: 'big', active: true }
81
+ ]}
82
+ />
81
83
 
82
84
  <Components.LayoutContainer>
83
85
  <Components.HeaderPanel>
@@ -93,7 +95,9 @@ export class UiPlayground extends React.Component<IProps, IState> {
93
95
  { label: 'File archive', onSelect: () => this.setState({ dropDownState: 'File archive' }) },
94
96
  { label: 'AP images', onSelect: () => this.setState({ dropDownState: 'AP archive' }) },
95
97
  ]
96
- }]}>
98
+ }
99
+ ]}
100
+ >
97
101
  <NavButton text={this.state.dropDownState ? this.state.dropDownState : 'All Archives'} onClick={() => false} />
98
102
  </Dropdown>
99
103
  </ButtonGroup>
@@ -107,11 +111,16 @@ export class UiPlayground extends React.Component<IProps, IState> {
107
111
  <ButtonGroup align='inline'>
108
112
  <NavButton icon='filter-large' onClick={this.handleFilter} />
109
113
  </ButtonGroup>
110
- <RadioButtonGroup options={[
111
- {value:'test10', label:'Radio button with icon'},
112
- {value:'test11', label:'I have an icon!'},
113
- {value:'test12', label:'Yeah, me too!'},
114
- ]} group={{padded:true}} value={this.state.itemType} onChange={(value) => this.setState({ itemType: value })} />
114
+ <RadioButtonGroup
115
+ options={[
116
+ {value:'test10', label:'Radio button with icon'},
117
+ {value:'test11', label:'I have an icon!'},
118
+ {value:'test12', label:'Yeah, me too!'},
119
+ ]}
120
+ group={{padded:true}}
121
+ value={this.state.itemType}
122
+ onChange={(value) => this.setState({ itemType: value })}
123
+ />
115
124
  <ButtonGroup align='end' spaces='no-space'>
116
125
  <Dropdown
117
126
  items={[
@@ -123,7 +132,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
123
132
  { label: 'Accessible Light', icon: 'adjust', onSelect: () => this.handleTheme('accessible-light-ui')},
124
133
  ]
125
134
  },
126
- ]}>
135
+ ]}
136
+ >
127
137
  <NavButton type='default' icon='adjust' onClick={()=> false} />
128
138
  </Dropdown>
129
139
  <NavButton icon='th-list' onClick={() => false} />
@@ -145,8 +155,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
145
155
  value='Title'
146
156
  inlineLabel={false}
147
157
  disabled={false}
148
- invalid={false}
149
- onChange={(value) => { }} />
158
+ onChange={() => false}
159
+ />
150
160
  </div>
151
161
  </div>
152
162
  <div className="form__group">
@@ -156,8 +166,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
156
166
  error='This is error message'
157
167
  inlineLabel={false}
158
168
  disabled={false}
159
- invalid={false}
160
- onChange={(value) => { }}>
169
+ onChange={() => false}
170
+ >
161
171
  <Option value="option-1">Select ingest source...</Option>
162
172
  <Option value="option-2">Associated Press</Option>
163
173
  <Option value="option-3">Reuters</Option>
@@ -173,8 +183,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
173
183
  value='Keyword'
174
184
  inlineLabel={false}
175
185
  disabled={false}
176
- invalid={false}
177
- onChange={(value) => { }} />
186
+ onChange={() => false}
187
+ />
178
188
  </div>
179
189
  </div>
180
190
 
@@ -186,8 +196,8 @@ export class UiPlayground extends React.Component<IProps, IState> {
186
196
  info='Dolor in hendrerit.'
187
197
  inlineLabel={false}
188
198
  disabled={false}
189
- invalid={false}
190
- onChange={(value) => { }}>
199
+ onChange={() => false}
200
+ >
191
201
  <Option value="">--- Not selected ---</Option>
192
202
  <Option value="single">Single usage</Option>
193
203
  <Option value="time">Time restricted</Option>
@@ -206,16 +216,19 @@ export class UiPlayground extends React.Component<IProps, IState> {
206
216
  </Components.LeftPanel>
207
217
  {/* FILTER PANEL*/}
208
218
 
209
- <Components.MainPanel >
210
-
219
+ <Components.MainPanel>
211
220
  <GridList size="small" gap="medium" margin="3">
212
- {dummy_items.map((item, index) =>
221
+ {dummy_items.map((item: any, index: any) =>
213
222
  <GridElements.GridItem locked={item.locked} status={item.status} onClick={this.handlePreview} itemtype={item.type} key={index}>
214
223
  <GridElements.GridItemCheckWrapper>
215
- <Checkbox checked={item.selected} label={{text:''}} onChange={(value) => {
216
- item.selected = value;
217
- this.changeStatus(item, 'selected');
218
- }} />
224
+ <Checkbox
225
+ checked={item.selected}
226
+ label={{text:''}}
227
+ onChange={(value) => {
228
+ item.selected = value;
229
+ this.changeStatus(item, 'selected');
230
+ }}
231
+ />
219
232
  </GridElements.GridItemCheckWrapper>
220
233
  <GridElements.GridItemTopActions>
221
234
  <IconButton icon='fullscreen' ariaValue='More actions' onClick={()=> false} />
@@ -265,7 +278,9 @@ export class UiPlayground extends React.Component<IProps, IState> {
265
278
  { label: 'Download', icon: 'download', onSelect: () => this.setState({ dropDownState: 'Download' }) },
266
279
  { label: 'Delete', icon: 'trash', onSelect: () => this.setState({ dropDownState: 'Delete' }) },
267
280
  ]
268
- }]}>
281
+ }
282
+ ]}
283
+ >
269
284
  <IconButton ariaValue='dropdown-more-options' icon='dots-vertical' onClick={() => false} />
270
285
  </Dropdown>
271
286
  </div>
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import {Redirect} from 'react-router-dom';
3
2
 
4
3
  interface IGraphicButton {
5
4
  children?: never;
@@ -10,12 +9,14 @@ interface IGraphicButton {
10
9
  }
11
10
 
12
11
  export class GraphicButton extends React.PureComponent<IGraphicButton> {
13
- constructor(props){
12
+ constructor(props: IGraphicButton){
14
13
  super(props);
15
14
  this.onSubmit=this.onSubmit.bind(this);
16
15
  }
17
- onSubmit=() =>{
18
- window.location.href = this.props.link;
16
+ onSubmit=() => {
17
+ if (this.props.link != null) {
18
+ window.location.href = this.props.link;
19
+ }
19
20
  }
20
21
  render() {
21
22
  return (
@@ -30,4 +31,4 @@ export class GraphicButton extends React.PureComponent<IGraphicButton> {
30
31
  </a>
31
32
  );
32
33
  }
33
- }
34
+ }
@@ -1,6 +1,4 @@
1
1
  import * as React from 'react';
2
- import { SidebarMenu } from './SidebarMenu';
3
- import { AuthoringContent } from './AuthoringContent';
4
2
 
5
3
  interface IProps {
6
4
  header: string;
@@ -20,7 +20,7 @@ interface IState {
20
20
 
21
21
  export class SearchBar extends React.PureComponent<IProps, IState> {
22
22
  private inputRef: any;
23
- constructor(props) {
23
+ constructor(props: IProps) {
24
24
  super(props);
25
25
  this.state = {
26
26
  inputValue: this.props.value ? this.props.value : '',
@@ -46,27 +46,34 @@ export class SearchBar extends React.PureComponent<IProps, IState> {
46
46
  }
47
47
 
48
48
  render() {
49
- let classes = classNames('sd-searchbar', {
49
+ const classes = classNames('sd-searchbar', {
50
50
  [`sd-searchbar--${this.state.type}`] : this.props.type,
51
51
  'sd-searchbar--expanded': this.state.type === 'expanded' || this.props.type === undefined,
52
52
  'sd-searchbar--focused' : this.state.focused,
53
53
  'sd-searchbar--boxed': this.state.boxed,
54
54
  });
55
+
55
56
  return (
56
57
  <div className={classes} ref={this.inputRef}>
57
58
  <label className="sd-searchbar__icon"></label>
58
- <input id="search-input"
59
- ref={(input: any) => (input && this.props.focused) && input.focus()}
59
+
60
+ <input
61
+ id="search-input"
62
+ ref={(input: any) => (input && this.props.focused) && input.focus()}
60
63
  className="sd-searchbar__input"
61
64
  type="text"
62
65
  placeholder={this.props.placeholder}
63
66
  value={this.state.inputValue}
64
67
  onChange={(e) => this.setState({inputValue: e.target.value})}
65
- onFocus={() => this.setState({focused: true})} />
66
- {this.state.inputValue &&
67
- <button className="sd-searchbar__cancel" onClick={() => this.setState({inputValue: ''})}>
68
- <Icon name='remove-sign' />
69
- </button>}
68
+ onFocus={() => this.setState({focused: true})}
69
+ />
70
+
71
+ {this.state.inputValue && (
72
+ <button className="sd-searchbar__cancel" onClick={() => this.setState({inputValue: ''})}>
73
+ <Icon name='remove-sign' />
74
+ </button>
75
+ )}
76
+
70
77
  <button id="sd-searchbar__search-btn" className="sd-searchbar__search-btn" onSubmit={() => this.props.onSubmit}>
71
78
  <Icon name='chevron-right-thin' />
72
79
  </button>
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "../../../../tsconfig.json",
3
+ "files": ["Index.tsx", "../../../../globals.d.ts"]
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superdesk-ui-framework",
3
- "version": "3.0.66",
3
+ "version": "3.0.68",
4
4
  "license": "AGPL-3.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,8 @@
21
21
  "server": "webpack --watch --config tasks/webpack.prod.js && tsc-watch",
22
22
  "build": "webpack --config tasks/webpack.prod.js && tsc",
23
23
  "build-ui": "webpack && tsc && npm run lint",
24
- "lint": "eslint --parser=@typescript-eslint/parser app && tslint -c tslint.json 'app-typescript/**/*.{ts,tsx}'",
24
+ "playground-lint": "tsc -p examples/pages/playgrounds/react-playgrounds --noEmit",
25
+ "lint": "eslint --parser=@typescript-eslint/parser app && tslint -c tslint.json 'app-typescript/**/*.{ts,tsx}' && npm run playground-lint",
25
26
  "lint-fix": "tsc -p tsconfig.json --noEmit && tslint --fix -c tslint.json 'app-typescript/**/*.{ts,tsx}'",
26
27
  "prepublishOnly": "npm run build",
27
28
  "unit-test": "mocha",
@@ -142,8 +142,8 @@ var Autocomplete = /** @class */ (function (_super) {
142
142
  this.props.label && !this.props.isSearchField ? React.createElement("label", { className: 'sd-input__label', htmlFor: this.htmlId }, this.props.label) : null,
143
143
  this.props.label && this.props.isSearchField ? React.createElement("label", { className: 'sd-searchbar__icon', htmlFor: this.htmlId, "aria-label": this.props.label }) : null,
144
144
  React.createElement(autocomplete_1.AutoComplete, { id: this.htmlId, inputClassName: inputFieldClass, value: this.state.selectedItem, placeholder: this.props.placeholder, suggestions: this.state.filteredItems, completeMethod: this.searchItem, itemTemplate: this.props.listItemTemplate, field: this.props.keyValue, disabled: this.props.disabled, minLength: this.props.minLength ? this.props.minLength : 1, onFocus: function () { _this.setState({ focused: true }); }, onBlur: function () { _this.setState({ focused: false }); }, onChange: function (event) { return _this.handleChange(event); }, onSelect: function (event) { return _this.handleSelect(event); } }),
145
- this.props.isSearchField && this.state.selectedItem ?
146
- React.createElement("button", { className: "sd-searchbar__cancel", onClick: function () { return _this.handleInputClear(); } },
145
+ this.props.isSearchField && this.state.selectedItem
146
+ ? React.createElement("button", { className: "sd-searchbar__cancel", onClick: function () { return _this.handleInputClear(); } },
147
147
  React.createElement("i", { className: "icon-remove-sign", "aria-label": "remove-sign" }))
148
148
  : null,
149
149
  !this.props.isSearchField ?
@@ -62,7 +62,7 @@ var Badge = /** @class */ (function (_super) {
62
62
  React.createElement("span", { className: classes, style: { backgroundColor: this.props.hexColor }, "data-test-id": "badge-content" }, this.props.text)));
63
63
  }
64
64
  else {
65
- return React.createElement("span", { className: classes, style: { backgroundColor: this.props.hexColor }, "data-test-id": this.props['data-test-id'] }, this.props.text);
65
+ return (React.createElement("span", { className: classes, style: { backgroundColor: this.props.hexColor }, "data-test-id": this.props['data-test-id'] }, this.props.text));
66
66
  }
67
67
  };
68
68
  return Badge;
@@ -174,7 +174,9 @@ var Dropdown = function (_a) {
174
174
  (React.isValidElement(children) ?
175
175
  React.createElement("div", { ref: buttonRef, style: { display: 'content' } }, (function () {
176
176
  var attrs = {
177
- className: children.props.className ? (children.props.className + ' dropdown__toggle dropdown-toggle') : 'dropdown__toggle dropdown-toggle',
177
+ className: children.props.className
178
+ ? (children.props.className + ' dropdown__toggle dropdown-toggle')
179
+ : 'dropdown__toggle dropdown-toggle',
178
180
  'aria-haspopup': "menu",
179
181
  'aria-expanded': open,
180
182
  onClick: toggleDisplay,
@@ -107,7 +107,9 @@ var DropdownFirst = function (_a) {
107
107
  }
108
108
  if (headerFooter) {
109
109
  return (React.createElement("div", { className: classes },
110
- React.createElement("button", { className: navDropdown ? 'dropdown__toggle navbtn dropdown-toggle' : 'dropdown__toggle nav-btn dropdown-toggle', onClick: isOpen }, icon ?
110
+ React.createElement("button", { className: navDropdown
111
+ ? 'dropdown__toggle navbtn dropdown-toggle'
112
+ : 'dropdown__toggle nav-btn dropdown-toggle', onClick: isOpen }, icon ?
111
113
  (React.createElement("i", { className: "icon-" + icon })) :
112
114
  (React.createElement(React.Fragment, null,
113
115
  name,
@@ -128,7 +130,9 @@ var DropdownFirst = function (_a) {
128
130
  }
129
131
  else {
130
132
  return (React.createElement("div", { className: classes },
131
- React.createElement("button", { className: navDropdown ? 'dropdown__toggle navbtn dropdown-toggle' : 'dropdown__toggle nav-btn dropdown-toggle', onClick: isOpen }, icon ?
133
+ React.createElement("button", { className: navDropdown
134
+ ? 'dropdown__toggle navbtn dropdown-toggle'
135
+ : 'dropdown__toggle nav-btn dropdown-toggle', onClick: isOpen }, icon ?
132
136
  (React.createElement("i", { className: "icon-" + icon })) :
133
137
  (React.createElement(React.Fragment, null,
134
138
  name,
@@ -286,7 +286,11 @@ var DurationInput = /** @class */ (function (_super) {
286
286
  this.setState(stateClone);
287
287
  };
288
288
  DurationInput.prototype.handleFocusOnKeyUp = function (event, ref) {
289
- if (event.key !== 'ArrowRight' && event.key !== 'ArrowLeft' && event.key !== 'ArrowUp' && event.key !== 'ArrowDown' && event.key !== 'Backspace') {
289
+ if (event.key !== 'ArrowRight'
290
+ && event.key !== 'ArrowLeft'
291
+ && event.key !== 'ArrowUp'
292
+ && event.key !== 'ArrowDown'
293
+ && event.key !== 'Backspace') {
290
294
  if ((event.keyCode > 46 && event.keyCode < 58) || (event.keyCode > 95 && event.keyCode < 106)) {
291
295
  var target = event.target;
292
296
  if (target.value.length >= 2) {
@@ -57,7 +57,8 @@ var EmptyState = /** @class */ (function (_super) {
57
57
  _a["content-state__image--".concat(this.props.size)] = this.props.size || this.props.size !== undefined,
58
58
  _a));
59
59
  var image = require("../../app/img/empty_states/empty-state--".concat(this.props.size ? this.props.size : 'small', "-").concat(this.props.illustration ? this.props.illustration : '1', ".svg"));
60
- return (React.createElement("div", { className: 'content-state--empty-container' + (this.props.absolutePositioned ? ' content-state__empty-container--absolute' : '') },
60
+ return (React.createElement("div", { className: 'content-state--empty-container'
61
+ + (this.props.absolutePositioned ? ' content-state__empty-container--absolute' : '') },
61
62
  React.createElement("div", { className: 'content-state__empty-info' },
62
63
  React.createElement("figure", { className: classes },
63
64
  React.createElement("img", { src: image, alt: this.props.illustration })),
@@ -83,7 +83,7 @@ var ContentListItem = /** @class */ (function (_super) {
83
83
  ? React.createElement("div", { className: "sd-list-item__border sd-list-item__border--locked" })
84
84
  : React.createElement("div", { className: "sd-list-item__border" }),
85
85
  this.props.itemColum.map(function (item, index) {
86
- return React.createElement("div", { className: "sd-list-item__column ".concat(item.fullwidth && 'sd-list-item__column--grow', " ").concat(!item.border && 'sd-list-item__column--no-border'), key: index }, item.itemRow.map(function (e, i) {
86
+ return React.createElement("div", { className: "\n sd-list-item__column\n ".concat(item.fullwidth && 'sd-list-item__column--grow', "\n ").concat(!item.border && 'sd-list-item__column--no-border'), key: index }, item.itemRow.map(function (e, i) {
87
87
  return (item.itemRow.length <= 1
88
88
  ? React.createElement(React.Fragment, { key: i }, e.content)
89
89
  : React.createElement("div", { className: "sd-list-item__row", key: i }, e.content));
@@ -76,7 +76,10 @@ var BottomNav = /** @class */ (function (_super) {
76
76
  BottomNav.prototype.render = function () {
77
77
  var _this = this;
78
78
  return (React.createElement("ul", { className: 'sd-bottom-nav-list' }, this.props.items.map(function (item, index) {
79
- return (React.createElement("li", { key: index, className: 'sd-bottom-nav-list__item' + (item['active'] ? ' sd-bottom-nav-list__item--active' : (index === _this.state.index ? ' sd-bottom-nav-list__item--active' : '')) },
79
+ return (React.createElement("li", { key: index, className: 'sd-bottom-nav-list__item'
80
+ + (item['active']
81
+ ? ' sd-bottom-nav-list__item--active'
82
+ : (index === _this.state.index ? ' sd-bottom-nav-list__item--active' : '')) },
80
83
  React.createElement("a", { className: 'sd-bottom-nav-list__item-title', onClick: function (event) {
81
84
  _this.handleClick(index);
82
85
  item.onClick(event);
@@ -111,7 +111,8 @@ var QuickNavBar = /** @class */ (function (_super) {
111
111
  }
112
112
  else {
113
113
  return (React.createElement("li", { key: index, "data-sd-tooltip": item['tooltip'], "data-flow": 'right' },
114
- React.createElement("a", { role: 'button', "aria-label": item['tooltip'], className: 'sd-quickbar__btn' + (index === _this.state.index ? ' sd-quickbar__btn--active' : ''), onClick: function () { return _this.handleClick(item, index, event); } },
114
+ React.createElement("a", { role: 'button', "aria-label": item['tooltip'], className: 'sd-quickbar__btn'
115
+ + (index === _this.state.index ? ' sd-quickbar__btn--active' : ''), onClick: function () { return _this.handleClick(item, index, event); } },
115
116
  React.createElement(Icon_1.Icon, { size: 'small', name: item['icon'] }))));
116
117
  }
117
118
  }))));
@@ -80,7 +80,9 @@ var SideBarMenu = /** @class */ (function (_super) {
80
80
  return (React.createElement("li", { key: index, "data-sd-tooltip": item['tooltip'], "data-flow": 'right', className: item.hover ? 'authoring-active__item' : '' },
81
81
  React.createElement("a", { className: 'sd-sidebar-menu__btn'
82
82
  + (_this.state.hover ? ' sd-sidebar-menu__btn--closed ' : '')
83
- + (item['active'] ? ' sd-sidebar-menu__btn--active' : (index === _this.state.index ? ' sd-sidebar-menu__btn--active' : '')), onClick: function () {
83
+ + (item['active']
84
+ ? ' sd-sidebar-menu__btn--active'
85
+ : (index === _this.state.index ? ' sd-sidebar-menu__btn--active' : '')), onClick: function () {
84
86
  _this.handleClick(index);
85
87
  if (item.hover) {
86
88
  _this.handleArrows();
@@ -86,7 +86,8 @@ var TabList = /** @class */ (function (_super) {
86
86
  _a));
87
87
  return (React.createElement(React.Fragment, null,
88
88
  React.createElement("div", { className: classes, role: 'tablist' }, this.props.children.map(function (item, index) {
89
- return React.createElement("button", { key: index, onClick: function () { return _this.handleChange(index); }, role: 'tab', "aria-selected": _this.state.index === index ? 'true' : 'false', className: 'sd-nav-tabs__tab' + (_this.state.index === index ? ' sd-nav-tabs__tab--active' : '') },
89
+ return React.createElement("button", { key: index, onClick: function () { return _this.handleChange(index); }, role: 'tab', "aria-selected": _this.state.index === index ? 'true' : 'false', className: 'sd-nav-tabs__tab'
90
+ + (_this.state.index === index ? ' sd-nav-tabs__tab--active' : '') },
90
91
  React.createElement("span", null, item.props.label));
91
92
  })),
92
93
  React.createElement("div", { className: 'sd-nav-tabs__content' +
@@ -60,7 +60,7 @@ var TagInput = /** @class */ (function (_super) {
60
60
  return (React.createElement(SelectPreview_1.SelectPreview, { kind: { mode: 'multi-select' }, items: this.props.value, getLabel: function (item) { return item; } }));
61
61
  }
62
62
  return (React.createElement(Form_1.InputWrapper, { label: this.props.label, error: this.props.error, invalid: this.props.error != null, required: this.props.required, disabled: this.props.disabled, info: this.props.info, inlineLabel: this.props.inlineLabel, labelHidden: this.props.labelHidden, htmlId: this.htmlId, tabindex: this.props.tabindex },
63
- React.createElement(chips_1.Chips, { className: "tags-input--multi-select sd-input__input ".concat(this.props.disabled ? ' tags-input__padding-disabled' : ''), allowDuplicate: false, separator: ",", onChange: function (event) { return onChange(event.value); }, value: value, placeholder: this.props.disabled ? undefined : placeholder, disabled: this.props.disabled })));
63
+ React.createElement(chips_1.Chips, { className: "\n tags-input--multi-select sd-input__input\n ".concat(this.props.disabled ? ' tags-input__padding-disabled' : ''), allowDuplicate: false, separator: ",", onChange: function (event) { return onChange(event.value); }, value: value, placeholder: this.props.disabled ? undefined : placeholder, disabled: this.props.disabled })));
64
64
  };
65
65
  return TagInput;
66
66
  }(React.Component));
@@ -18,7 +18,7 @@ interface IPropsBase<T> extends IInputWrapper {
18
18
  value?: Array<T>;
19
19
  selectBranchWithChildren?: boolean;
20
20
  readOnly?: boolean;
21
- popoverWidth?: 'medium' | 'match-input';
21
+ width?: 'medium' | 'match-input';
22
22
  inputWidth?: '100%';
23
23
  allowMultiple?: boolean;
24
24
  loading?: boolean;
@@ -26,6 +26,7 @@ interface IPropsBase<T> extends IInputWrapper {
26
26
  placeholder?: string;
27
27
  searchPlaceholder?: string;
28
28
  zIndex?: number;
29
+ 'data-test-id'?: string;
29
30
  getLabel(item: T): string;
30
31
  getId(item: T): string;
31
32
  getBackgroundColor?(item: T): string;
@@ -33,7 +34,6 @@ interface IPropsBase<T> extends IInputWrapper {
33
34
  optionTemplate?(item: T): React.ComponentType<T> | JSX.Element;
34
35
  valueTemplate?(item: T, Wrapper: React.ElementType): React.ComponentType<T> | JSX.Element;
35
36
  onChange(e: Array<T>): void;
36
- 'data-test-id'?: string;
37
37
  }
38
38
  interface IPropsSync<T> extends IPropsBase<T> {
39
39
  kind: 'synchronous';
@@ -65,6 +65,7 @@ export declare class TreeSelect<T> extends React.Component<IProps<T>, IState<T>>
65
65
  buttonFocus: () => void;
66
66
  onMouseDown: (event: MouseEvent) => void;
67
67
  onKeyDown: (e: KeyboardEvent) => void;
68
+ onPressEsc: (event: KeyboardEvent) => void;
68
69
  componentDidMount: () => void;
69
70
  componentWillUnmount(): void;
70
71
  componentDidUpdate(prevProps: Readonly<IProps<T>>, prevState: Readonly<IState<T>>): void;