superdesk-ui-framework 2.4.14 → 2.4.18

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 (154) hide show
  1. package/app/index.js +1 -0
  2. package/app/scripts/modals.js +22 -9
  3. package/app/styles/_accessibility.scss +3 -2
  4. package/app/styles/_buttons.scss +17 -0
  5. package/app/styles/_modals.scss +23 -17
  6. package/app/styles/_tooltips.scss +66 -0
  7. package/app/styles/app.scss +1 -0
  8. package/app/styles/components/_sd-toaster.scss +6 -5
  9. package/app/styles/form-elements/_inputs.scss +1 -0
  10. package/app/styles/form-elements/_select-grid.scss +77 -0
  11. package/app/styles/pr-superdesk-theme.scss +3 -1
  12. package/app/styles/primereact/_pr-menu.scss +38 -0
  13. package/app/styles/primereact/_pr-skeleton.scss +35 -0
  14. package/app/styles/variables/_colors.scss +30 -18
  15. package/app-typescript/components/Button.tsx +2 -2
  16. package/app-typescript/components/Dropdown.tsx +0 -1
  17. package/app-typescript/components/DropdownFirst.tsx +2 -2
  18. package/app-typescript/components/IconPicker.tsx +277 -0
  19. package/app-typescript/components/Input.tsx +8 -3
  20. package/app-typescript/components/ListItemLoader.tsx +30 -0
  21. package/app-typescript/components/Menu.tsx +149 -0
  22. package/app-typescript/components/PropsList.tsx +2 -2
  23. package/app-typescript/components/Radio.tsx +19 -10
  24. package/app-typescript/components/Select.tsx +6 -3
  25. package/app-typescript/components/SelectGrid.tsx +233 -0
  26. package/app-typescript/components/SelectWithTemplate.tsx +0 -2
  27. package/app-typescript/components/Skeleton.tsx +48 -0
  28. package/app-typescript/components/Tag.tsx +2 -2
  29. package/app-typescript/components/Toast.tsx +31 -5
  30. package/app-typescript/components/ToastMessage.tsx +9 -16
  31. package/app-typescript/components/ToastText.tsx +2 -4
  32. package/app-typescript/components/ToastWrapper.tsx +4 -4
  33. package/app-typescript/components/Togglebox.tsx +108 -0
  34. package/app-typescript/components/Tooltip.tsx +25 -1
  35. package/app-typescript/index.ts +8 -0
  36. package/dist/components/modals.html +180 -4
  37. package/dist/examples.bundle.css +52 -36
  38. package/dist/examples.bundle.js +5775 -3059
  39. package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +14 -1
  40. package/dist/react/Alerts.tsx +4 -4
  41. package/dist/react/Autocomplete.tsx +17 -17
  42. package/dist/react/Badges.tsx +4 -4
  43. package/dist/react/BigIconFont.tsx +3 -3
  44. package/dist/react/ButtonGroups.tsx +6 -6
  45. package/dist/react/Buttons.tsx +11 -11
  46. package/dist/react/Carousel.tsx +15 -15
  47. package/dist/react/Checkboxs.tsx +10 -10
  48. package/dist/react/DatePicker.tsx +6 -6
  49. package/dist/react/Dropdowns.tsx +15 -15
  50. package/dist/react/EmptyStates.tsx +4 -4
  51. package/dist/react/GridItem.tsx +8 -8
  52. package/dist/react/GridList.tsx +3 -3
  53. package/dist/react/IconButtons.tsx +3 -3
  54. package/dist/react/IconFont.tsx +10 -9
  55. package/dist/react/IconLabels.tsx +4 -4
  56. package/dist/react/IconPicker.tsx +65 -0
  57. package/dist/react/Index.tsx +27 -2
  58. package/dist/react/Inputs.tsx +29 -11
  59. package/dist/react/Labels.tsx +6 -6
  60. package/dist/react/LeftNavigations.tsx +6 -6
  61. package/dist/react/ListItems.tsx +34 -0
  62. package/dist/react/Menu.tsx +159 -0
  63. package/dist/react/Modal.tsx +9 -9
  64. package/dist/react/NavButtons.tsx +7 -7
  65. package/dist/react/Popover.tsx +5 -5
  66. package/dist/react/Radios.tsx +29 -29
  67. package/dist/react/SelectGrid.tsx +121 -0
  68. package/dist/react/Selects.tsx +31 -9
  69. package/dist/react/Switch.tsx +5 -5
  70. package/dist/react/Tabs.tsx +12 -12
  71. package/dist/react/TimePicker.tsx +4 -4
  72. package/dist/react/Toasts.tsx +44 -56
  73. package/dist/react/Togglebox.tsx +51 -0
  74. package/dist/react/Tooltips.tsx +48 -4
  75. package/dist/superdesk-ui.bundle.css +3774 -96
  76. package/dist/superdesk-ui.bundle.js +4503 -2050
  77. package/dist/vendor.bundle.js +53312 -53308
  78. package/examples/pages/components/modals.html +180 -4
  79. package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +14 -1
  80. package/examples/pages/react/Alerts.tsx +4 -4
  81. package/examples/pages/react/Autocomplete.tsx +17 -17
  82. package/examples/pages/react/Badges.tsx +4 -4
  83. package/examples/pages/react/BigIconFont.tsx +3 -3
  84. package/examples/pages/react/ButtonGroups.tsx +6 -6
  85. package/examples/pages/react/Buttons.tsx +11 -11
  86. package/examples/pages/react/Carousel.tsx +15 -15
  87. package/examples/pages/react/Checkboxs.tsx +10 -10
  88. package/examples/pages/react/DatePicker.tsx +6 -6
  89. package/examples/pages/react/Dropdowns.tsx +15 -15
  90. package/examples/pages/react/EmptyStates.tsx +4 -4
  91. package/examples/pages/react/GridItem.tsx +8 -8
  92. package/examples/pages/react/GridList.tsx +3 -3
  93. package/examples/pages/react/IconButtons.tsx +3 -3
  94. package/examples/pages/react/IconFont.tsx +10 -9
  95. package/examples/pages/react/IconLabels.tsx +4 -4
  96. package/examples/pages/react/IconPicker.tsx +65 -0
  97. package/examples/pages/react/Index.tsx +27 -2
  98. package/examples/pages/react/Inputs.tsx +29 -11
  99. package/examples/pages/react/Labels.tsx +6 -6
  100. package/examples/pages/react/LeftNavigations.tsx +6 -6
  101. package/examples/pages/react/ListItems.tsx +34 -0
  102. package/examples/pages/react/Menu.tsx +159 -0
  103. package/examples/pages/react/Modal.tsx +9 -9
  104. package/examples/pages/react/NavButtons.tsx +7 -7
  105. package/examples/pages/react/Popover.tsx +5 -5
  106. package/examples/pages/react/Radios.tsx +29 -29
  107. package/examples/pages/react/SelectGrid.tsx +121 -0
  108. package/examples/pages/react/Selects.tsx +31 -9
  109. package/examples/pages/react/Switch.tsx +5 -5
  110. package/examples/pages/react/Tabs.tsx +12 -12
  111. package/examples/pages/react/TimePicker.tsx +4 -4
  112. package/examples/pages/react/Toasts.tsx +44 -56
  113. package/examples/pages/react/Togglebox.tsx +51 -0
  114. package/examples/pages/react/Tooltips.tsx +48 -4
  115. package/package.json +2 -2
  116. package/patches/@superdesk+primereact+5.0.2-4.patch +13 -0
  117. package/react/components/Button.d.ts +1 -1
  118. package/react/components/Button.js +2 -1
  119. package/react/components/Dropdown.js +0 -1
  120. package/react/components/DropdownFirst.js +1 -1
  121. package/react/components/IconPicker.d.ts +24 -0
  122. package/react/components/IconPicker.js +283 -0
  123. package/react/components/Input.d.ts +2 -1
  124. package/react/components/Input.js +4 -1
  125. package/react/components/ListItemLoader.d.ts +4 -0
  126. package/react/components/ListItemLoader.js +62 -0
  127. package/react/components/Menu.d.ts +59 -0
  128. package/react/components/Menu.js +92 -0
  129. package/react/components/PropsList.d.ts +1 -1
  130. package/react/components/PropsList.js +1 -1
  131. package/react/components/Radio.d.ts +8 -7
  132. package/react/components/Radio.js +1 -1
  133. package/react/components/Select.d.ts +2 -1
  134. package/react/components/Select.js +4 -2
  135. package/react/components/SelectGrid.d.ts +45 -0
  136. package/react/components/SelectGrid.js +179 -0
  137. package/react/components/SelectWithTemplate.js +0 -1
  138. package/react/components/Skeleton.d.ts +30 -0
  139. package/react/components/Skeleton.js +55 -0
  140. package/react/components/Tag.js +1 -1
  141. package/react/components/Toast.d.ts +15 -0
  142. package/react/components/Toast.js +69 -0
  143. package/react/components/ToastMessage.d.ts +18 -0
  144. package/react/components/ToastMessage.js +66 -0
  145. package/react/components/ToastText.d.ts +9 -0
  146. package/react/components/ToastText.js +42 -0
  147. package/react/components/ToastWrapper.d.ts +31 -0
  148. package/react/components/ToastWrapper.js +116 -0
  149. package/react/components/Togglebox.d.ts +27 -0
  150. package/react/components/Togglebox.js +76 -0
  151. package/react/components/Tooltip.d.ts +2 -5
  152. package/react/components/Tooltip.js +48 -7
  153. package/react/index.d.ts +7 -0
  154. package/react/index.js +14 -0
@@ -0,0 +1,51 @@
1
+ import * as React from "react";
2
+ import * as Markup from "../../js/react";
3
+ import { ToggleBox, PropsList, Prop, Button, Badge } from "../../../app-typescript";
4
+
5
+ const ToggleboxDocs = () => {
6
+ const toggleRef = React.useRef();
7
+
8
+ return (
9
+ <section className="docs-page__container">
10
+ <h2 className="docs-page__h2">Togglebox</h2>
11
+ <p className="docs-page__paragraph">Simple toggle box element. It provides toggle() function that can be used with React's ref functionality and control close/open state from outside. Arrow left, Arrow right and Enter are supported keyboard events.</p>
12
+ <Markup.ReactMarkupCodePreview>{`
13
+ <ToggleBox title="togglebox title">togglebox content</ToggleBox>
14
+ `}
15
+ </Markup.ReactMarkupCodePreview>
16
+ <Markup.ReactMarkup>
17
+ <Markup.ReactMarkupPreview>
18
+ <Button text="Toggle programatically" onClick={() => { toggleRef.current.toggle() }} />
19
+ <div style={{ marginTop: "2em" }}>
20
+ <ToggleBox title="Simple togglebox" ref={toggleRef} initiallyOpen={true}>Togglebox content</ToggleBox>
21
+ <ToggleBox title="With badge" badge={<Badge text='2' type='primary' />}>Togglebox content</ToggleBox>
22
+ <ToggleBox title="With different badge" badge={<Badge text='!' type='alert' shape='square' />}>Togglebox content</ToggleBox>
23
+ <ToggleBox title="Togglebox - circled chevron" className="toggle-box--circle">Togglebox content</ToggleBox>
24
+ </div>
25
+ </Markup.ReactMarkupPreview>
26
+ <Markup.ReactMarkupCode>{`
27
+ <Button text="Toggle programatically" onClick={() => { toggleRef.current.toggle() }} />
28
+
29
+ <ToggleBox title="Simple togglebox" ref={toggleRef} initiallyOpen={true}>Togglebox content</ToggleBox>
30
+ <ToggleBox title="With badge" badge={<Badge text='2' type='primary' />}>Togglebox content</ToggleBox>
31
+ <ToggleBox title="With different badge" badge={<Badge text='!' type='alert' shape='square' />}>Togglebox content</ToggleBox>
32
+ <ToggleBox title="Togglebox - circled chevron" className="toggle-box--circle">Togglebox content</ToggleBox>
33
+ `}</Markup.ReactMarkupCode>
34
+ </Markup.ReactMarkup>
35
+
36
+ <h3 className="docs-page__h3">Props</h3>
37
+ <PropsList>
38
+ <Prop name='title' isRequired={true} type='string' default='null' description='Togglebox title' />
39
+ <Prop name='badge' isRequired={false} type='JSX.Element' default='null' description='Badge' />
40
+ <Prop name='hideUsingCSS' isRequired={false} type='boolean' default='false' description='Usefull when working with forms. Content of togglebox will be hidden but remain rendered.' />
41
+ <Prop name='initiallyOpen' isRequired={false} type='boolean' default='false' description='Opens togglebox on initial render' />
42
+ <Prop name='className' isRequired={false} type='string' default='null' description='Style class of the component' />
43
+ <Prop name='onOpen' isRequired={false} type='function' default='null' description='Callback on open event' />
44
+ <Prop name='onClose' isRequired={false} type='function' default='null' description='Callback on close event' />
45
+ </PropsList>
46
+ </section>
47
+ )
48
+ }
49
+
50
+
51
+ export default ToggleboxDocs;
@@ -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.18",
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
  };
@@ -105,7 +105,6 @@ exports.Dropdown = function (_a) {
105
105
  if (toggleRef && menuRef) {
106
106
  core_1.createPopper(toggleRef, menuRef, {
107
107
  placement: checkAlign() ? 'bottom-end' : 'bottom-start',
108
- strategy: 'fixed',
109
108
  });
110
109
  menuRef.style.display = 'block';
111
110
  }
@@ -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
+ };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  interface IProps {
3
3
  value?: string;
4
- label?: string;
4
+ label: string;
5
5
  maxLength?: number;
6
6
  info?: string;
7
7
  error?: string;
@@ -9,6 +9,7 @@ interface IProps {
9
9
  disabled?: boolean;
10
10
  invalid?: boolean;
11
11
  inlineLabel?: boolean;
12
+ labelHidden?: boolean;
12
13
  onChange(newValue: string): void;
13
14
  }
14
15
  interface IState {
@@ -66,8 +66,11 @@ var Input = /** @class */ (function (_super) {
66
66
  'sd-input--disabled': this.props.disabled,
67
67
  'sd-input--invalid': this.props.invalid || this.state.invalid,
68
68
  });
69
+ var labelClasses = classnames_1.default('sd-input__label', {
70
+ 'a11y-only': this.props.labelHidden,
71
+ });
69
72
  return (React.createElement("div", { className: classes },
70
- this.props.label ? React.createElement("label", { className: 'sd-input__label', htmlFor: this.htmlId, id: this.htmlId + 'label' }, this.props.label) : null,
73
+ React.createElement("label", { className: labelClasses, htmlFor: this.htmlId, id: this.htmlId + 'label' }, this.props.label),
71
74
  React.createElement("input", { className: 'sd-input__input', type: 'text', id: this.htmlId, value: this.state.value, "aria-label": this.props.label, "aria-describedby": this.htmlId + 'label', onChange: this.handleChange, disabled: this.props.disabled }),
72
75
  this.props.maxLength ?
73
76
  React.createElement("div", { className: 'sd-input__char-count' },
@@ -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;