superdesk-ui-framework 3.0.1-beta.3 → 3.0.1-beta.6

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 (100) hide show
  1. package/app/styles/_sd-tag-input.scss +201 -296
  2. package/app/styles/components/_list-item.scss +13 -1
  3. package/app/styles/components/_sd-photo-preview.scss +1 -1
  4. package/app/styles/design-tokens/_new-colors.scss +1 -1
  5. package/app/styles/form-elements/_forms-general.scss +22 -7
  6. package/app/styles/form-elements/_inputs.scss +133 -54
  7. package/app-typescript/components/Badge.tsx +3 -2
  8. package/app-typescript/components/DatePicker.tsx +40 -52
  9. package/app-typescript/components/DurationInput.tsx +342 -0
  10. package/app-typescript/components/Form/InputBase.tsx +85 -0
  11. package/app-typescript/components/Form/InputNew.tsx +107 -0
  12. package/app-typescript/components/Form/InputWrapper.tsx +79 -0
  13. package/app-typescript/components/Form/index.tsx +3 -0
  14. package/app-typescript/components/Input.tsx +28 -45
  15. package/app-typescript/components/Label.tsx +49 -10
  16. package/app-typescript/components/Layouts/Layout.tsx +1 -1
  17. package/app-typescript/components/Lists/ContentList.tsx +4 -4
  18. package/app-typescript/components/MultiSelect.tsx +37 -50
  19. package/app-typescript/components/Navigation/BottomNav.tsx +3 -2
  20. package/app-typescript/components/Select.tsx +23 -41
  21. package/app-typescript/components/SelectWithTemplate.tsx +32 -7
  22. package/app-typescript/components/TimePicker.tsx +48 -16
  23. package/app-typescript/components/TreeSelect.tsx +423 -195
  24. package/app-typescript/index.ts +4 -1
  25. package/dist/examples.bundle.js +16733 -15633
  26. package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +64 -54
  27. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +24 -16
  28. package/dist/playgrounds/react-playgrounds/TestGround.tsx +76 -1
  29. package/dist/playgrounds/react-playgrounds/components/Layout.tsx +1 -1
  30. package/dist/react/Badges.tsx +18 -0
  31. package/dist/react/ContentList.tsx +15 -9
  32. package/dist/react/DatePicker.tsx +21 -1
  33. package/dist/react/DurationInput.tsx +104 -0
  34. package/dist/react/Index.tsx +5 -0
  35. package/dist/react/Inputs.tsx +153 -2
  36. package/dist/react/Labels.tsx +51 -1
  37. package/dist/react/MultiSelect.tsx +4 -1
  38. package/dist/react/SelectWithTemplate.tsx +6 -1
  39. package/dist/react/TableList.tsx +22 -44
  40. package/dist/react/TimePicker.tsx +16 -8
  41. package/dist/react/TreeSelect.tsx +301 -48
  42. package/dist/react/tree-select/TreeSelect.tsx +273 -0
  43. package/dist/react/tree-select/example-1.tsx +71 -0
  44. package/dist/react/tree-select/example-2.tsx +59 -0
  45. package/dist/superdesk-ui.bundle.css +413 -370
  46. package/dist/superdesk-ui.bundle.js +15879 -14782
  47. package/dist/vendor.bundle.js +27 -27
  48. package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +64 -54
  49. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +24 -16
  50. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +76 -1
  51. package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +1 -1
  52. package/examples/pages/react/Badges.tsx +18 -0
  53. package/examples/pages/react/ContentList.tsx +15 -9
  54. package/examples/pages/react/DatePicker.tsx +21 -1
  55. package/examples/pages/react/DurationInput.tsx +104 -0
  56. package/examples/pages/react/Index.tsx +5 -0
  57. package/examples/pages/react/Inputs.tsx +153 -2
  58. package/examples/pages/react/Labels.tsx +51 -1
  59. package/examples/pages/react/MultiSelect.tsx +4 -1
  60. package/examples/pages/react/SelectWithTemplate.tsx +6 -1
  61. package/examples/pages/react/TableList.tsx +22 -44
  62. package/examples/pages/react/TimePicker.tsx +16 -8
  63. package/examples/pages/react/TreeSelect.tsx +301 -48
  64. package/examples/pages/react/tree-select/TreeSelect.tsx +273 -0
  65. package/examples/pages/react/tree-select/example-1.tsx +71 -0
  66. package/examples/pages/react/tree-select/example-2.tsx +59 -0
  67. package/package.json +2 -1
  68. package/patches/@superdesk+primereact+5.0.2-4.patch +10 -1
  69. package/react/components/Badge.d.ts +1 -0
  70. package/react/components/Badge.js +2 -2
  71. package/react/components/DatePicker.d.ts +1 -0
  72. package/react/components/DatePicker.js +6 -22
  73. package/react/components/DurationInput.d.ts +41 -0
  74. package/react/components/DurationInput.js +303 -0
  75. package/react/components/Form/InputBase.d.ts +42 -0
  76. package/react/components/Form/InputBase.js +72 -0
  77. package/react/components/Form/InputNew.d.ts +45 -0
  78. package/react/components/Form/InputNew.js +75 -0
  79. package/react/components/Form/InputWrapper.d.ts +28 -0
  80. package/react/components/Form/InputWrapper.js +91 -0
  81. package/react/components/Form/index.d.ts +3 -0
  82. package/react/components/Form/index.js +7 -1
  83. package/react/components/Input.js +5 -34
  84. package/react/components/Label.d.ts +1 -0
  85. package/react/components/Label.js +18 -2
  86. package/react/components/Layouts/Layout.js +1 -1
  87. package/react/components/Lists/ContentList.d.ts +45 -0
  88. package/react/components/Lists/ContentList.js +85 -0
  89. package/react/components/Navigation/BottomNav.d.ts +1 -0
  90. package/react/components/Navigation/BottomNav.js +2 -2
  91. package/react/components/Select.d.ts +1 -1
  92. package/react/components/Select.js +4 -26
  93. package/react/components/SelectWithTemplate.d.ts +11 -1
  94. package/react/components/SelectWithTemplate.js +19 -10
  95. package/react/components/TimePicker.d.ts +15 -2
  96. package/react/components/TimePicker.js +15 -4
  97. package/react/components/TreeSelect.d.ts +75 -0
  98. package/react/components/TreeSelect.js +448 -0
  99. package/react/index.d.ts +4 -0
  100. package/react/index.js +10 -3
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.TreeSelect = void 0;
50
+ var React = __importStar(require("react"));
51
+ var Icon_1 = require("./Icon");
52
+ var Loader_1 = require("./Loader");
53
+ var classnames_1 = __importDefault(require("classnames"));
54
+ var react_id_generator_1 = __importDefault(require("react-id-generator"));
55
+ var TreeSelect = /** @class */ (function (_super) {
56
+ __extends(TreeSelect, _super);
57
+ function TreeSelect(props) {
58
+ var _this = _super.call(this, props) || this;
59
+ _this.htmlId = (0, react_id_generator_1.default)();
60
+ _this.backButton = function () {
61
+ if (_this.state.activeTree.length > 0) {
62
+ _this.setState({
63
+ options: _this.state.activeTree.pop(),
64
+ });
65
+ return;
66
+ }
67
+ else {
68
+ return false;
69
+ }
70
+ };
71
+ _this.backButtonValue = function () {
72
+ _this.setState({
73
+ buttonValue: _this.state.buttonTree.pop(),
74
+ });
75
+ };
76
+ _this.componentDidMount = function () {
77
+ _this.recursion(_this.state.options);
78
+ document.addEventListener("mousedown", function (event) {
79
+ if ((_this.dropdownRef.current && !_this.dropdownRef.current.contains(event.target))
80
+ && (_this.openDropdownRef.current && !_this.openDropdownRef.current.contains(event.target))) {
81
+ _this.setState({ openDropdown: false });
82
+ }
83
+ });
84
+ };
85
+ _this.state = {
86
+ value: _this.props.value ? _this.props.value : [],
87
+ options: _this.props.getOptions ? _this.props.getOptions() : [],
88
+ firstBranchOptions: _this.props.getOptions ? _this.props.getOptions() : [],
89
+ activeTree: [],
90
+ filterArr: [],
91
+ searchFieldValue: '',
92
+ buttonTree: [],
93
+ buttonValue: [],
94
+ buttonMouseEvent: false,
95
+ openDropdown: false,
96
+ loading: _this.props.loading ? _this.props.loading : false,
97
+ invalid: _this.props.invalid ? _this.props.invalid : false,
98
+ };
99
+ _this.removeClick = _this.removeClick.bind(_this);
100
+ _this.handleMultiLevel = _this.handleMultiLevel.bind(_this);
101
+ _this.backButton = _this.backButton.bind(_this);
102
+ _this.handleButton = _this.handleButton.bind(_this);
103
+ _this.backButtonValue = _this.backButtonValue.bind(_this);
104
+ _this.handleTree = _this.handleTree.bind(_this);
105
+ _this.filteredItem = _this.filteredItem.bind(_this);
106
+ _this.banchButton = _this.banchButton.bind(_this);
107
+ _this.dropdownRef = React.createRef();
108
+ _this.openDropdownRef = React.createRef();
109
+ return _this;
110
+ }
111
+ TreeSelect.prototype.removeClick = function (i) {
112
+ var newTags = this.state.value;
113
+ newTags === null || newTags === void 0 ? void 0 : newTags.splice(i, 1);
114
+ this.setState({
115
+ value: newTags,
116
+ });
117
+ this.props.onChange(this.state.value);
118
+ };
119
+ TreeSelect.prototype.handleMultiLevel = function (item) {
120
+ if (item.children) {
121
+ this.setState({
122
+ activeTree: __spreadArray(__spreadArray([], this.state.activeTree, true), [this.state.options], false),
123
+ options: item.children,
124
+ });
125
+ }
126
+ };
127
+ TreeSelect.prototype.handleButton = function (item) {
128
+ this.setState({
129
+ buttonTree: __spreadArray(__spreadArray([], this.state.buttonTree, true), [this.state.buttonValue], false),
130
+ buttonValue: item,
131
+ });
132
+ };
133
+ TreeSelect.prototype.handleValue = function (event, item) {
134
+ var _this = this;
135
+ if (this.props.allowMultiple) {
136
+ var checkItem = this.state.value.find(function (valueItem) {
137
+ return _this.props.getId(valueItem) === _this.props.getId(item.value);
138
+ });
139
+ if (!checkItem) {
140
+ this.setState({ value: __spreadArray(__spreadArray([], this.state.value, true), [item.value], false) });
141
+ }
142
+ if (!event.ctrlKey) {
143
+ if (this.props.getOptions) {
144
+ this.setState({ options: this.state.firstBranchOptions, activeTree: [], openDropdown: false });
145
+ }
146
+ else {
147
+ this.setState({ activeTree: [], openDropdown: false });
148
+ }
149
+ }
150
+ this.setState({ buttonMouseEvent: false });
151
+ }
152
+ else {
153
+ var checkItem = this.state.value.find(function (valueItem) {
154
+ return _this.props.getId(valueItem) === _this.props.getId(item.value);
155
+ });
156
+ if (!checkItem) {
157
+ this.setState({ value: [item.value] });
158
+ }
159
+ if (!event.ctrlKey) {
160
+ this.setState({ options: this.state.firstBranchOptions, activeTree: [], openDropdown: false });
161
+ }
162
+ this.setState({ buttonMouseEvent: false });
163
+ }
164
+ };
165
+ TreeSelect.prototype.handleBranchValue = function (event, item) {
166
+ var _this = this;
167
+ if (this.props.allowMultiple) {
168
+ if (this.props.selectBranchWithChildren) {
169
+ var checkItem = this.state.value.find(function (valueItem) {
170
+ return _this.props.getId(valueItem) === _this.props.getId(item.value);
171
+ });
172
+ if (!checkItem) {
173
+ this.setState({ value: __spreadArray(__spreadArray([], this.state.value, true), [item.value], false) });
174
+ }
175
+ if (!event.ctrlKey) {
176
+ this.setState({ options: this.state.firstBranchOptions, activeTree: [], openDropdown: false });
177
+ }
178
+ this.setState({ buttonMouseEvent: false });
179
+ }
180
+ }
181
+ else {
182
+ if (this.props.selectBranchWithChildren) {
183
+ var checkItem = this.state.value.find(function (valueItem) {
184
+ return _this.props.getId(valueItem) === _this.props.getId(item.value);
185
+ });
186
+ if (!checkItem) {
187
+ this.setState({ value: [item.value] });
188
+ }
189
+ if (!event.ctrlKey) {
190
+ this.setState({ options: this.state.firstBranchOptions, activeTree: [], openDropdown: false });
191
+ }
192
+ this.setState({ buttonMouseEvent: false });
193
+ }
194
+ }
195
+ };
196
+ TreeSelect.prototype.handleTree = function (event, option) {
197
+ var _this = this;
198
+ if (option.children) {
199
+ this.handleButton(option);
200
+ this.handleMultiLevel(option);
201
+ if (event.altKey && this.props.allowMultiple) {
202
+ if (this.props.selectBranchWithChildren) {
203
+ var filteredItems_1 = [];
204
+ option.children.forEach(function (item) {
205
+ if (!_this.state.value.includes(item.value)) {
206
+ filteredItems_1.push(item.value);
207
+ }
208
+ });
209
+ this.setState({
210
+ value: __spreadArray(__spreadArray([], this.state.value, true), filteredItems_1, true),
211
+ options: this.state.firstBranchOptions,
212
+ openDropdown: false,
213
+ activeTree: [],
214
+ });
215
+ }
216
+ else {
217
+ var filteredItems_2 = [];
218
+ option.children.forEach(function (item) {
219
+ if (!_this.state.value.includes(item.value)
220
+ && !item.children) {
221
+ filteredItems_2.push(item.value);
222
+ }
223
+ });
224
+ if (filteredItems_2.length > 0) {
225
+ this.setState({
226
+ value: __spreadArray(__spreadArray([], this.state.value, true), filteredItems_2, true),
227
+ options: this.state.firstBranchOptions,
228
+ openDropdown: false,
229
+ activeTree: [],
230
+ });
231
+ }
232
+ }
233
+ }
234
+ }
235
+ else {
236
+ this.handleValue(event, option);
237
+ if (!event.ctrlKey) {
238
+ this.setState({ openDropdown: false });
239
+ }
240
+ }
241
+ };
242
+ TreeSelect.prototype.recursion = function (arr) {
243
+ var _this = this;
244
+ arr.map(function (item) {
245
+ _this.state.filterArr.push(item);
246
+ if (item.children) {
247
+ _this.recursion(item.children);
248
+ }
249
+ });
250
+ };
251
+ TreeSelect.prototype.componentDidUpdate = function (prevProps, prevState) {
252
+ if (prevState.value !== this.state.value) {
253
+ this.props.onChange(this.state.value);
254
+ }
255
+ else if (prevProps.value !== this.props.value) {
256
+ this.props.onChange(this.state.value);
257
+ }
258
+ };
259
+ TreeSelect.prototype.filteredItem = function (arr) {
260
+ var _this = this;
261
+ if (this.props.kind === 'synchronous') {
262
+ return arr.filter(function (item) {
263
+ if (_this.state.searchFieldValue) {
264
+ if (_this.props.getLabel(item.value)
265
+ .toLowerCase().includes(_this.state.searchFieldValue.toLowerCase())) {
266
+ return item.value;
267
+ }
268
+ else {
269
+ return;
270
+ }
271
+ }
272
+ else {
273
+ return item.value;
274
+ }
275
+ }).map(function (option, i) {
276
+ var selectedItem = _this.state.value.some(function (obj) {
277
+ return _this.props.getId(obj) === _this.props.getId(option.value);
278
+ });
279
+ return React.createElement("li", { key: i, className: "suggestion-item suggestion-item--multi-select", onClick: function (event) {
280
+ _this.setState({
281
+ searchFieldValue: '',
282
+ }),
283
+ event.preventDefault();
284
+ event.stopPropagation();
285
+ _this.handleTree(event, option);
286
+ } },
287
+ _this.props.optionTemplate
288
+ ? _this.props.optionTemplate(option.value)
289
+ : React.createElement("span", { className: selectedItem
290
+ ? 'suggestion-item--disabled' : undefined }, _this.props.getLabel(option.value)),
291
+ option.children && React.createElement("span", { className: "suggestion-item__icon" },
292
+ React.createElement(Icon_1.Icon, { name: "chevron-right-thin" })));
293
+ });
294
+ }
295
+ else if (this.props.kind === 'asynchronous') {
296
+ return this.state.options.map(function (item, i) {
297
+ var selectedItem = _this.state.value.some(function (obj) {
298
+ return _this.props.getId(obj) === _this.props.getId(item.value);
299
+ });
300
+ return (React.createElement("li", { key: i, className: "suggestion-item suggestion-item--multi-select", onClick: function (event) {
301
+ _this.handleValue(event, item);
302
+ } }, _this.props.optionTemplate
303
+ ? _this.props.optionTemplate(item.value)
304
+ : React.createElement("span", { className: selectedItem
305
+ ? 'suggestion-item--disabled' : undefined }, _this.props.getLabel(item.value))));
306
+ });
307
+ }
308
+ else {
309
+ return;
310
+ }
311
+ };
312
+ TreeSelect.prototype.banchButton = function () {
313
+ var _this = this;
314
+ var selectedButton = this.state.value.some(function (obj) {
315
+ return _this.props.getId(obj) === _this.props.getId(_this.state.buttonValue.value);
316
+ });
317
+ if (!selectedButton) {
318
+ return React.createElement("button", { className: 'autocomplete__button' + (this.props.selectBranchWithChildren ? ' autocomplete__button--multi-select' : ''), onMouseOver: function () { return _this.setState({ buttonMouseEvent: true }); }, onMouseOut: function () { return _this.setState({ buttonMouseEvent: false }); }, value: this.state.buttonValue, onClick: function (event) { return _this.handleBranchValue(event, _this.state.buttonValue); } }, "Choose entire category");
319
+ }
320
+ else {
321
+ return React.createElement("button", { className: 'autocomplete__button' + (this.props.selectBranchWithChildren ? ' autocomplete__button--multi-select' : '') + ' autocomplete__button--disabled', value: this.state.buttonValue }, "Category selected");
322
+ }
323
+ };
324
+ TreeSelect.prototype.render = function () {
325
+ var _this = this;
326
+ var labelClasses = (0, classnames_1.default)('sd-input__label', {
327
+ 'a11y-only': this.props.labelHidden,
328
+ });
329
+ var classesLabel = (0, classnames_1.default)('sd-input', {
330
+ 'sd-input--inline-label': this.props.inlineLabel,
331
+ 'sd-input--required': this.props.required,
332
+ 'sd-input--disabled': this.props.disabled,
333
+ 'sd-input--full-width': this.props.fullWidth,
334
+ 'sd-input--invalid': this.props.invalid || this.state.invalid,
335
+ });
336
+ return (React.createElement("div", { className: classesLabel },
337
+ React.createElement("label", { className: labelClasses, htmlFor: this.htmlId, id: this.htmlId + 'label', tabIndex: this.props.tabindex === undefined ? undefined : -1 }, this.props.label),
338
+ React.createElement("div", { className: "tags-input tags-input--".concat(this.props.allowMultiple ? 'multi-select' : 'single-select', " sd-input__input") },
339
+ this.props.allowMultiple
340
+ ? React.createElement("div", { className: "tags-input__tags" },
341
+ this.props.readOnly
342
+ || React.createElement("button", { ref: this.openDropdownRef, className: "tags-input__add-button", onClick: function () { return _this.setState({ openDropdown: !_this.state.openDropdown }); } },
343
+ React.createElement("i", { className: "icon-plus-large" })),
344
+ React.createElement("ul", { className: "tags-input__tag-list" }, this.state.value.map(function (item, i) {
345
+ return React.createElement(React.Fragment, { key: i },
346
+ React.createElement("li", { className: "tags-input__tag-item tags-input__tag-item--multi-select"
347
+ + (_this.props.readOnly ? ' tags-input__tag-item--readonly' : ''), onClick: function () { return _this.props.readOnly || _this.removeClick(i); } },
348
+ React.createElement("span", { className: "tags-input__helper-box" },
349
+ _this.props.valueTemplate
350
+ ? _this.props.valueTemplate(item)
351
+ : React.createElement("span", null, _this.props.getLabel(item)),
352
+ _this.props.readOnly
353
+ || React.createElement("span", { className: "tags-input__remove-button" },
354
+ React.createElement(Icon_1.Icon, { name: "close-small" })))));
355
+ })),
356
+ this.state.value.length > 0 ?
357
+ this.props.readOnly
358
+ || React.createElement("button", { className: "tags-input__remove-value", onClick: function () { return _this.setState({ value: [] }); } },
359
+ React.createElement(Icon_1.Icon, { name: 'remove-sign' })) : null)
360
+ : React.createElement("div", { className: "tags-input__tags" },
361
+ React.createElement("button", { className: "tags-input__overlay-button", ref: this.openDropdownRef, onClick: function () { return _this.setState({ openDropdown: !_this.state.openDropdown }); } }),
362
+ this.state.value.length < 1 && React.createElement("span", { className: 'tags-input__single-item'
363
+ + (this.props.readOnly ? ' tags-input__tag-item--readonly' : '') },
364
+ React.createElement("span", { className: "tags-input__placeholder" }, this.props.placeholder)),
365
+ this.state.value.map(function (item, i) {
366
+ return React.createElement(React.Fragment, { key: i },
367
+ React.createElement("span", { className: 'tags-input__single-item'
368
+ + (_this.props.readOnly ? ' tags-input__tag-item--readonly' : ''), onClick: function () { return _this.props.readOnly || _this.removeClick(i); } },
369
+ React.createElement("span", { className: "tags-input__helper-box" },
370
+ _this.props.valueTemplate
371
+ ? _this.props.valueTemplate(item)
372
+ : React.createElement("span", null, _this.props.getLabel(item)),
373
+ _this.props.readOnly
374
+ || React.createElement("span", { className: "tags-input__remove-button" },
375
+ React.createElement(Icon_1.Icon, { name: 'remove-sign' })))));
376
+ })),
377
+ this.state.openDropdown &&
378
+ React.createElement("div", { className: "autocomplete autocomplete--multi-select" + (this.props.width === 'medium' ? ' autocomplete--fixed-width' : ''), ref: this.dropdownRef },
379
+ React.createElement("div", { className: 'autocomplete__header' },
380
+ React.createElement("div", { className: "autocomplete__icon", onClick: function () {
381
+ _this.backButtonValue();
382
+ _this.backButton();
383
+ } },
384
+ React.createElement(Icon_1.Icon, { name: "search", className: "search" })),
385
+ React.createElement("div", { className: 'autocomplete__filter' },
386
+ React.createElement("input", { placeholder: this.props.singleLevelSearch ? 'Search this category...' : 'Search...', type: "text", className: "autocomplete__input", ref: function (input) { return input && input.focus(); }, value: this.state.searchFieldValue, onChange: function (event) {
387
+ var value = event.target.value;
388
+ if (_this.props.kind === 'asynchronous') {
389
+ _this.setState({
390
+ searchFieldValue: value,
391
+ loading: true,
392
+ }),
393
+ _this.props.searchOptions(value, function (items) {
394
+ _this.setState({ options: items, loading: false });
395
+ });
396
+ }
397
+ else if (_this.props.kind === 'synchronous') {
398
+ _this.setState({ searchFieldValue: value });
399
+ }
400
+ } }))),
401
+ this.state.activeTree.length > 0 &&
402
+ React.createElement("div", { className: 'autocomplete__category-header' },
403
+ React.createElement("div", { className: "autocomplete__icon", onClick: function () {
404
+ _this.backButtonValue();
405
+ _this.backButton();
406
+ } },
407
+ React.createElement(Icon_1.Icon, { name: "arrow-left", className: "arrow-left" })),
408
+ React.createElement("div", { className: 'autocomplete__filter' },
409
+ React.createElement("button", { className: 'autocomplete__category-title', value: this.state.buttonValue }, this.props.optionTemplate
410
+ ? this.props.optionTemplate(this.state.buttonValue.value)
411
+ : this.props.getLabel(this.state.buttonValue.value)),
412
+ this.props.selectBranchWithChildren && this.banchButton())),
413
+ this.state.loading
414
+ ? React.createElement("ul", { className: "suggestion-list--loader" },
415
+ React.createElement(Loader_1.Loader, { overlay: true }))
416
+ :
417
+ this.state.searchFieldValue === ''
418
+ ? this.props.getOptions ?
419
+ React.createElement("ul", { className: "suggestion-list suggestion-list--multi-select" }, this.state.options
420
+ .map(function (option, i) {
421
+ var selectedItem = _this.state.value.some(function (obj) {
422
+ return _this.props.getId(obj) === _this.props.getLabel(option.value);
423
+ });
424
+ return (React.createElement("li", { key: i, className: "suggestion-item suggestion-item--multi-select", onClick: function (event) {
425
+ event.preventDefault();
426
+ event.stopPropagation();
427
+ _this.handleTree(event, option);
428
+ } },
429
+ _this.props.optionTemplate
430
+ ? _this.props.optionTemplate(option.value)
431
+ : React.createElement("span", { className: selectedItem
432
+ ? 'suggestion-item--disabled' : undefined }, _this.props.getLabel(option.value)),
433
+ option.children && React.createElement("span", { className: "suggestion-item__icon" },
434
+ React.createElement(Icon_1.Icon, { name: "chevron-right-thin" }))));
435
+ })) : null
436
+ :
437
+ React.createElement("ul", { className: "suggestion-list suggestion-list--multi-select" }, this.filteredItem(this.props.singleLevelSearch
438
+ ? this.state.options : this.state.filterArr)))),
439
+ React.createElement("div", { className: 'sd-input__message-box' },
440
+ this.props.info && !this.props.invalid && !this.state.invalid ?
441
+ React.createElement("div", { className: 'sd-input__hint' }, this.props.info) : null,
442
+ this.props.invalid || this.state.invalid ?
443
+ React.createElement("div", { className: 'sd-input__message' }, this.props.error)
444
+ : null)));
445
+ };
446
+ return TreeSelect;
447
+ }(React.Component));
448
+ exports.TreeSelect = TreeSelect;
package/react/index.d.ts CHANGED
@@ -14,6 +14,8 @@ export { AvatarGroup } from './components/Avatar';
14
14
  export { IconButton } from './components/IconButton';
15
15
  export { IconLabel } from './components/IconLabel';
16
16
  export { Tooltip } from './components/Tooltip';
17
+ export { DurationInput } from './components/DurationInput';
18
+ export { getDurationString } from './components/DurationInput';
17
19
  export { DatePicker } from './components/DatePicker';
18
20
  export { DatePickerISO } from './components/DatePicker';
19
21
  export { DatePickerLocaleSettings } from './components/DatePicker';
@@ -77,5 +79,7 @@ export { Text } from './components/Text/Text';
77
79
  export { Time } from './components/Text/Time';
78
80
  export { Heading } from './components/Text/Heading';
79
81
  export { BottomNav } from './components/Navigation/BottomNav';
82
+ export { TreeSelect } from './components/TreeSelect';
83
+ export { ContentListItem } from './components/Lists/ContentList';
80
84
  export declare const ToggleBoxNext: any;
81
85
  export declare const reactToAngular1: any;
package/react/index.js CHANGED
@@ -12,8 +12,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Dropdown = exports.DropdownDivider = exports.DropdownLabel = exports.DropdownItem = exports.DropdownFirst = exports.HeadingText = exports.ContentDivider = exports.Divider = exports.Icon = exports.Prop = exports.PropsList = exports.StrechBar = exports.SlidingToolbar = exports.SubNavDivider = exports.SubNav = exports.LeftMenu = exports.TabList = exports.Tab = exports.NavButton = exports.CheckButtonGroup = exports.CheckGroup = exports.CheckboxButton = exports.RadioButtonGroup = exports.Checkbox = exports.RadioGroup = exports.Loader = exports.ButtonGroup = exports.SwitchGroup = exports.Switch = exports.FormLabel = exports.TimePicker = exports.DatePickerISO = exports.DatePicker = exports.Tooltip = exports.IconLabel = exports.IconButton = exports.AvatarGroup = exports.AvatarContentImage = exports.AvatarContentText = exports.AvatarWrapper = exports.Alert = exports.Badge = exports.Label = exports.Popover = exports.SelectWithTemplate = exports.Option = exports.Select = exports.Input = exports.Button = exports.HelloWorld = void 0;
16
- exports.BottomNav = exports.Heading = exports.Time = exports.Text = exports.LoadingOverlay = exports.Spinner = exports.ListItemLoader = exports.Skeleton = exports.WithSizeObserver = exports.SearchBar = exports.CreateButton = exports.DropZone = exports.ThemeSelector = exports.IconPicker = exports.SelectGrid = exports.ToggleBox = exports.Menu = exports.toasted = exports.GridItemCheckWrapper = exports.GridItemTopActions = exports.GridItemFooterActions = exports.GridItemFooterBlock = exports.GridItemSlug = exports.GridItemText = exports.GridItemTitle = exports.GridItemTime = exports.GridItemContentBlock = exports.GridItemFooter = exports.GridItemMedia = exports.GridItemContent = exports.GridItem = exports.GridList = exports.TagInputTest = exports.TagInput = exports.Modal = exports.Carousel = exports.DonutChart = exports.Autocomplete = exports.EmptyState = exports.Tabs = exports.TabContent = exports.TabPanel = exports.TabLabel = exports.Tag = void 0;
15
+ exports.DropdownLabel = exports.DropdownItem = exports.DropdownFirst = exports.HeadingText = exports.ContentDivider = exports.Divider = exports.Icon = exports.Prop = exports.PropsList = exports.StrechBar = exports.SlidingToolbar = exports.SubNavDivider = exports.SubNav = exports.LeftMenu = exports.TabList = exports.Tab = exports.NavButton = exports.CheckButtonGroup = exports.CheckGroup = exports.CheckboxButton = exports.RadioButtonGroup = exports.Checkbox = exports.RadioGroup = exports.Loader = exports.ButtonGroup = exports.SwitchGroup = exports.Switch = exports.FormLabel = exports.TimePicker = exports.DatePickerISO = exports.DatePicker = exports.getDurationString = exports.DurationInput = exports.Tooltip = exports.IconLabel = exports.IconButton = exports.AvatarGroup = exports.AvatarContentImage = exports.AvatarContentText = exports.AvatarWrapper = exports.Alert = exports.Badge = exports.Label = exports.Popover = exports.SelectWithTemplate = exports.Option = exports.Select = exports.Input = exports.Button = exports.HelloWorld = void 0;
16
+ exports.ContentListItem = exports.TreeSelect = exports.BottomNav = exports.Heading = exports.Time = exports.Text = exports.LoadingOverlay = exports.Spinner = exports.ListItemLoader = exports.Skeleton = exports.WithSizeObserver = exports.SearchBar = exports.CreateButton = exports.DropZone = exports.ThemeSelector = exports.IconPicker = exports.SelectGrid = exports.ToggleBox = exports.Menu = exports.toasted = exports.GridItemCheckWrapper = exports.GridItemTopActions = exports.GridItemFooterActions = exports.GridItemFooterBlock = exports.GridItemSlug = exports.GridItemText = exports.GridItemTitle = exports.GridItemTime = exports.GridItemContentBlock = exports.GridItemFooter = exports.GridItemMedia = exports.GridItemContent = exports.GridItem = exports.GridList = exports.TagInputTest = exports.TagInput = exports.Modal = exports.Carousel = exports.DonutChart = exports.Autocomplete = exports.EmptyState = exports.Tabs = exports.TabContent = exports.TabPanel = exports.TabLabel = exports.Tag = exports.Dropdown = exports.DropdownDivider = void 0;
17
17
  var HelloWorld_1 = require("./components/HelloWorld");
18
18
  Object.defineProperty(exports, "HelloWorld", { enumerable: true, get: function () { return HelloWorld_1.HelloWorld; } });
19
19
  var Button_1 = require("./components/Button");
@@ -47,6 +47,10 @@ var IconLabel_1 = require("./components/IconLabel");
47
47
  Object.defineProperty(exports, "IconLabel", { enumerable: true, get: function () { return IconLabel_1.IconLabel; } });
48
48
  var Tooltip_1 = require("./components/Tooltip");
49
49
  Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return Tooltip_1.Tooltip; } });
50
+ var DurationInput_1 = require("./components/DurationInput");
51
+ Object.defineProperty(exports, "DurationInput", { enumerable: true, get: function () { return DurationInput_1.DurationInput; } });
52
+ var DurationInput_2 = require("./components/DurationInput");
53
+ Object.defineProperty(exports, "getDurationString", { enumerable: true, get: function () { return DurationInput_2.getDurationString; } });
50
54
  var DatePicker_1 = require("./components/DatePicker");
51
55
  Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return DatePicker_1.DatePicker; } });
52
56
  var DatePicker_2 = require("./components/DatePicker");
@@ -163,7 +167,6 @@ var DropZone_1 = require("./components/DropZone");
163
167
  Object.defineProperty(exports, "DropZone", { enumerable: true, get: function () { return DropZone_1.DropZone; } });
164
168
  var CreateButton_1 = require("./components/CreateButton");
165
169
  Object.defineProperty(exports, "CreateButton", { enumerable: true, get: function () { return CreateButton_1.CreateButton; } });
166
- // export { TreeSelect } from './components/TreeSelect';
167
170
  var SearchBar_1 = require("./components/SearchBar");
168
171
  Object.defineProperty(exports, "SearchBar", { enumerable: true, get: function () { return SearchBar_1.SearchBar; } });
169
172
  var WithSizeObserver_1 = require("./components/WithSizeObserver");
@@ -187,3 +190,7 @@ var Heading_1 = require("./components/Text/Heading");
187
190
  Object.defineProperty(exports, "Heading", { enumerable: true, get: function () { return Heading_1.Heading; } });
188
191
  var BottomNav_1 = require("./components/Navigation/BottomNav");
189
192
  Object.defineProperty(exports, "BottomNav", { enumerable: true, get: function () { return BottomNav_1.BottomNav; } });
193
+ var TreeSelect_1 = require("./components/TreeSelect");
194
+ Object.defineProperty(exports, "TreeSelect", { enumerable: true, get: function () { return TreeSelect_1.TreeSelect; } });
195
+ var ContentList_1 = require("./components/Lists/ContentList");
196
+ Object.defineProperty(exports, "ContentListItem", { enumerable: true, get: function () { return ContentList_1.ContentListItem; } });