superdesk-ui-framework 2.4.14 → 2.4.15

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 (141) hide show
  1. package/app/index.js +1 -0
  2. package/app/scripts/modals.js +23 -9
  3. package/app/styles/_buttons.scss +17 -0
  4. package/app/styles/_modals.scss +23 -17
  5. package/app/styles/_tooltips.scss +66 -0
  6. package/app/styles/app.scss +1 -0
  7. package/app/styles/components/_sd-toaster.scss +6 -5
  8. package/app/styles/form-elements/_inputs.scss +1 -0
  9. package/app/styles/form-elements/_select-grid.scss +77 -0
  10. package/app/styles/pr-superdesk-theme.scss +3 -1
  11. package/app/styles/primereact/_pr-menu.scss +38 -0
  12. package/app/styles/primereact/_pr-skeleton.scss +35 -0
  13. package/app/styles/variables/_colors.scss +30 -18
  14. package/app-typescript/components/Button.tsx +2 -2
  15. package/app-typescript/components/DropdownFirst.tsx +2 -2
  16. package/app-typescript/components/IconPicker.tsx +277 -0
  17. package/app-typescript/components/ListItemLoader.tsx +30 -0
  18. package/app-typescript/components/Menu.tsx +149 -0
  19. package/app-typescript/components/PropsList.tsx +2 -2
  20. package/app-typescript/components/Radio.tsx +19 -10
  21. package/app-typescript/components/SelectGrid.tsx +233 -0
  22. package/app-typescript/components/SelectWithTemplate.tsx +0 -2
  23. package/app-typescript/components/Skeleton.tsx +48 -0
  24. package/app-typescript/components/Toast.tsx +31 -5
  25. package/app-typescript/components/ToastMessage.tsx +9 -16
  26. package/app-typescript/components/ToastText.tsx +2 -4
  27. package/app-typescript/components/ToastWrapper.tsx +4 -4
  28. package/app-typescript/components/Togglebox.tsx +108 -0
  29. package/app-typescript/components/Tooltip.tsx +25 -1
  30. package/app-typescript/index.ts +8 -0
  31. package/dist/components/modals.html +180 -4
  32. package/dist/examples.bundle.css +52 -36
  33. package/dist/examples.bundle.js +5527 -2989
  34. package/dist/react/Alerts.tsx +4 -4
  35. package/dist/react/Autocomplete.tsx +17 -17
  36. package/dist/react/Badges.tsx +4 -4
  37. package/dist/react/BigIconFont.tsx +3 -3
  38. package/dist/react/ButtonGroups.tsx +6 -6
  39. package/dist/react/Buttons.tsx +11 -11
  40. package/dist/react/Carousel.tsx +15 -15
  41. package/dist/react/Checkboxs.tsx +10 -10
  42. package/dist/react/DatePicker.tsx +6 -6
  43. package/dist/react/Dropdowns.tsx +15 -15
  44. package/dist/react/EmptyStates.tsx +4 -4
  45. package/dist/react/GridItem.tsx +8 -8
  46. package/dist/react/GridList.tsx +3 -3
  47. package/dist/react/IconButtons.tsx +3 -3
  48. package/dist/react/IconFont.tsx +10 -9
  49. package/dist/react/IconLabels.tsx +4 -4
  50. package/dist/react/IconPicker.tsx +65 -0
  51. package/dist/react/Index.tsx +27 -2
  52. package/dist/react/Inputs.tsx +9 -9
  53. package/dist/react/Labels.tsx +6 -6
  54. package/dist/react/LeftNavigations.tsx +6 -6
  55. package/dist/react/ListItems.tsx +34 -0
  56. package/dist/react/Menu.tsx +159 -0
  57. package/dist/react/Modal.tsx +9 -9
  58. package/dist/react/NavButtons.tsx +7 -7
  59. package/dist/react/Popover.tsx +5 -5
  60. package/dist/react/Radios.tsx +29 -29
  61. package/dist/react/SelectGrid.tsx +121 -0
  62. package/dist/react/Selects.tsx +8 -8
  63. package/dist/react/Switch.tsx +5 -5
  64. package/dist/react/Tabs.tsx +12 -12
  65. package/dist/react/TimePicker.tsx +4 -4
  66. package/dist/react/Toasts.tsx +44 -56
  67. package/dist/react/Togglebox.tsx +51 -0
  68. package/dist/react/Tooltips.tsx +48 -4
  69. package/dist/superdesk-ui.bundle.css +3771 -94
  70. package/dist/superdesk-ui.bundle.js +4468 -2037
  71. package/dist/vendor.bundle.js +53380 -53380
  72. package/examples/pages/components/modals.html +180 -4
  73. package/examples/pages/react/Alerts.tsx +4 -4
  74. package/examples/pages/react/Autocomplete.tsx +17 -17
  75. package/examples/pages/react/Badges.tsx +4 -4
  76. package/examples/pages/react/BigIconFont.tsx +3 -3
  77. package/examples/pages/react/ButtonGroups.tsx +6 -6
  78. package/examples/pages/react/Buttons.tsx +11 -11
  79. package/examples/pages/react/Carousel.tsx +15 -15
  80. package/examples/pages/react/Checkboxs.tsx +10 -10
  81. package/examples/pages/react/DatePicker.tsx +6 -6
  82. package/examples/pages/react/Dropdowns.tsx +15 -15
  83. package/examples/pages/react/EmptyStates.tsx +4 -4
  84. package/examples/pages/react/GridItem.tsx +8 -8
  85. package/examples/pages/react/GridList.tsx +3 -3
  86. package/examples/pages/react/IconButtons.tsx +3 -3
  87. package/examples/pages/react/IconFont.tsx +10 -9
  88. package/examples/pages/react/IconLabels.tsx +4 -4
  89. package/examples/pages/react/IconPicker.tsx +65 -0
  90. package/examples/pages/react/Index.tsx +27 -2
  91. package/examples/pages/react/Inputs.tsx +9 -9
  92. package/examples/pages/react/Labels.tsx +6 -6
  93. package/examples/pages/react/LeftNavigations.tsx +6 -6
  94. package/examples/pages/react/ListItems.tsx +34 -0
  95. package/examples/pages/react/Menu.tsx +159 -0
  96. package/examples/pages/react/Modal.tsx +9 -9
  97. package/examples/pages/react/NavButtons.tsx +7 -7
  98. package/examples/pages/react/Popover.tsx +5 -5
  99. package/examples/pages/react/Radios.tsx +29 -29
  100. package/examples/pages/react/SelectGrid.tsx +121 -0
  101. package/examples/pages/react/Selects.tsx +8 -8
  102. package/examples/pages/react/Switch.tsx +5 -5
  103. package/examples/pages/react/Tabs.tsx +12 -12
  104. package/examples/pages/react/TimePicker.tsx +4 -4
  105. package/examples/pages/react/Toasts.tsx +44 -56
  106. package/examples/pages/react/Togglebox.tsx +51 -0
  107. package/examples/pages/react/Tooltips.tsx +48 -4
  108. package/package.json +2 -2
  109. package/patches/@superdesk+primereact+5.0.2-4.patch +13 -0
  110. package/react/components/Button.d.ts +1 -1
  111. package/react/components/Button.js +2 -1
  112. package/react/components/DropdownFirst.js +1 -1
  113. package/react/components/IconPicker.d.ts +24 -0
  114. package/react/components/IconPicker.js +283 -0
  115. package/react/components/ListItemLoader.d.ts +4 -0
  116. package/react/components/ListItemLoader.js +62 -0
  117. package/react/components/Menu.d.ts +59 -0
  118. package/react/components/Menu.js +92 -0
  119. package/react/components/PropsList.d.ts +1 -1
  120. package/react/components/PropsList.js +1 -1
  121. package/react/components/Radio.d.ts +8 -7
  122. package/react/components/Radio.js +1 -1
  123. package/react/components/SelectGrid.d.ts +45 -0
  124. package/react/components/SelectGrid.js +179 -0
  125. package/react/components/SelectWithTemplate.js +0 -1
  126. package/react/components/Skeleton.d.ts +30 -0
  127. package/react/components/Skeleton.js +55 -0
  128. package/react/components/Toast.d.ts +15 -0
  129. package/react/components/Toast.js +69 -0
  130. package/react/components/ToastMessage.d.ts +18 -0
  131. package/react/components/ToastMessage.js +66 -0
  132. package/react/components/ToastText.d.ts +9 -0
  133. package/react/components/ToastText.js +42 -0
  134. package/react/components/ToastWrapper.d.ts +31 -0
  135. package/react/components/ToastWrapper.js +116 -0
  136. package/react/components/Togglebox.d.ts +27 -0
  137. package/react/components/Togglebox.js +76 -0
  138. package/react/components/Tooltip.d.ts +2 -5
  139. package/react/components/Tooltip.js +48 -7
  140. package/react/index.d.ts +7 -0
  141. package/react/index.js +14 -0
@@ -15,7 +15,8 @@ export default class TooltipDoc extends React.Component {
15
15
  </Tooltip>
16
16
  `}
17
17
  </Markup.ReactMarkupCodePreview>
18
- <p className="docs-page__paragraph">Chose one of 4 placement options (<code>’left’</code>, <code>’right’</code>, <code>’bottom’</code>, and <code>’top’</code>). The default value is <code>’top’</code> and will be rendered so without explicitly specifying it.</p>
18
+ <h3 className="docs-page__h3">Default</h3>
19
+ <p className="docs-page__paragraph">Chose one of 4 placement options (<code>’left’</code>, <code>’right’</code>, <code>down</code>, and <code>’top’</code>). The default value is <code>’top’</code> and will be rendered so without explicitly specifying it.</p>
19
20
  <Markup.ReactMarkup>
20
21
  <Markup.ReactMarkupPreview>
21
22
  <div className="docs-page__content-row docs-page__content-row--no-margin">
@@ -30,7 +31,7 @@ export default class TooltipDoc extends React.Component {
30
31
  </Tooltip>
31
32
  <Tooltip text="Right on!" flow='right'>
32
33
  <Button text='right' onClick={() => false} />
33
- </Tooltip>
34
+ </Tooltip>
34
35
  </div>
35
36
  </Markup.ReactMarkupPreview>
36
37
  <Markup.ReactMarkupCode>{`
@@ -50,10 +51,53 @@ export default class TooltipDoc extends React.Component {
50
51
  </Markup.ReactMarkupCode>
51
52
  </Markup.ReactMarkup>
52
53
 
54
+ <h3 className="docs-page__h3">Appended to body</h3>
55
+ <p className="docs-page__paragraph">
56
+ Appends tooltip element to body therefore avoids overflow issues. For performance reasons don't use it if not necessary.
57
+ </p>
58
+ <Markup.ReactMarkup>
59
+ <Markup.ReactMarkupPreview>
60
+
61
+ <div className="docs-page__content-row docs-page__content-row--no-margin">
62
+
63
+ <div className="docs-page__content-row docs-page__content-row--no-margin" style={{background: "#ebebeb", width: "100%", padding: "5px", overflow: "hidden"}}>
64
+ <Tooltip text="I'm appended to body" flow='top' appendToBody={true}>
65
+ <Button text='top' onClick={() => false} />
66
+ </Tooltip>
67
+ <Tooltip text="I'm appended to body" flow='down' appendToBody={true}>
68
+ <Button text='Down' onClick={() => false} />
69
+ </Tooltip>
70
+ <Tooltip text="I'm appended to body" flow='left' appendToBody={true}>
71
+ <Button text='left' onClick={() => false} />
72
+ </Tooltip>
73
+ <Tooltip text="I'm appended to body" flow='right' appendToBody={true}>
74
+ <Button text='right' onClick={() => false} />
75
+ </Tooltip>
76
+ </div>
77
+ </div>
78
+ </Markup.ReactMarkupPreview>
79
+ <Markup.ReactMarkupCode>{`
80
+ <Tooltip text="I'm appended to body" flow='top' appendToBody={true}>
81
+ <Button text='top' onClick={() => false} />
82
+ </Tooltip>
83
+ <Tooltip text="I'm appended to body" flow='down' appendToBody={true}>
84
+ <Button text='Down' onClick={() => false} />
85
+ </Tooltip>
86
+ <Tooltip text="I'm appended to body" flow='left' appendToBody={true}>
87
+ <Button text='left' onClick={() => false} />
88
+ </Tooltip>
89
+ <Tooltip text="I'm appended to body" flow='right' appendToBody={true}>
90
+ <Button text='right' onClick={() => false} />
91
+ </Tooltip>
92
+ `}
93
+ </Markup.ReactMarkupCode>
94
+ </Markup.ReactMarkup>
95
+
53
96
  <h3 className="docs-page__h3">Props</h3>
54
97
  <PropsList>
55
- <Prop name='text' isRequered={true} type='string' default='/' description='Tooltip text value.' />
56
- <Prop name='flow' isRequered={false} type='top | left | right | down' default='top' description='Position of tooltip text.' />
98
+ <Prop name='text' isRequired={true} type='string' default='/' description='Tooltip text value.' />
99
+ <Prop name='flow' isRequired={false} type='top | left | right | down' default='top' description='Position of tooltip text.' />
100
+ <Prop name='appendToBody' isRequired={false} type='boolean' default='false' description='Appends element to body therefore avoids overflow issues.' />
57
101
  </PropsList>
58
102
  </section>
59
103
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superdesk-ui-framework",
3
- "version": "2.4.14",
3
+ "version": "2.4.15",
4
4
  "license": "AGPL-3.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -82,12 +82,12 @@
82
82
  "dependencies": {
83
83
  "@material-ui/lab": "^4.0.0-alpha.56",
84
84
  "@popperjs/core": "^2.4.0",
85
+ "@superdesk/primereact": "^5.0.2-4",
85
86
  "@types/node": "^14.10.2",
86
87
  "chart.js": "^2.9.3",
87
88
  "date-fns": "2.7.0",
88
89
  "popper.js": "1.14.4",
89
90
  "primeicons": "2.0.0",
90
- "@superdesk/primereact": "5.0.2-2",
91
91
  "react-id-generator": "^3.0.0",
92
92
  "react-popper": "^2.2.3"
93
93
  }
@@ -0,0 +1,13 @@
1
+ diff --git a/node_modules/@superdesk/primereact/components/tieredmenu/TieredMenu.d.ts b/node_modules/@superdesk/primereact/components/tieredmenu/TieredMenu.d.ts
2
+ index a91da27..3dd7822 100644
3
+ --- a/node_modules/@superdesk/primereact/components/tieredmenu/TieredMenu.d.ts
4
+ +++ b/node_modules/@superdesk/primereact/components/tieredmenu/TieredMenu.d.ts
5
+ @@ -9,7 +9,7 @@ interface TieredMenuProps {
6
+ style?: object;
7
+ className?: string;
8
+ autoZIndex?: boolean;
9
+ - bazeZIndex?: number;
10
+ + baseZIndex?: number;
11
+ appendTo?: any;
12
+ onShow?(e: Event): void;
13
+ onHide?(e: Event): void;
@@ -8,7 +8,7 @@ interface IButtonBase {
8
8
  icon?: string;
9
9
  disabled?: boolean;
10
10
  iconOnly?: boolean;
11
- onClick(): void;
11
+ onClick(event: React.MouseEvent<HTMLButtonElement, MouseEvent>): void;
12
12
  'data-test-id'?: string;
13
13
  }
14
14
  interface IPropsButton extends IButtonBase {
@@ -46,6 +46,7 @@ var Button = /** @class */ (function (_super) {
46
46
  }
47
47
  Button.prototype.render = function () {
48
48
  var _a;
49
+ var _this = this;
49
50
  var classes = classnames_1.default('btn', (_a = {
50
51
  'btn--expanded': this.props.expand
51
52
  },
@@ -57,7 +58,7 @@ var Button = /** @class */ (function (_super) {
57
58
  _a['btn--ui-dark'] = this.props.theme === 'dark',
58
59
  _a['btn--icon-only-circle'] = this.props.shape === 'round' && this.props.iconOnly,
59
60
  _a));
60
- return (React.createElement("button", { id: this.props.id, className: classes, tabIndex: 0, onClick: this.props.disabled ? function () { return false; } : this.props.onClick, "aria-label": this.props.iconOnly ? this.props.text : '', "data-test-id": this.props['data-test-id'] },
61
+ return (React.createElement("button", { id: this.props.id, className: classes, tabIndex: 0, onClick: this.props.disabled ? function () { return false; } : function (event) { return _this.props.onClick(event); }, "aria-label": this.props.iconOnly ? this.props.text : '', "data-test-id": this.props['data-test-id'] },
61
62
  this.props.icon ? React.createElement(Icon_1.Icon, { name: this.props.icon }) : null,
62
63
  this.props.iconOnly ? null : this.props.text));
63
64
  };
@@ -47,7 +47,7 @@ exports.DropdownFirst = function (_a) {
47
47
  return function () {
48
48
  var context = children;
49
49
  clearTimeout(inDebounce);
50
- inDebounce = setTimeout(function () { return calculate.apply(context); }, delay);
50
+ inDebounce = window.setTimeout(function () { return calculate.apply(context); }, delay);
51
51
  };
52
52
  };
53
53
  React.useLayoutEffect(function () {
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { IItem } from "./SelectGrid";
3
+ interface IProps {
4
+ label?: string;
5
+ filterPlaceholder?: string;
6
+ translateFunction?: (text: string) => string;
7
+ value: string;
8
+ onChange(icon: string): void;
9
+ }
10
+ interface IState {
11
+ icons: Array<IItem>;
12
+ }
13
+ export declare class IconPicker extends React.PureComponent<IProps, IState> {
14
+ constructor(props: IProps);
15
+ componentDidMount(): void;
16
+ getItems: (searchString: string | null) => Promise<Array<IItem>>;
17
+ onChange: (item: IItem) => void;
18
+ triggerTemplate: (props: any) => JSX.Element;
19
+ itemTemplate: ({ item }: {
20
+ item: IItem | null;
21
+ }) => JSX.Element | null;
22
+ render(): JSX.Element;
23
+ }
24
+ export {};
@@ -0,0 +1,283 @@
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 (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
35
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
36
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
37
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
38
+ r[k] = a[j];
39
+ return r;
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.IconPicker = void 0;
43
+ var React = __importStar(require("react"));
44
+ // @ts-ignore
45
+ var iconFont = __importStar(require("../../app/styles/_icon-font.scss"));
46
+ var Button_1 = require("./Button");
47
+ var Icon_1 = require("./Icon");
48
+ var SelectGrid_1 = require("./SelectGrid");
49
+ var IconPicker = /** @class */ (function (_super) {
50
+ __extends(IconPicker, _super);
51
+ function IconPicker(props) {
52
+ var _this = _super.call(this, props) || this;
53
+ _this.getItems = function (searchString) {
54
+ return new Promise(function (resolve) {
55
+ var icons = __spreadArrays(_this.state.icons);
56
+ if (searchString) {
57
+ icons = icons.filter(function (icon) { return (icon.value.toLowerCase().includes(searchString) ||
58
+ icon.label.toLowerCase().includes(searchString)); });
59
+ }
60
+ resolve(icons);
61
+ });
62
+ };
63
+ _this.onChange = function (item) {
64
+ _this.props.onChange(item.value);
65
+ };
66
+ _this.triggerTemplate = function (props) { return React.createElement(Button_1.Button, { icon: _this.props.value, text: _this.props.value, onClick: function (e) { props.onClick(e); }, iconOnly: true }); };
67
+ _this.itemTemplate = function (_a) {
68
+ var item = _a.item;
69
+ return item ?
70
+ (React.createElement(React.Fragment, null,
71
+ React.createElement(Icon_1.Icon, { name: item.value }),
72
+ React.createElement("span", { className: "sd-text__normal sd-padding-t--1" }, item.label))) : null;
73
+ };
74
+ _this.state = { icons: [] };
75
+ return _this;
76
+ }
77
+ IconPicker.prototype.componentDidMount = function () {
78
+ var translateFunction = this.props.translateFunction ?
79
+ this.props.translateFunction : function (text) { return text; };
80
+ this.setState({
81
+ icons: getIcons(translateFunction),
82
+ });
83
+ };
84
+ IconPicker.prototype.render = function () {
85
+ return (React.createElement(SelectGrid_1.SelectGrid, { label: this.props.label || "Icon", filterPlaceholder: this.props.filterPlaceholder || "Search...", getItems: this.getItems, onChange: this.onChange, itemTemplate: this.itemTemplate, triggerTemplate: this.triggerTemplate }));
86
+ };
87
+ return IconPicker;
88
+ }(React.PureComponent));
89
+ exports.IconPicker = IconPicker;
90
+ var getIcons = function (translateFunction) {
91
+ var translatedIconNameMap = {
92
+ 'add-gallery': 'Add Gallery',
93
+ 'add-image': 'Add Image',
94
+ 'adjust': 'Adjust',
95
+ 'align-center': 'Align Center',
96
+ 'align-justify': 'Align Justify',
97
+ 'align-left': 'Align Left',
98
+ 'align-right': 'Align Right',
99
+ 'amp': 'AMP',
100
+ 'analytics': 'Analytics',
101
+ 'archive': 'Archive',
102
+ 'arrow-left': 'Arrow Left',
103
+ 'arrow-right': 'Arrow Right',
104
+ 'arrow-small': 'Arrow Small',
105
+ 'ascending': 'Ascending',
106
+ 'assign': 'Assign',
107
+ 'attachment': 'Attachment',
108
+ 'attachment-large': 'Attachment Large',
109
+ 'audio': 'Audio',
110
+ 'backward-thin': 'Backward Thin',
111
+ 'ban-circle': 'Ban Circle',
112
+ 'bell': 'Bell',
113
+ 'bold': 'Bold',
114
+ 'broadcast': 'Broadcast',
115
+ 'broadcast-create': 'Broadcast Create',
116
+ 'business': 'Business',
117
+ 'calendar': 'Calendar',
118
+ 'calendar-list': 'Calendar List',
119
+ 'chevron-down-thin': 'Chevron Down Thin',
120
+ 'chevron-left-thin': 'Chevron Left Thin',
121
+ 'chevron-right-thin': 'Chevron Right Thin',
122
+ 'chevron-up-thin': 'Chevron Up Thin',
123
+ 'clear-all': 'Clear All',
124
+ 'clear-format': 'Clear Format',
125
+ 'close-small': 'Close Small',
126
+ 'close-thick': 'Close Thick',
127
+ 'code': 'Code',
128
+ 'collapse': 'Collapse',
129
+ 'comment': 'Comment',
130
+ 'composite': 'Composite',
131
+ 'copy': 'Copy',
132
+ 'crop': 'Crop',
133
+ 'cut': 'Cut',
134
+ 'descending': 'Descending',
135
+ 'dots': 'Dots',
136
+ 'dots-vertical': 'Dots Vertical',
137
+ 'download': 'Download',
138
+ 'download-alt': 'Download Alternate',
139
+ 'edit-line': 'Edit Line',
140
+ 'envelope': 'Envelope',
141
+ 'event': 'Event',
142
+ 'exclamation-sign': 'Exclamation Sign',
143
+ 'expand': 'Expand',
144
+ 'expand-thin': 'Expand Thin',
145
+ 'external': 'External',
146
+ 'eye-open': 'Eye Open',
147
+ 'facebook': 'Facebook',
148
+ 'facebook-circle': 'Facebook Circle',
149
+ 'fast_forward': 'Fast Forward',
150
+ 'fast_rewind': 'Fast Rewind',
151
+ 'fetch-as': 'Fetch As',
152
+ 'file': 'File',
153
+ 'filter-large': 'Filter Large',
154
+ 'flip-horizontal': 'Flip Horizontal',
155
+ 'flip-vertical': 'Flip Vertical',
156
+ 'folder-close': 'Folder Close',
157
+ 'folder-open': 'Folder Open',
158
+ 'font': 'Font',
159
+ 'forward-thin': 'Forward Thin',
160
+ 'fullscreen': 'Fullscreen',
161
+ 'globe': 'Globe',
162
+ 'graphic': 'Graphic',
163
+ 'grid-view': 'Grid View',
164
+ 'grid-view-large': 'Grid View Large',
165
+ 'heading-1': 'Heading 1',
166
+ 'heading-2': 'Heading 2',
167
+ 'heading-3': 'Heading 3',
168
+ 'heading-4': 'Heading 4',
169
+ 'heading-5': 'Heading 5',
170
+ 'heading-6': 'Heading 6',
171
+ 'heart': 'Heart',
172
+ 'help-large': 'Help Large',
173
+ 'highlight-package': 'Highlight Package',
174
+ 'home': 'Home',
175
+ 'indent-left': 'Indent Left',
176
+ 'indent-right': 'Indent Right',
177
+ 'info-large': 'Info Large',
178
+ 'info-sign': 'Info Sign',
179
+ 'ingest': 'Ingest',
180
+ 'instagram': 'Instagram',
181
+ 'italic': 'Italic',
182
+ 'kanban-view': 'Kanban View',
183
+ 'kill': 'Kill',
184
+ 'link': 'Link',
185
+ 'linked-in': 'LinkedIn',
186
+ 'linked-in-circle': 'LinkedIn Circle',
187
+ 'list-alt': 'List Alternate',
188
+ 'list-menu': 'List Menu',
189
+ 'list-plus': 'List Plus',
190
+ 'list-view': 'List View',
191
+ 'lock': 'Lock',
192
+ 'map-marker': 'Map Marker',
193
+ 'minus-sign': 'Minus Sign',
194
+ 'minus-small': 'Minus Small',
195
+ 'mobile': 'Mobile',
196
+ 'move': 'Move',
197
+ 'multi-star': 'Multi Start',
198
+ 'multiedit': 'Multi Edit',
199
+ 'new-doc': 'New Document',
200
+ 'ok': 'Okay',
201
+ 'ordered-list': 'Ordered List',
202
+ 'package-create': 'Package Create',
203
+ 'package-plus': 'Package Plus',
204
+ 'paragraph': 'Paragraph',
205
+ 'paste': 'Paste',
206
+ 'pause': 'Pause',
207
+ 'paywall': 'Paywall',
208
+ 'pencil': 'Pencil',
209
+ 'phone': 'Phone',
210
+ 'photo': 'Photo',
211
+ 'pick': 'Pick',
212
+ 'picture': 'Picture',
213
+ 'pin': 'Pin',
214
+ 'play': 'Play',
215
+ 'plus-large': 'Plus Large',
216
+ 'plus-sign': 'Plus Sign',
217
+ 'plus-small': 'Plus Small',
218
+ 'post': 'Post',
219
+ 'preformatted': 'Preformatted',
220
+ 'preview-mode': 'Preview Mode',
221
+ 'print': 'Print',
222
+ 'question-sign': 'Question Sign',
223
+ 'quote': 'Quote',
224
+ 'random': 'Random',
225
+ 'recurring': 'Recurring',
226
+ 'redo': 'Redo',
227
+ 'refresh': 'Refresh',
228
+ 'remove-sign': 'Remove Sign',
229
+ 'repeat': 'Repeat',
230
+ 'retweet': 'Retweet',
231
+ 'revert': 'Revert',
232
+ 'rotate-left': 'Rotate Left',
233
+ 'rotate-right': 'Rotate Right',
234
+ 'search': 'Search',
235
+ 'settings': 'Settings',
236
+ 'share-alt': 'Share Alternate',
237
+ 'signal': 'Signal',
238
+ 'skip_next': 'Skip Next',
239
+ 'skip_previous': 'Skip Previous',
240
+ 'slideshow': 'Slideshow',
241
+ 'star': 'Star',
242
+ 'star-empty': 'Star Empty',
243
+ 'stop': 'Stop',
244
+ 'stream': 'Stream',
245
+ 'strikethrough': 'Strikethrough',
246
+ 'subscript': 'Subscript',
247
+ 'suggestion': 'Suggestion',
248
+ 'superscript': 'Superscript',
249
+ 'switches': 'Switches',
250
+ 'table': 'Table',
251
+ 'takes-package': 'Takes Package',
252
+ 'tasks': 'Tasks',
253
+ 'text': 'Text',
254
+ 'text-format': 'Text Format',
255
+ 'th': 'Table Header',
256
+ 'th-large': 'Table Header Large',
257
+ 'th-list': 'Table Header List',
258
+ 'time': 'Time',
259
+ 'to-lowercase': 'To Lowercase',
260
+ 'to-uppercase': 'To Uppercase',
261
+ 'trash': 'Trash',
262
+ 'twitter': 'Twitter',
263
+ 'twitter-circle': 'Twitter Circle',
264
+ 'underline': 'Underline',
265
+ 'undo': 'Undo',
266
+ 'unlocked': 'Unlocked',
267
+ 'unordered-list': 'Unordered List',
268
+ 'unspike': 'Unspike',
269
+ 'upload': 'Upload',
270
+ 'user': 'User',
271
+ 'video': 'Video',
272
+ 'warning-sign': 'Warning Sign',
273
+ 'zoom-in': 'Zoom In',
274
+ 'zoom-out': 'Zoom Out',
275
+ };
276
+ return iconFont.icon
277
+ .split(', ')
278
+ .sort()
279
+ .map(function (icon) { return ({
280
+ value: icon,
281
+ label: translatedIconNameMap[icon] ? translateFunction(translatedIconNameMap[icon]) : icon,
282
+ }); });
283
+ };
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ export declare class ListItemLoader extends React.Component<{}> {
3
+ render(): JSX.Element;
4
+ }
@@ -0,0 +1,62 @@
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 (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.ListItemLoader = void 0;
36
+ var React = __importStar(require("react"));
37
+ var Skeleton_1 = require("./Skeleton");
38
+ var ListItemLoader = /** @class */ (function (_super) {
39
+ __extends(ListItemLoader, _super);
40
+ function ListItemLoader() {
41
+ return _super !== null && _super.apply(this, arguments) || this;
42
+ }
43
+ ListItemLoader.prototype.render = function () {
44
+ return (React.createElement("div", { className: "sd-list-item sd-shadow--z1 sd-list-item--no-hover" },
45
+ React.createElement("div", { className: "sd-list-item__border" }),
46
+ React.createElement("div", { className: "sd-list-item__column" },
47
+ React.createElement(Skeleton_1.Skeleton, { shape: "circle", size: "2rem" })),
48
+ React.createElement("div", { className: "sd-list-item__column sd-padding-y--1" },
49
+ React.createElement(Skeleton_1.Skeleton, { shape: "circle", size: "2rem", className: "sd-margin-b--0-5" }),
50
+ React.createElement(Skeleton_1.Skeleton, { shape: "circle", size: "2rem" })),
51
+ React.createElement("div", { className: "sd-list-item__column sd-list-item__column--grow sd-list-item__column--no-border" },
52
+ React.createElement("div", { className: "sd-list-item__row sd-padding-b--0-5" },
53
+ React.createElement(Skeleton_1.Skeleton, { borderRadius: "16px" }),
54
+ React.createElement(Skeleton_1.Skeleton, { width: "10rem", borderRadius: "16px", className: "sd-margin-l--0-5" })),
55
+ React.createElement("div", { className: "sd-list-item__row" },
56
+ React.createElement(Skeleton_1.Skeleton, { width: "8rem", borderRadius: "16px" }),
57
+ React.createElement(Skeleton_1.Skeleton, { width: "8rem", borderRadius: "16px", className: "sd-margin-l--0-5" }),
58
+ React.createElement(Skeleton_1.Skeleton, { width: "8rem", borderRadius: "16px", className: "sd-margin-l--0-5" })))));
59
+ };
60
+ return ListItemLoader;
61
+ }(React.Component));
62
+ exports.ListItemLoader = ListItemLoader;
@@ -0,0 +1,59 @@
1
+ import React, { SyntheticEvent } from 'react';
2
+ /**
3
+ * Known issues:
4
+ *
5
+ * 1. Menu detaches from trigger element when scrolling.
6
+ * Closing the menu on scroll would fix it,
7
+ * but in case there are more items than
8
+ * can fit in the screen, some wouldn't be selectable.
9
+ *
10
+ * 2. In some cases, menus will be rendered outside of viewport.
11
+ * When the menu is triggered, it will check whether
12
+ * there is more space available on the left or right
13
+ * and will render submenus in that direction.
14
+ * It only checks available space relatively to the trigger element.
15
+ * If there's no space left after n submenus have been opened,
16
+ * it won't change direction.
17
+ *
18
+ * Accessibility features:
19
+ * * ESC closes the last sub-menu or entire menu
20
+ * * When menu is closed via ESC, focus returns to the element that was focused before opening the menu
21
+ * * Focuses the first item on activation
22
+ * * Focuses first sub-menu item when sub-menu opens
23
+ * * ENTER/ESC or arrow keys work for entering/leaving submenus
24
+ */
25
+ export declare type IMenuItem = IMenuBranch | IMenuLeaf | ISeparator;
26
+ /**
27
+ * Available icons are listed here:
28
+ * https://ui-framework.superdesk.org/#/components/icons
29
+ */
30
+ declare type IIconName = string;
31
+ interface ISeparator {
32
+ separator: true;
33
+ }
34
+ interface IMenuLeaf {
35
+ label: string;
36
+ icon?: IIconName;
37
+ onClick(): void;
38
+ disabled?: boolean;
39
+ }
40
+ interface IMenuBranch {
41
+ label: string;
42
+ icon?: IIconName;
43
+ children: Array<IMenuItem>;
44
+ }
45
+ interface IProps {
46
+ items: Array<IMenuItem>;
47
+ children: (toggle: (event: SyntheticEvent) => void) => JSX.Element;
48
+ zIndex?: number;
49
+ }
50
+ export declare class Menu extends React.Component<IProps, {}> {
51
+ private menu;
52
+ private focusedBefore;
53
+ constructor(props: IProps);
54
+ private toPrimeReactInterface;
55
+ private toggle;
56
+ private close;
57
+ render(): JSX.Element;
58
+ }
59
+ export {};