linear-react-components-ui 1.0.10-beta.2 → 1.0.10-beta.21

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 (281) hide show
  1. package/.eslintrc.json +1 -0
  2. package/.vscode/settings.json +1 -1
  3. package/README.md +19 -12
  4. package/lib/@types/Align.d.ts +2 -1
  5. package/lib/alerts/AlertContainer.d.ts +2 -0
  6. package/lib/alerts/AlertProvider.d.ts +2 -0
  7. package/lib/alerts/BaseAlert.d.ts +2 -0
  8. package/lib/alerts/Message.d.ts +2 -0
  9. package/lib/alerts/Message.js +1 -1
  10. package/lib/alerts/alert.spec.js +133 -0
  11. package/lib/alerts/helpers.d.ts +2 -0
  12. package/lib/alerts/index.d.ts +2 -0
  13. package/lib/alerts/types.d.ts +3 -1
  14. package/lib/alerts/withAlert.d.ts +2 -0
  15. package/lib/assets/styles/dialog.scss +9 -6
  16. package/lib/assets/styles/drawers.scss +9 -0
  17. package/lib/assets/styles/effects.scss +2 -2
  18. package/lib/assets/styles/radio.scss +52 -8
  19. package/lib/assets/styles/table.scss +30 -0
  20. package/lib/assets/styles/tooltip.scss +42 -2
  21. package/lib/avatar/avatar.spec.js +190 -0
  22. package/lib/badge/badge.spec.js +127 -0
  23. package/lib/buttons/ActivateButton.d.ts +2 -0
  24. package/lib/buttons/AddButton.d.ts +2 -0
  25. package/lib/buttons/Button.d.ts +2 -0
  26. package/lib/buttons/CancelButton.d.ts +2 -0
  27. package/lib/buttons/DangerButton.d.ts +2 -0
  28. package/lib/buttons/DefaultButton.d.ts +2 -0
  29. package/lib/buttons/DefaultButton.js +14 -4
  30. package/lib/buttons/DestroyButton.d.ts +2 -0
  31. package/lib/buttons/EditButton.d.ts +2 -0
  32. package/lib/buttons/InactivateButton.d.ts +2 -0
  33. package/lib/buttons/InfoButton.d.ts +2 -0
  34. package/lib/buttons/PrimaryButton.d.ts +2 -0
  35. package/lib/buttons/RestoreButton.d.ts +2 -0
  36. package/lib/buttons/SaveButton.d.ts +2 -0
  37. package/lib/buttons/SpinnerLoading.js +230 -0
  38. package/lib/buttons/SuccessButton.d.ts +2 -0
  39. package/lib/buttons/WarningButton.d.ts +2 -0
  40. package/lib/buttons/buttons.spec.js +504 -0
  41. package/lib/buttons/index.d.ts +2 -0
  42. package/lib/buttons/split_button/index.d.ts +2 -0
  43. package/lib/buttons/types.d.ts +6 -2
  44. package/lib/calendar/calendar.spec.js +171 -0
  45. package/lib/checkbox/checkbox.spec.js +215 -0
  46. package/lib/dialog/Alert.d.ts +3 -0
  47. package/lib/dialog/Custom.d.ts +3 -0
  48. package/lib/dialog/Custom.js +1 -1
  49. package/lib/dialog/Error.d.ts +3 -0
  50. package/lib/dialog/Information.d.ts +3 -0
  51. package/lib/dialog/Question.d.ts +3 -0
  52. package/lib/dialog/Warning.d.ts +3 -0
  53. package/lib/dialog/base/Content.d.ts +3 -0
  54. package/lib/dialog/base/Footer.d.ts +3 -0
  55. package/lib/dialog/base/Header.d.ts +3 -0
  56. package/lib/dialog/base/Header.js +12 -1
  57. package/lib/dialog/base/index.d.ts +3 -0
  58. package/lib/dialog/base/index.js +78 -16
  59. package/lib/dialog/dialog.spec.js +488 -0
  60. package/lib/dialog/form/index.d.ts +7 -3
  61. package/lib/dialog/form/index.js +11 -4
  62. package/lib/dialog/index.d.ts +3 -0
  63. package/lib/dialog/types.d.ts +10 -4
  64. package/lib/drawer/Content.d.ts +2 -0
  65. package/lib/drawer/Drawer.d.ts +3 -1
  66. package/lib/drawer/Drawer.js +22 -2
  67. package/lib/drawer/Drawer.spec.js +258 -0
  68. package/lib/drawer/Header.d.ts +2 -0
  69. package/lib/drawer/helpers.d.ts +2 -0
  70. package/lib/drawer/index.d.ts +2 -0
  71. package/lib/drawer/types.d.ts +4 -1
  72. package/lib/dropdown/Popup.js +5 -0
  73. package/lib/dropdown/dropdown.spec.js +169 -0
  74. package/lib/fieldset/fieldset.spec.js +329 -0
  75. package/lib/form/Field.d.ts +2 -1
  76. package/lib/form/Field.js +33 -24
  77. package/lib/form/FieldArray.d.ts +1 -0
  78. package/lib/form/FieldArray.js +41 -4
  79. package/lib/form/FieldNumber.d.ts +1 -0
  80. package/lib/form/FieldNumber.js +24 -5
  81. package/lib/form/FieldPeriod.d.ts +1 -0
  82. package/lib/form/FieldPeriod.js +16 -2
  83. package/lib/form/form.spec.js +293 -0
  84. package/lib/form/helpers.d.ts +2 -1
  85. package/lib/form/helpers.js +2 -2
  86. package/lib/form/index.d.ts +4 -2
  87. package/lib/form/index.js +72 -35
  88. package/lib/form/types.d.ts +25 -6
  89. package/lib/form/withFieldHOC.d.ts +1 -0
  90. package/lib/form/withFieldHOC.js +1 -0
  91. package/lib/form/withFormSecurity.d.ts +1 -0
  92. package/lib/form/withFormSecurity.js +2 -1
  93. package/lib/gridlayout/gridLayout.spec.js +169 -0
  94. package/lib/icons/helper.d.ts +4 -0
  95. package/lib/icons/helper.js +4 -0
  96. package/lib/icons/icons.spec.js +86 -0
  97. package/lib/icons/index.d.ts +2 -0
  98. package/lib/icons/types.d.ts +3 -1
  99. package/lib/index.d.ts +4 -1
  100. package/lib/inputs/base/InputTextBase.d.ts +1 -0
  101. package/lib/inputs/base/InputTextBase.js +10 -2
  102. package/lib/inputs/base/base.spec.js +690 -0
  103. package/lib/inputs/base/helpers.d.ts +2 -1
  104. package/lib/inputs/base/index.js +1 -0
  105. package/lib/inputs/base/types.d.ts +2 -1
  106. package/lib/inputs/color/color_input.spec.js +174 -0
  107. package/lib/inputs/date/Dialog.d.ts +1 -0
  108. package/lib/inputs/date/Dropdown.d.ts +1 -0
  109. package/lib/inputs/date/date.spec.js +354 -0
  110. package/lib/inputs/date/helpers.d.ts +2 -1
  111. package/lib/inputs/date/helpers.js +3 -2
  112. package/lib/inputs/date/index.d.ts +1 -0
  113. package/lib/inputs/date/index.js +24 -9
  114. package/lib/inputs/date/types.d.ts +3 -1
  115. package/lib/inputs/file/DefaultFile.d.ts +1 -0
  116. package/lib/inputs/file/DragDropFile.d.ts +1 -0
  117. package/lib/inputs/file/File.d.ts +1 -0
  118. package/lib/inputs/file/FileButtonSettings.d.ts +1 -0
  119. package/lib/inputs/file/helpers.d.ts +1 -0
  120. package/lib/inputs/file/index.d.ts +1 -0
  121. package/lib/inputs/file/types.d.ts +1 -0
  122. package/lib/inputs/inputHOC.d.ts +3 -0
  123. package/lib/inputs/mask/BaseMask.d.ts +1 -0
  124. package/lib/inputs/mask/BaseMask.js +20 -5
  125. package/lib/inputs/mask/Cnpj.d.ts +1 -0
  126. package/lib/inputs/mask/Cpf.d.ts +1 -0
  127. package/lib/inputs/mask/Cpf.js +4 -4
  128. package/lib/inputs/mask/Phone.d.ts +1 -0
  129. package/lib/inputs/mask/ZipCode.d.ts +1 -0
  130. package/lib/inputs/mask/helpers.d.ts +3 -0
  131. package/lib/inputs/mask/helpers.js +1 -1
  132. package/lib/inputs/mask/imaskHOC.d.ts +3 -0
  133. package/lib/inputs/mask/imaskHOC.js +16 -12
  134. package/lib/inputs/mask/index.d.ts +1 -0
  135. package/lib/inputs/mask/input_mask.spec.js +607 -0
  136. package/lib/inputs/mask/types.d.ts +2 -1
  137. package/lib/inputs/multiSelect/ActionButtons.d.ts +2 -1
  138. package/lib/inputs/multiSelect/ActionButtons.js +4 -1
  139. package/lib/inputs/multiSelect/Dropdown.d.ts +1 -0
  140. package/lib/inputs/multiSelect/Dropdown.js +4 -4
  141. package/lib/inputs/multiSelect/helper.d.ts +8 -6
  142. package/lib/inputs/multiSelect/helper.js +5 -1
  143. package/lib/inputs/multiSelect/index.d.ts +1 -0
  144. package/lib/inputs/multiSelect/index.js +15 -11
  145. package/lib/inputs/multiSelect/types.d.ts +16 -6
  146. package/lib/inputs/number/BaseNumber.d.ts +3 -0
  147. package/lib/inputs/number/BaseNumber.js +1 -2
  148. package/lib/inputs/number/Currency.d.ts +3 -0
  149. package/lib/inputs/number/Decimal.d.ts +3 -0
  150. package/lib/inputs/number/format_number.d.ts +2 -1
  151. package/lib/inputs/number/format_number.js +8 -3
  152. package/lib/inputs/number/index.d.ts +3 -0
  153. package/lib/inputs/number/numberfield.spec.js +215 -0
  154. package/lib/inputs/number/types.d.ts +3 -1
  155. package/lib/inputs/period/Dialog.d.ts +1 -0
  156. package/lib/inputs/period/Dropdown.d.ts +1 -0
  157. package/lib/inputs/period/PeriodList.d.ts +1 -0
  158. package/lib/inputs/period/helper.d.ts +1 -0
  159. package/lib/inputs/period/index.d.ts +1 -0
  160. package/lib/inputs/period/index.js +8 -9
  161. package/lib/inputs/period/types.d.ts +3 -2
  162. package/lib/inputs/search/index.d.ts +3 -0
  163. package/lib/inputs/search/search_input.spec.js +209 -0
  164. package/lib/inputs/select/ActionButtons.d.ts +3 -0
  165. package/lib/inputs/select/Dropdown.d.ts +3 -0
  166. package/lib/inputs/select/Dropdown.js +1 -1
  167. package/lib/inputs/select/helper.d.ts +7 -9
  168. package/lib/inputs/select/helper.js +11 -2
  169. package/lib/inputs/select/index.d.ts +1 -0
  170. package/lib/inputs/select/index.js +6 -5
  171. package/lib/inputs/select/multiple/Selecteds.d.ts +1 -0
  172. package/lib/inputs/select/multiple/Selecteds.js +1 -1
  173. package/lib/inputs/select/multiple/index.d.ts +1 -0
  174. package/lib/inputs/select/multiple/index.js +13 -10
  175. package/lib/inputs/select/select.spec.js +395 -0
  176. package/lib/inputs/select/simple/index.d.ts +1 -0
  177. package/lib/inputs/select/simple/index.js +35 -18
  178. package/lib/inputs/select/types.d.ts +22 -7
  179. package/lib/inputs/text/index.d.ts +1 -0
  180. package/lib/inputs/text/textfield.spec.js +215 -0
  181. package/lib/inputs/text/types.d.ts +1 -1
  182. package/lib/inputs/textarea/index.d.ts +1 -0
  183. package/lib/inputs/textarea/index.js +1 -1
  184. package/lib/inputs/textarea/textarea.spec.js +59 -0
  185. package/lib/inputs/textarea/types.d.ts +1 -0
  186. package/lib/inputs/types.d.ts +7 -3
  187. package/lib/internals/types.d.ts +1 -0
  188. package/lib/internals/withTooltip.js +13 -6
  189. package/lib/labelMessages/index.d.ts +2 -0
  190. package/lib/labelMessages/index.js +3 -4
  191. package/lib/labelMessages/labelMessages.spec.js +176 -0
  192. package/lib/labelMessages/types.d.ts +3 -1
  193. package/lib/labels/DangerLabel.d.ts +2 -0
  194. package/lib/labels/DefaultLabel.d.ts +2 -0
  195. package/lib/labels/InfoLabel.d.ts +2 -0
  196. package/lib/labels/PrimaryLabel.d.ts +2 -0
  197. package/lib/labels/SuccessLabel.d.ts +2 -0
  198. package/lib/labels/WarningLabel.d.ts +2 -0
  199. package/lib/labels/index.d.ts +2 -0
  200. package/lib/labels/label.spec.js +162 -0
  201. package/lib/labels/types.d.ts +3 -1
  202. package/lib/list/Header.d.ts +2 -0
  203. package/lib/list/Item.d.ts +2 -0
  204. package/lib/list/helpers.d.ts +2 -0
  205. package/lib/list/index.d.ts +2 -0
  206. package/lib/list/list.spec.js +769 -0
  207. package/lib/list/types.d.ts +4 -2
  208. package/lib/menus/float/MenuItem.d.ts +2 -0
  209. package/lib/menus/float/float-menu.spec.js +221 -0
  210. package/lib/menus/float/helpers.d.ts +2 -0
  211. package/lib/menus/float/index.d.ts +2 -0
  212. package/lib/menus/float/types.d.ts +3 -1
  213. package/lib/menus/index.d.ts +2 -0
  214. package/lib/menus/sidenav/ExpandMenu.d.ts +2 -0
  215. package/lib/menus/sidenav/MenuLink.d.ts +2 -0
  216. package/lib/menus/sidenav/NavMenuGroup.d.ts +2 -0
  217. package/lib/menus/sidenav/NavMenuItem.d.ts +2 -0
  218. package/lib/menus/sidenav/NavSubMenuItem.d.ts +2 -0
  219. package/lib/menus/sidenav/helpers.d.ts +2 -0
  220. package/lib/menus/sidenav/index.d.ts +2 -0
  221. package/lib/menus/sidenav/popup_menu_search/EmptyList.d.ts +2 -0
  222. package/lib/menus/sidenav/popup_menu_search/index.d.ts +2 -0
  223. package/lib/menus/sidenav/sidenav.spec.js +379 -0
  224. package/lib/menus/sidenav/types.d.ts +4 -2
  225. package/lib/panel/Content.d.ts +3 -1
  226. package/lib/panel/DangerPanel.d.ts +3 -1
  227. package/lib/panel/Default.d.ts +3 -1
  228. package/lib/panel/Header.d.ts +3 -1
  229. package/lib/panel/Header.js +3 -4
  230. package/lib/panel/InfoPanel.d.ts +3 -1
  231. package/lib/panel/PrimaryPanel.d.ts +3 -1
  232. package/lib/panel/SuccessPanel.d.ts +3 -1
  233. package/lib/panel/ToolBar.d.ts +3 -1
  234. package/lib/panel/WarningPanel.d.ts +3 -1
  235. package/lib/panel/helpers.d.ts +3 -1
  236. package/lib/panel/index.d.ts +3 -1
  237. package/lib/panel/panel.spec.js +216 -0
  238. package/lib/panel/types.d.ts +3 -1
  239. package/lib/popover/PopoverText.d.ts +2 -0
  240. package/lib/popover/PopoverTitle.d.ts +2 -0
  241. package/lib/popover/index.d.ts +2 -0
  242. package/lib/popover/index.js +1 -2
  243. package/lib/popover/popover.spec.js +146 -0
  244. package/lib/popover/types.d.ts +3 -1
  245. package/lib/progress/progress.spec.js +94 -0
  246. package/lib/radio/index.d.ts +2 -1
  247. package/lib/radio/index.js +5 -1
  248. package/lib/radio/radio.spec.js +189 -0
  249. package/lib/radio/types.d.ts +4 -1
  250. package/lib/spinner/spinner.spec.js +152 -0
  251. package/lib/split/split.spec.js +163 -0
  252. package/lib/table/Body.js +9 -12
  253. package/lib/table/Header.js +19 -16
  254. package/lib/table/Row.js +20 -3
  255. package/lib/table/index.js +1 -0
  256. package/lib/table/table.spec.js +352 -0
  257. package/lib/table/types.d.ts +7 -0
  258. package/lib/tabs/DropdownItems.d.ts +2 -0
  259. package/lib/tabs/Menu.d.ts +2 -0
  260. package/lib/tabs/MenuItems.d.ts +2 -0
  261. package/lib/tabs/Panel.d.ts +2 -0
  262. package/lib/tabs/index.d.ts +2 -0
  263. package/lib/tabs/tabHelpers.d.ts +2 -0
  264. package/lib/tabs/tabs.spec.js +321 -0
  265. package/lib/tabs/types.d.ts +3 -1
  266. package/lib/toolbar/ButtonBar.d.ts +2 -0
  267. package/lib/toolbar/LabelBar.d.ts +2 -0
  268. package/lib/toolbar/ToolBarGroup.d.ts +2 -0
  269. package/lib/toolbar/helpers.d.ts +2 -0
  270. package/lib/toolbar/index.d.ts +2 -0
  271. package/lib/toolbar/toolbar.spec.js +394 -0
  272. package/lib/toolbar/types.d.ts +4 -2
  273. package/lib/tooltip/index.d.ts +1 -1
  274. package/lib/tooltip/index.js +5 -1
  275. package/lib/tooltip/tooltip.spec.js +215 -0
  276. package/lib/tooltip/types.d.ts +1 -0
  277. package/lib/treeview/index.js +1 -0
  278. package/lib/treeview/treeview.spec.js +279 -0
  279. package/lib/{types-90c43ae1.d.ts → types-c1e2d0c9.d.ts} +2 -1
  280. package/lib/uitour/uitour.spec.js +176 -0
  281. package/package.json +67 -64
@@ -4,7 +4,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.default = exports.FormDialogContext = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _uuid = _interopRequireDefault(require("uuid"));
10
10
  var _base = _interopRequireDefault(require("../base"));
@@ -18,6 +18,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+ var FormDialogContext = /*#__PURE__*/(0, _react.createContext)({});
22
+ exports.FormDialogContext = FormDialogContext;
21
23
  var ModalForm = function ModalForm(props) {
22
24
  var _props$showFooter = props.showFooter,
23
25
  showFooter = _props$showFooter === void 0 ? true : _props$showFooter,
@@ -29,11 +31,12 @@ var ModalForm = function ModalForm(props) {
29
31
  height = _props$height === void 0 ? '50%' : _props$height,
30
32
  content = props.content,
31
33
  children = props.children;
34
+ var headerRef = (0, _react.useRef)(null);
35
+ var context = (0, _react.useContext)(_withFormSecurity.FormSecurityContext);
32
36
  var overlayStyle = isWaiting ? {
33
37
  opacity: 0.4,
34
38
  pointerEvent: 'none'
35
39
  } : {};
36
- var context = (0, _react.useContext)(_withFormSecurity.FormSecurityContext);
37
40
  var getSpinner = function getSpinner() {
38
41
  if (!isWaiting) return null;
39
42
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -45,7 +48,11 @@ var ModalForm = function ModalForm(props) {
45
48
  delayTime: 0
46
49
  }));
47
50
  };
48
- return /*#__PURE__*/_react.default.createElement(_base.default, _extends({
51
+ return /*#__PURE__*/_react.default.createElement(FormDialogContext.Provider, {
52
+ value: {
53
+ headerRef: headerRef
54
+ }
55
+ }, /*#__PURE__*/_react.default.createElement(_base.default, _extends({
49
56
  width: width,
50
57
  height: height
51
58
  }, props, {
@@ -68,7 +75,7 @@ var ModalForm = function ModalForm(props) {
68
75
  return /*#__PURE__*/_react.default.cloneElement(button, {
69
76
  key: "button-".concat(_uuid.default.v1())
70
77
  });
71
- }))));
78
+ })))));
72
79
  };
73
80
  var _default = (0, _withFormSecurity.default)(ModalForm);
74
81
  exports.default = _default;
@@ -7,6 +7,9 @@ export { default as DialogWarning } from './Warning.js';
7
7
  export { default as DialogCustom } from './Custom.js';
8
8
  import 'react';
9
9
  import './types.js';
10
+ import '../@types/Align.js';
11
+ import '../@types/Icon.js';
12
+ import '../icons/helper.js';
10
13
 
11
14
 
12
15
 
@@ -1,4 +1,7 @@
1
1
  import { ReactNode, CSSProperties, ReactElement } from 'react';
2
+ import { TextAlign } from '../@types/Align.js';
3
+ import { IconNames } from '../@types/Icon.js';
4
+ import '../icons/helper.js';
2
5
 
3
6
  interface IContentProps {
4
7
  children: ReactNode | ReactNode[];
@@ -12,7 +15,7 @@ interface IHeaderProps {
12
15
  showCloseButton?: boolean;
13
16
  title?: string;
14
17
  icon?: JSX.Element;
15
- titleIcon?: string;
18
+ titleIcon?: IconNames;
16
19
  }
17
20
  interface IBaseProps {
18
21
  wrapperClassName: string;
@@ -23,7 +26,7 @@ interface IBaseProps {
23
26
  closeOnEsc?: boolean;
24
27
  closeOnOutsideClick?: boolean;
25
28
  overlay?: boolean;
26
- textAlign?: string;
29
+ textAlign?: TextAlign;
27
30
  zIndex?: string;
28
31
  }
29
32
  interface IFormProps {
@@ -63,7 +66,10 @@ interface ICustomProps {
63
66
  text?: string;
64
67
  height?: string;
65
68
  width?: string;
66
- iconName?: string;
69
+ iconName?: IconNames | null;
70
+ }
71
+ interface IFormDialogContext {
72
+ headerRef?: React.RefObject<HTMLDivElement>;
67
73
  }
68
74
 
69
- export { IBaseProps, ICommonDialogProps, IContentProps, ICustomProps, IFooterProps, IFormProps, IHeaderProps, IQuestionProps };
75
+ export { IBaseProps, ICommonDialogProps, IContentProps, ICustomProps, IFooterProps, IFormDialogContext, IFormProps, IHeaderProps, IQuestionProps };
@@ -2,6 +2,8 @@ import { IDrawerProps } from './types.js';
2
2
  import 'react';
3
3
  import '../@types/PermissionAttr.js';
4
4
  import '../@types/Position.js';
5
+ import '../@types/Icon.js';
6
+ import '../icons/helper.js';
5
7
 
6
8
  declare const Content: ({ children, style }: IDrawerProps) => JSX.Element;
7
9
 
@@ -2,7 +2,9 @@ import React__default from 'react';
2
2
  import { IDrawerProps } from './types.js';
3
3
  import '../@types/PermissionAttr.js';
4
4
  import '../@types/Position.js';
5
+ import '../@types/Icon.js';
6
+ import '../icons/helper.js';
5
7
 
6
- declare const BaseDrawer: ({ position, customClass, children, style, customClassForContent, targetId, closeOnEsc, overlay, permissionAttr, skeletonize, handlerClose, customClassForDrawer, content, title, ...rest }: IDrawerProps) => React__default.ReactPortal;
8
+ declare const BaseDrawer: ({ position, customClass, children, style, customClassForContent, targetId, closeOnEsc, overlay, permissionAttr, skeletonize, handlerClose, customClassForDrawer, content, title, isWaiting, ...rest }: IDrawerProps) => React__default.ReactPortal;
7
9
 
8
10
  export { BaseDrawer as default };
@@ -10,7 +10,8 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
10
10
  var _helpers = _interopRequireDefault(require("./helpers"));
11
11
  var _permissionValidations = require("../permissionValidations");
12
12
  var _ = require(".");
13
- var _excluded = ["position", "customClass", "children", "style", "customClassForContent", "targetId", "closeOnEsc", "overlay", "permissionAttr", "skeletonize", "handlerClose", "customClassForDrawer", "content", "title"];
13
+ var _spinner = _interopRequireDefault(require("../spinner"));
14
+ var _excluded = ["position", "customClass", "children", "style", "customClassForContent", "targetId", "closeOnEsc", "overlay", "permissionAttr", "skeletonize", "handlerClose", "customClassForDrawer", "content", "title", "isWaiting"];
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -42,6 +43,8 @@ var BaseDrawer = function BaseDrawer(_ref) {
42
43
  customClassForDrawer = _ref$customClassForDr === void 0 ? '' : _ref$customClassForDr,
43
44
  content = _ref.content,
44
45
  title = _ref.title,
46
+ _ref$isWaiting = _ref.isWaiting,
47
+ isWaiting = _ref$isWaiting === void 0 ? false : _ref$isWaiting,
45
48
  rest = _objectWithoutProperties(_ref, _excluded);
46
49
  var headerProps = _extends({}, rest, {
47
50
  title: title
@@ -53,6 +56,22 @@ var BaseDrawer = function BaseDrawer(_ref) {
53
56
  var _useState = (0, _react.useState)((0, _permissionValidations.actionsOnPermissionDenied)([hideContent], permissionAttr)),
54
57
  _useState2 = _slicedToArray(_useState, 1),
55
58
  onDenied = _useState2[0];
59
+ var overlayStyle = isWaiting ? {
60
+ opacity: 0.4,
61
+ pointerEvent: 'none',
62
+ placeContent: 'center'
63
+ } : {};
64
+ var getSpinner = function getSpinner() {
65
+ if (!isWaiting) return null;
66
+ return /*#__PURE__*/_react.default.createElement("div", {
67
+ className: "waitingspinner"
68
+ }, /*#__PURE__*/_react.default.createElement(_spinner.default, {
69
+ style: {
70
+ width: 60
71
+ },
72
+ delayTime: 0
73
+ }));
74
+ };
56
75
  var setDrawerComponent = function setDrawerComponent(body, randonId) {
57
76
  var componentEl = document.createElement('div');
58
77
  componentEl.className = 'drawer-component';
@@ -115,11 +134,12 @@ var BaseDrawer = function BaseDrawer(_ref) {
115
134
  className: "".concat(position, " ").concat(customClass),
116
135
  style: style
117
136
  }, /*#__PURE__*/_react.default.createElement("div", {
137
+ style: overlayStyle,
118
138
  "data-testid": "drawercontent",
119
139
  className: "drawercontent ".concat(skeletonize ? '-skeletonized' : '', " ").concat(customClassForContent)
120
140
  }, title && /*#__PURE__*/_react.default.createElement(_.DrawerHeader, _extends({}, headerProps, {
121
141
  customClass: customClassForDrawer
122
- })), content ? /*#__PURE__*/_react.default.createElement(_.DrawerContent, null, content) : children)));
142
+ })), content ? /*#__PURE__*/_react.default.createElement(_.DrawerContent, null, content) : children, getSpinner())));
123
143
  };
124
144
  return /*#__PURE__*/_reactDom.default.createPortal(drawerContent(), drawerContainerEl.current);
125
145
  };
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ require("@testing-library/jest-dom/extend-expect");
10
+
11
+ require("babel-polyfill");
12
+
13
+ var _ = _interopRequireWildcard(require("."));
14
+
15
+ var _icons = _interopRequireDefault(require("../icons"));
16
+
17
+ var _avatar = _interopRequireDefault(require("../avatar"));
18
+
19
+ var _storageMock = _interopRequireWildcard(require("../../../config/jest/storageMock"));
20
+
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+
27
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
28
+
29
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
30
+
31
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
32
+
33
+ var drawerMock = function drawerMock(drawerProps, drawerHeaderProps) {
34
+ return /*#__PURE__*/_react.default.createElement(_.default, _extends({
35
+ position: "right",
36
+ customClass: "customMockClass",
37
+ customClassForContent: "CustomContentMockClass",
38
+ style: {
39
+ backgroundColor: '#FFF'
40
+ },
41
+ overlay: true
42
+ }, drawerProps), /*#__PURE__*/_react.default.createElement(_.DrawerHeader, _extends({
43
+ title: "Header Test",
44
+ subTitle: "Subtitle test",
45
+ titleIcon: "user",
46
+ customClass: "customMockHeaderClass",
47
+ showCloseButton: true
48
+ }, drawerHeaderProps)), /*#__PURE__*/_react.default.createElement(_.DrawerContent, {
49
+ style: {
50
+ background: '#333',
51
+ marginTop: 10
52
+ }
53
+ }, "DrawerContent", /*#__PURE__*/_react.default.createElement(_avatar.default, null)));
54
+ };
55
+
56
+ describe('Drawer', function () {
57
+ describe('Drawer Container', function () {
58
+ var DrawerTestId = 'drawercontainer-component';
59
+ var DrawerContentTestId = 'drawercontent';
60
+ it('should render the drawer component with children', function () {
61
+ var _render = (0, _react2.render)(drawerMock()),
62
+ getByTestId = _render.getByTestId;
63
+
64
+ expect(getByTestId(DrawerTestId)).toHaveTextContent('DrawerContent');
65
+ });
66
+ it('should change the position of Drawer', function () {
67
+ var _render2 = (0, _react2.render)(drawerMock()),
68
+ getByTestId = _render2.getByTestId;
69
+
70
+ expect(getByTestId(DrawerTestId)).toHaveClass('right');
71
+ });
72
+ it('should apply customClass', function () {
73
+ var _render3 = (0, _react2.render)(drawerMock()),
74
+ getByTestId = _render3.getByTestId;
75
+
76
+ expect(getByTestId(DrawerTestId)).toHaveClass('customMockClass');
77
+ });
78
+ it('should apply customClassContent', function () {
79
+ var _render4 = (0, _react2.render)(drawerMock()),
80
+ getByTestId = _render4.getByTestId;
81
+
82
+ expect(getByTestId(DrawerContentTestId)).toHaveClass('CustomContentMockClass');
83
+ });
84
+ it('should apply inline style', function () {
85
+ var _render5 = (0, _react2.render)(drawerMock()),
86
+ getByTestId = _render5.getByTestId;
87
+
88
+ expect(getByTestId(DrawerTestId)).toHaveStyle('background-color: #FFF');
89
+ });
90
+ it('should render overlay over the page', function () {
91
+ (0, _react2.render)(drawerMock());
92
+ expect(_react2.screen.getByTestId('drawer-overlay')).toBeInTheDocument();
93
+ });
94
+ it('should close the Drawer when press Escape', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
95
+ var mockHandlerClose, _render6, container;
96
+
97
+ return regeneratorRuntime.wrap(function _callee$(_context) {
98
+ while (1) {
99
+ switch (_context.prev = _context.next) {
100
+ case 0:
101
+ mockHandlerClose = jest.fn();
102
+ _render6 = (0, _react2.render)(drawerMock({
103
+ handlerClose: mockHandlerClose,
104
+ closeOnEsc: true
105
+ })), container = _render6.container;
106
+
107
+ _react2.fireEvent.keyUp(container, {
108
+ key: 'Escape',
109
+ code: 'Escape',
110
+ keyCode: 27,
111
+ charCode: 27
112
+ });
113
+
114
+ expect(mockHandlerClose).toHaveBeenCalled();
115
+
116
+ case 4:
117
+ case "end":
118
+ return _context.stop();
119
+ }
120
+ }
121
+ }, _callee);
122
+ })));
123
+ });
124
+ describe('Drawer Header', function () {
125
+ var CloseButtonTestId = 'header-closebutton';
126
+ var mockHandlerClose = jest.fn();
127
+
128
+ var mockImage = /*#__PURE__*/_react.default.createElement("img", {
129
+ src: "https://devfront.erplinear.com.br/auth/static/media/auth_bg.96d98c39.jpg",
130
+ alt: "imagem teste"
131
+ });
132
+
133
+ var DrawerHeaderMock = drawerMock({
134
+ handlerClose: mockHandlerClose
135
+ });
136
+ it('should renders correctly DrawerHeader', function () {
137
+ var _render7 = (0, _react2.render)(DrawerHeaderMock),
138
+ getByText = _render7.getByText;
139
+
140
+ expect(getByText('Header Test')).toBeInTheDocument();
141
+ });
142
+ it('should render titleContent', function () {
143
+ var _render8 = (0, _react2.render)(drawerMock({}, {
144
+ titleContent: mockImage
145
+ })),
146
+ getByAltText = _render8.getByAltText;
147
+
148
+ expect(getByAltText('imagem teste')).toBeInTheDocument();
149
+ });
150
+ it('should render titleRightContent', function () {
151
+ var _render9 = (0, _react2.render)(drawerMock({}, {
152
+ titleRightContent: mockImage
153
+ })),
154
+ getByAltText = _render9.getByAltText;
155
+
156
+ expect(getByAltText('imagem teste')).toBeInTheDocument();
157
+ });
158
+ it('should render subtitle', function () {
159
+ var _render10 = (0, _react2.render)(DrawerHeaderMock),
160
+ getByText = _render10.getByText;
161
+
162
+ expect(getByText('Subtitle test')).toBeInTheDocument();
163
+ });
164
+ it('should render subTitleContent', function () {
165
+ var _render11 = (0, _react2.render)(drawerMock({}, {
166
+ subTitleContent: mockImage
167
+ })),
168
+ getByAltText = _render11.getByAltText;
169
+
170
+ expect(getByAltText('imagem teste')).toBeInTheDocument();
171
+ });
172
+ it('should render title icon', function () {
173
+ var _render12 = (0, _react2.render)(DrawerHeaderMock),
174
+ getByTestId = _render12.getByTestId;
175
+
176
+ expect(getByTestId('icon-header')).toBeInTheDocument();
177
+ expect(getByTestId('icon-header')).toHaveClass('icon-header');
178
+ });
179
+ it('should render icon', function () {
180
+ var _render13 = (0, _react2.render)(drawerMock({}, {
181
+ icon: /*#__PURE__*/_react.default.createElement(_icons.default, {
182
+ name: "user"
183
+ }),
184
+ showCloseButton: true
185
+ })),
186
+ getByTestId = _render13.getByTestId;
187
+
188
+ expect(getByTestId('icon-header')).toBeInTheDocument();
189
+ expect(getByTestId('icon-header')).toHaveClass('icon-header');
190
+ });
191
+ it('should render close button', function () {
192
+ var _render14 = (0, _react2.render)(DrawerHeaderMock),
193
+ getByTestId = _render14.getByTestId;
194
+
195
+ expect(getByTestId(CloseButtonTestId)).toBeInTheDocument();
196
+ expect(getByTestId(CloseButtonTestId)).toHaveClass('closebutton');
197
+ });
198
+ it('should fire click in close button', function () {
199
+ var _render15 = (0, _react2.render)(DrawerHeaderMock),
200
+ getByTestId = _render15.getByTestId;
201
+
202
+ _react2.fireEvent.click(getByTestId(CloseButtonTestId));
203
+
204
+ expect(mockHandlerClose).toHaveBeenCalledTimes(1);
205
+ });
206
+ it('should apply customClass', function () {
207
+ var _render16 = (0, _react2.render)(DrawerHeaderMock),
208
+ getByTestId = _render16.getByTestId;
209
+
210
+ expect(getByTestId('drawerheader')).toHaveClass('customMockHeaderClass');
211
+ });
212
+ });
213
+ describe('Drawer Content', function () {
214
+ it('should DrawerContent renders correctly', function () {
215
+ var _render17 = (0, _react2.render)(drawerMock()),
216
+ getByText = _render17.getByText,
217
+ getByTestId = _render17.getByTestId;
218
+
219
+ expect(getByText('DrawerContent')).toBeInTheDocument();
220
+ expect(getByTestId('avatar')).toBeInTheDocument();
221
+ });
222
+ it('should apply inline style', function () {
223
+ var _render18 = (0, _react2.render)(drawerMock()),
224
+ getByText = _render18.getByText;
225
+
226
+ expect(getByText('DrawerContent')).toHaveStyle('background-color: #333; margin-top: 10px;');
227
+ });
228
+ });
229
+ describe('Permissions', function () {
230
+ var defineStorageMock = function defineStorageMock() {
231
+ Object.defineProperty(window, 'sessionStorage', {
232
+ value: (0, _storageMock.default)()
233
+ });
234
+ };
235
+
236
+ it('should check permission', function () {
237
+ defineStorageMock();
238
+
239
+ var _render19 = (0, _react2.render)(drawerMock({
240
+ permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('hideContent')
241
+ })),
242
+ container = _render19.container;
243
+
244
+ expect(container.querySelector('.no-permission-component')).not.toBeInTheDocument();
245
+ });
246
+ it('should render non-permission', function () {
247
+ defineStorageMock();
248
+
249
+ var _render20 = (0, _react2.render)(drawerMock({
250
+ permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('hideContent')
251
+ })),
252
+ getByText = _render20.getByText;
253
+
254
+ expect(getByText('Acesso Negado')).toBeInTheDocument();
255
+ expect(getByText('Você não tem permissão para acessar este conteúdo. Consulte o Administrador do sistema!')).toBeInTheDocument();
256
+ });
257
+ });
258
+ });
@@ -2,6 +2,8 @@ import { IDrawerHeaderProps } from './types.js';
2
2
  import 'react';
3
3
  import '../@types/PermissionAttr.js';
4
4
  import '../@types/Position.js';
5
+ import '../@types/Icon.js';
6
+ import '../icons/helper.js';
5
7
 
6
8
  declare const Header: ({ showCloseButton, title, subTitle, icon, titleIcon, customClass, titleContent, subTitleContent, titleRightContent, }: IDrawerHeaderProps) => JSX.Element;
7
9
 
@@ -2,6 +2,8 @@ import React__default from 'react';
2
2
  import { IDrawerContext } from './types.js';
3
3
  import '../@types/PermissionAttr.js';
4
4
  import '../@types/Position.js';
5
+ import '../@types/Icon.js';
6
+ import '../icons/helper.js';
5
7
 
6
8
  declare const DrawerContext: React__default.Context<IDrawerContext>;
7
9
 
@@ -4,6 +4,8 @@ export { default as DrawerContent } from './Content.js';
4
4
  import 'react';
5
5
  import '../@types/PermissionAttr.js';
6
6
  import '../@types/Position.js';
7
+ import '../@types/Icon.js';
8
+ import '../icons/helper.js';
7
9
 
8
10
  declare const _default: (props: IDrawerProps) => JSX.Element;
9
11
 
@@ -1,6 +1,8 @@
1
1
  import React__default, { ReactNode, ReactElement } from 'react';
2
2
  import { PermissionAttr } from '../@types/PermissionAttr.js';
3
3
  import { Position } from '../@types/Position.js';
4
+ import { IconNames } from '../@types/Icon.js';
5
+ import '../icons/helper.js';
4
6
 
5
7
  interface IDrawerProps extends React__default.HTMLAttributes<HTMLDivElement> {
6
8
  overlay?: boolean;
@@ -17,6 +19,7 @@ interface IDrawerProps extends React__default.HTMLAttributes<HTMLDivElement> {
17
19
  closeOnOutsideClick?: boolean;
18
20
  content?: string;
19
21
  title?: string;
22
+ isWaiting?: boolean;
20
23
  }
21
24
  interface IDrawerHeaderProps extends React__default.HTMLAttributes<HTMLDivElement> {
22
25
  showCloseButton?: boolean;
@@ -27,7 +30,7 @@ interface IDrawerHeaderProps extends React__default.HTMLAttributes<HTMLDivElemen
27
30
  subTitle?: string;
28
31
  subTitleContent?: ReactElement;
29
32
  icon?: ReactElement;
30
- titleIcon?: string;
33
+ titleIcon?: IconNames;
31
34
  }
32
35
  interface IDrawerContext {
33
36
  handlerClose?: () => void;
@@ -53,6 +53,11 @@ var DropdownPopup = function DropdownPopup(_ref2) {
53
53
  isFloatMenu: isFloatMenu,
54
54
  minWidth: minWidth
55
55
  });
56
+ if (popup && popup.current) {
57
+ var modalContainers = document.body.getElementsByClassName('modalcontainer');
58
+ var lastModalContainer = modalContainers[modalContainers.length - 1];
59
+ popup.current.style.zIndex = "".concat(modalContainers.length ? lastModalContainer.style.zIndex : 99999);
60
+ }
56
61
  (0, _react.useEffect)(function () {
57
62
  body.appendChild(popup.current);
58
63
  return function () {