linear-react-components-ui 1.1.14-beta.0 → 1.1.14-beta.1

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 (367) hide show
  1. package/.eslintrc.json +45 -77
  2. package/.gitlab-ci.yml +13 -5
  3. package/.nvmrc +1 -0
  4. package/.vscode/settings.json +12 -3
  5. package/babel.config.json +4 -4
  6. package/lib/@types/SizePixels.d.ts +1 -1
  7. package/lib/alerts/AlertContainer.js +48 -57
  8. package/lib/alerts/AlertProvider.js +36 -54
  9. package/lib/alerts/BaseAlert.js +12 -19
  10. package/lib/alerts/Message.d.ts +1 -1
  11. package/lib/alerts/Message.js +78 -45
  12. package/lib/alerts/helpers.js +2 -3
  13. package/lib/alerts/index.js +3 -4
  14. package/lib/alerts/types.d.ts +1 -0
  15. package/lib/alerts/withAlert.js +10 -11
  16. package/lib/assets/styles/alerts.scss +4 -7
  17. package/lib/assets/styles/button.scss +11 -9
  18. package/lib/assets/styles/checkbox.scss +45 -38
  19. package/lib/assets/styles/colors.scss +3 -1
  20. package/lib/assets/styles/commons.scss +1 -0
  21. package/lib/assets/styles/dialog.scss +37 -20
  22. package/lib/assets/styles/drawers.scss +9 -6
  23. package/lib/assets/styles/error.scss +9 -0
  24. package/lib/assets/styles/fieldset.scss +3 -0
  25. package/lib/assets/styles/gridlayout.scss +0 -2
  26. package/lib/assets/styles/hint.scss +21 -0
  27. package/lib/assets/styles/icon.scss +31 -4
  28. package/lib/assets/styles/input.scss +7 -7
  29. package/lib/assets/styles/multiSelect.scss +6 -1
  30. package/lib/assets/styles/radio.scss +37 -35
  31. package/lib/assets/styles/select.scss +13 -7
  32. package/lib/assets/styles/table.scss +9 -1
  33. package/lib/assets/styles/tabs.scss +28 -18
  34. package/lib/assets/styles/textContent.scss +9 -0
  35. package/lib/avatar/index.js +41 -41
  36. package/lib/badge/index.js +12 -14
  37. package/lib/buttons/ActivateButton.js +6 -9
  38. package/lib/buttons/AddButton.js +9 -12
  39. package/lib/buttons/Button.js +11 -12
  40. package/lib/buttons/ButtonGroups.js +6 -5
  41. package/lib/buttons/CancelButton.js +10 -9
  42. package/lib/buttons/DangerButton.js +10 -9
  43. package/lib/buttons/DefaultButton.js +90 -90
  44. package/lib/buttons/DestroyButton.js +10 -9
  45. package/lib/buttons/EditButton.js +6 -9
  46. package/lib/buttons/InactivateButton.js +6 -9
  47. package/lib/buttons/InfoButton.js +10 -9
  48. package/lib/buttons/PrimaryButton.js +10 -9
  49. package/lib/buttons/RestoreButton.js +6 -9
  50. package/lib/buttons/SaveButton.js +10 -9
  51. package/lib/buttons/SuccessButton.js +10 -9
  52. package/lib/buttons/WarningButton.js +10 -9
  53. package/lib/buttons/button_container/index.js +17 -21
  54. package/lib/buttons/index.js +16 -17
  55. package/lib/buttons/split_button/index.js +22 -25
  56. package/lib/buttons/types.d.ts +1 -0
  57. package/lib/calendar/DangerCalendar.js +10 -9
  58. package/lib/calendar/InfoCalendar.js +10 -9
  59. package/lib/calendar/PrimaryCalendar.js +10 -9
  60. package/lib/calendar/SuccessCalendar.js +10 -9
  61. package/lib/calendar/WarningCalendar.js +10 -9
  62. package/lib/calendar/base/Day.js +13 -12
  63. package/lib/calendar/base/Month.js +13 -18
  64. package/lib/calendar/base/Week.js +13 -18
  65. package/lib/calendar/base/helpers.js +12 -12
  66. package/lib/calendar/base/index.js +30 -44
  67. package/lib/calendar/index.js +7 -8
  68. package/lib/checkbox/Label.js +20 -10
  69. package/lib/checkbox/index.d.ts +2 -2
  70. package/lib/checkbox/index.js +83 -97
  71. package/lib/checkbox/types.d.ts +2 -1
  72. package/lib/dialog/Alert.js +5 -6
  73. package/lib/dialog/Custom.js +16 -18
  74. package/lib/dialog/Error.js +5 -6
  75. package/lib/dialog/Information.js +5 -6
  76. package/lib/dialog/Question.js +13 -14
  77. package/lib/dialog/Warning.js +7 -7
  78. package/lib/dialog/base/Content.js +8 -6
  79. package/lib/dialog/base/Footer.js +5 -8
  80. package/lib/dialog/base/Header.js +29 -29
  81. package/lib/dialog/base/index.d.ts +8 -2
  82. package/lib/dialog/base/index.js +109 -105
  83. package/lib/dialog/base/style.js +7 -10
  84. package/lib/dialog/form/index.js +31 -34
  85. package/lib/dialog/index.js +8 -9
  86. package/lib/dialog/types.d.ts +8 -13
  87. package/lib/drawer/Content.js +12 -11
  88. package/lib/drawer/Drawer.js +74 -88
  89. package/lib/drawer/Header.js +34 -37
  90. package/lib/drawer/helpers.js +3 -4
  91. package/lib/drawer/index.js +4 -5
  92. package/lib/dropdown/Popup.d.ts +1 -1
  93. package/lib/dropdown/Popup.js +41 -42
  94. package/lib/dropdown/helper.js +3 -5
  95. package/lib/dropdown/types.d.ts +1 -0
  96. package/lib/dropdown/withDropdown.js +39 -60
  97. package/lib/fieldset/index.js +52 -58
  98. package/lib/fieldset/types.d.ts +2 -0
  99. package/lib/form/Field.d.ts +2 -0
  100. package/lib/form/Field.js +73 -79
  101. package/lib/form/FieldArray.d.ts +2 -0
  102. package/lib/form/FieldArray.js +70 -94
  103. package/lib/form/FieldNumber.d.ts +2 -0
  104. package/lib/form/FieldNumber.js +39 -48
  105. package/lib/form/FieldPeriod.d.ts +2 -0
  106. package/lib/form/FieldPeriod.js +48 -54
  107. package/lib/form/helpers.d.ts +2 -0
  108. package/lib/form/helpers.js +22 -27
  109. package/lib/form/index.d.ts +2 -0
  110. package/lib/form/index.js +114 -146
  111. package/lib/form/types.d.ts +6 -2
  112. package/lib/form/withFieldHOC.d.ts +2 -0
  113. package/lib/form/withFieldHOC.js +32 -39
  114. package/lib/form/withFormSecurity.d.ts +2 -0
  115. package/lib/form/withFormSecurity.js +27 -35
  116. package/lib/gridlayout/GridCol.js +14 -14
  117. package/lib/gridlayout/GridRow.js +18 -12
  118. package/lib/gridlayout/index.js +3 -4
  119. package/lib/gridlayout/types.d.ts +1 -1
  120. package/lib/hint/helpers.d.ts +3 -0
  121. package/lib/hint/helpers.js +21 -0
  122. package/lib/hint/index.d.ts +2 -1
  123. package/lib/hint/index.js +18 -29
  124. package/lib/hint/types.d.ts +3 -0
  125. package/lib/icons/helper.d.ts +4 -0
  126. package/lib/icons/helper.js +7 -4
  127. package/lib/icons/index.d.ts +3 -2
  128. package/lib/icons/index.js +43 -48
  129. package/lib/icons/types.d.ts +22 -9
  130. package/lib/index.d.ts +2 -1
  131. package/lib/index.js +10 -10
  132. package/lib/inputs/base/InputTextBase.d.ts +2 -0
  133. package/lib/inputs/base/InputTextBase.js +149 -113
  134. package/lib/inputs/base/Label.d.ts +14 -0
  135. package/lib/inputs/base/Label.js +35 -0
  136. package/lib/inputs/base/helpers.d.ts +3 -2
  137. package/lib/inputs/base/helpers.js +21 -26
  138. package/lib/inputs/base/types.d.ts +17 -2
  139. package/lib/inputs/color/index.js +29 -40
  140. package/lib/inputs/date/Dialog.d.ts +2 -0
  141. package/lib/inputs/date/Dialog.js +9 -10
  142. package/lib/inputs/date/Dropdown.d.ts +2 -0
  143. package/lib/inputs/date/Dropdown.js +12 -11
  144. package/lib/inputs/date/helpers.d.ts +2 -0
  145. package/lib/inputs/date/helpers.js +14 -14
  146. package/lib/inputs/date/index.d.ts +2 -0
  147. package/lib/inputs/date/index.js +127 -152
  148. package/lib/inputs/date/types.d.ts +4 -1
  149. package/lib/inputs/{mask/imaskHOC.d.ts → errorMessage/index.d.ts} +5 -7
  150. package/lib/inputs/errorMessage/index.js +26 -0
  151. package/lib/inputs/file/DefaultFile.d.ts +2 -0
  152. package/lib/inputs/file/DefaultFile.js +47 -74
  153. package/lib/inputs/file/DragDropFile.d.ts +2 -0
  154. package/lib/inputs/file/DragDropFile.js +97 -149
  155. package/lib/inputs/file/File.d.ts +3 -1
  156. package/lib/inputs/file/File.js +26 -32
  157. package/lib/inputs/file/FileButtonSettings.d.ts +2 -0
  158. package/lib/inputs/file/FileButtonSettings.js +13 -13
  159. package/lib/inputs/file/helpers.d.ts +2 -0
  160. package/lib/inputs/file/helpers.js +4 -6
  161. package/lib/inputs/file/index.d.ts +2 -0
  162. package/lib/inputs/file/index.js +4 -5
  163. package/lib/inputs/file/types.d.ts +2 -0
  164. package/lib/inputs/inputHOC.d.ts +2 -1
  165. package/lib/inputs/inputHOC.js +21 -34
  166. package/lib/inputs/mask/BaseMask.d.ts +4 -5
  167. package/lib/inputs/mask/BaseMask.js +125 -37
  168. package/lib/inputs/mask/Cnpj.d.ts +2 -0
  169. package/lib/inputs/mask/Cnpj.js +18 -31
  170. package/lib/inputs/mask/Cpf.d.ts +2 -0
  171. package/lib/inputs/mask/Cpf.js +20 -37
  172. package/lib/inputs/mask/Phone.d.ts +2 -0
  173. package/lib/inputs/mask/Phone.js +7 -6
  174. package/lib/inputs/mask/ZipCode.d.ts +2 -0
  175. package/lib/inputs/mask/ZipCode.js +6 -9
  176. package/lib/inputs/mask/helpers.d.ts +50 -12
  177. package/lib/inputs/mask/helpers.js +77 -37
  178. package/lib/inputs/mask/index.d.ts +4 -2
  179. package/lib/inputs/mask/index.js +6 -7
  180. package/lib/inputs/mask/types.d.ts +18 -17
  181. package/lib/inputs/multiSelect/ActionButtons.d.ts +2 -0
  182. package/lib/inputs/multiSelect/ActionButtons.js +23 -22
  183. package/lib/inputs/multiSelect/Dropdown.d.ts +2 -0
  184. package/lib/inputs/multiSelect/Dropdown.js +50 -67
  185. package/lib/inputs/multiSelect/helper.d.ts +2 -0
  186. package/lib/inputs/multiSelect/helper.js +8 -7
  187. package/lib/inputs/multiSelect/index.d.ts +2 -0
  188. package/lib/inputs/multiSelect/index.js +83 -135
  189. package/lib/inputs/multiSelect/types.d.ts +2 -0
  190. package/lib/inputs/number/BaseNumber.d.ts +2 -1
  191. package/lib/inputs/number/BaseNumber.js +25 -24
  192. package/lib/inputs/number/Currency.d.ts +2 -1
  193. package/lib/inputs/number/Currency.js +8 -8
  194. package/lib/inputs/number/Decimal.d.ts +2 -1
  195. package/lib/inputs/number/Decimal.js +3 -6
  196. package/lib/inputs/number/format_number.js +5 -5
  197. package/lib/inputs/number/index.d.ts +2 -1
  198. package/lib/inputs/number/index.js +20 -32
  199. package/lib/inputs/number/types.d.ts +2 -9
  200. package/lib/inputs/period/Dialog.d.ts +3 -1
  201. package/lib/inputs/period/Dialog.js +9 -10
  202. package/lib/inputs/period/Dropdown.d.ts +2 -0
  203. package/lib/inputs/period/Dropdown.js +8 -9
  204. package/lib/inputs/period/PeriodList.d.ts +2 -0
  205. package/lib/inputs/period/PeriodList.js +14 -13
  206. package/lib/inputs/period/helper.d.ts +2 -0
  207. package/lib/inputs/period/helper.js +34 -37
  208. package/lib/inputs/period/index.d.ts +2 -0
  209. package/lib/inputs/period/index.js +162 -196
  210. package/lib/inputs/period/types.d.ts +3 -1
  211. package/lib/inputs/search/index.d.ts +2 -1
  212. package/lib/inputs/search/index.js +45 -68
  213. package/lib/inputs/select/ActionButtons.d.ts +2 -1
  214. package/lib/inputs/select/ActionButtons.js +25 -35
  215. package/lib/inputs/select/Dropdown.d.ts +2 -1
  216. package/lib/inputs/select/Dropdown.js +41 -60
  217. package/lib/inputs/select/helper.d.ts +2 -1
  218. package/lib/inputs/select/helper.js +49 -43
  219. package/lib/inputs/select/index.d.ts +2 -0
  220. package/lib/inputs/select/index.js +13 -12
  221. package/lib/inputs/select/multiple/Selecteds.d.ts +3 -1
  222. package/lib/inputs/select/multiple/Selecteds.js +17 -22
  223. package/lib/inputs/select/multiple/index.d.ts +2 -0
  224. package/lib/inputs/select/multiple/index.js +125 -162
  225. package/lib/inputs/select/simple/index.d.ts +2 -0
  226. package/lib/inputs/select/simple/index.js +154 -179
  227. package/lib/inputs/select/types.d.ts +5 -2
  228. package/lib/inputs/text/index.js +3 -6
  229. package/lib/inputs/textarea/index.d.ts +2 -0
  230. package/lib/inputs/textarea/index.js +10 -10
  231. package/lib/inputs/textarea/types.d.ts +2 -0
  232. package/lib/inputs/types.d.ts +12 -9
  233. package/lib/internals/colorStyles.js +2 -3
  234. package/lib/internals/constants.js +2 -4
  235. package/lib/internals/types.d.ts +5 -2
  236. package/lib/internals/withTooltip.d.ts +3 -2
  237. package/lib/internals/withTooltip.js +76 -76
  238. package/lib/labelMessages/index.js +22 -42
  239. package/lib/labels/DangerLabel.js +10 -9
  240. package/lib/labels/DefaultLabel.js +26 -40
  241. package/lib/labels/InfoLabel.js +10 -9
  242. package/lib/labels/PrimaryLabel.js +10 -9
  243. package/lib/labels/SuccessLabel.js +10 -9
  244. package/lib/labels/WarningLabel.js +10 -9
  245. package/lib/labels/index.js +8 -9
  246. package/lib/labels/label_container/index.js +8 -8
  247. package/lib/list/Header.js +9 -8
  248. package/lib/list/Item.js +74 -70
  249. package/lib/list/Separator.js +5 -8
  250. package/lib/list/helpers.js +4 -6
  251. package/lib/list/index.js +74 -101
  252. package/lib/menus/float/MenuItem.js +19 -20
  253. package/lib/menus/float/SubMenuContainer.js +27 -33
  254. package/lib/menus/float/helpers.js +3 -4
  255. package/lib/menus/float/index.js +17 -18
  256. package/lib/menus/float/types.d.ts +1 -1
  257. package/lib/menus/index.js +2 -3
  258. package/lib/menus/sidenav/ExpandMenu.js +9 -8
  259. package/lib/menus/sidenav/MenuLink.js +10 -9
  260. package/lib/menus/sidenav/NavMenuGroup.js +12 -11
  261. package/lib/menus/sidenav/NavMenuItem.js +48 -62
  262. package/lib/menus/sidenav/NavSubMenuItem.js +20 -25
  263. package/lib/menus/sidenav/helpers.js +6 -9
  264. package/lib/menus/sidenav/index.js +85 -113
  265. package/lib/menus/sidenav/popup_menu_search/EmptyList.js +7 -7
  266. package/lib/menus/sidenav/popup_menu_search/index.js +64 -84
  267. package/lib/menus/sidenav/types.d.ts +1 -1
  268. package/lib/noPermission/index.js +14 -17
  269. package/lib/panel/Content.d.ts +1 -1
  270. package/lib/panel/Content.js +47 -60
  271. package/lib/panel/DangerPanel.d.ts +1 -1
  272. package/lib/panel/DangerPanel.js +6 -9
  273. package/lib/panel/Default.d.ts +1 -1
  274. package/lib/panel/Default.js +45 -60
  275. package/lib/panel/Header.d.ts +1 -1
  276. package/lib/panel/Header.js +32 -30
  277. package/lib/panel/InfoPanel.d.ts +1 -1
  278. package/lib/panel/InfoPanel.js +6 -9
  279. package/lib/panel/PrimaryPanel.d.ts +1 -1
  280. package/lib/panel/PrimaryPanel.js +6 -9
  281. package/lib/panel/SuccessPanel.d.ts +1 -1
  282. package/lib/panel/SuccessPanel.js +6 -9
  283. package/lib/panel/ToolBar.d.ts +1 -1
  284. package/lib/panel/ToolBar.js +6 -5
  285. package/lib/panel/WarningPanel.d.ts +1 -1
  286. package/lib/panel/WarningPanel.js +6 -9
  287. package/lib/panel/helpers.d.ts +7 -2
  288. package/lib/panel/helpers.js +12 -24
  289. package/lib/panel/index.d.ts +1 -1
  290. package/lib/panel/index.js +9 -10
  291. package/lib/panel/types.d.ts +46 -5
  292. package/lib/permissionValidations.js +24 -29
  293. package/lib/popover/PopoverText.js +6 -5
  294. package/lib/popover/PopoverTitle.js +6 -5
  295. package/lib/popover/index.js +15 -19
  296. package/lib/progress/Bar.js +31 -37
  297. package/lib/progress/index.js +18 -20
  298. package/lib/radio/index.js +36 -57
  299. package/lib/shortcuts/index.js +10 -9
  300. package/lib/skeleton/SkeletonContainer.js +10 -11
  301. package/lib/skeleton/index.js +27 -34
  302. package/lib/spinner/SpinnerLoading.js +7 -8
  303. package/lib/spinner/index.js +23 -37
  304. package/lib/split/Split.js +95 -112
  305. package/lib/split/SplitSide.js +20 -19
  306. package/lib/split/helpers.js +3 -4
  307. package/lib/split/index.js +3 -4
  308. package/lib/table/Body.js +42 -45
  309. package/lib/table/Header.js +29 -32
  310. package/lib/table/HeaderColumn.d.ts +1 -1
  311. package/lib/table/HeaderColumn.js +35 -22
  312. package/lib/table/Row.js +45 -48
  313. package/lib/table/RowColumn.js +38 -39
  314. package/lib/table/helpers.js +7 -13
  315. package/lib/table/index.js +82 -102
  316. package/lib/table/types.d.ts +3 -0
  317. package/lib/tabs/DropdownTabs.d.ts +11 -0
  318. package/lib/tabs/DropdownTabs.js +71 -0
  319. package/lib/tabs/Menu.d.ts +1 -1
  320. package/lib/tabs/Menu.js +35 -23
  321. package/lib/tabs/{DropdownItems.d.ts → MenuTabs.d.ts} +3 -3
  322. package/lib/tabs/MenuTabs.js +82 -0
  323. package/lib/tabs/Panel.d.ts +1 -1
  324. package/lib/tabs/Panel.js +70 -66
  325. package/lib/tabs/context.d.ts +12 -0
  326. package/lib/tabs/context.js +130 -0
  327. package/lib/tabs/index.d.ts +1 -1
  328. package/lib/tabs/index.js +46 -225
  329. package/lib/tabs/tabHelpers.d.ts +4 -15
  330. package/lib/tabs/tabHelpers.js +37 -42
  331. package/lib/tabs/types.d.ts +48 -15
  332. package/lib/tabs/useTabs.d.ts +11 -0
  333. package/lib/tabs/useTabs.js +11 -0
  334. package/lib/textContent/index.d.ts +8 -0
  335. package/lib/textContent/index.js +30 -0
  336. package/lib/toolbar/ButtonBar.js +39 -43
  337. package/lib/toolbar/LabelBar.js +36 -40
  338. package/lib/toolbar/Separator.js +5 -8
  339. package/lib/toolbar/ToolBarGroup.js +7 -7
  340. package/lib/toolbar/helpers.js +2 -3
  341. package/lib/toolbar/index.js +23 -25
  342. package/lib/toolbar/types.d.ts +1 -0
  343. package/lib/tooltip/index.js +28 -33
  344. package/lib/treetable/Body.js +21 -33
  345. package/lib/treetable/Header.js +11 -14
  346. package/lib/treetable/Row.js +90 -142
  347. package/lib/treetable/helpers.js +15 -24
  348. package/lib/treetable/index.js +11 -13
  349. package/lib/treeview/Header.js +8 -7
  350. package/lib/treeview/Node.js +96 -136
  351. package/lib/treeview/constants.js +2 -3
  352. package/lib/treeview/index.js +150 -216
  353. package/lib/uitour/helpers.js +4 -7
  354. package/lib/uitour/index.d.ts +2 -1
  355. package/lib/uitour/index.js +113 -100
  356. package/lib/uitour/types.d.ts +9 -1
  357. package/package.json +77 -82
  358. package/tsconfig.json +1 -0
  359. package/.tool-versions +0 -1
  360. package/lib/inputs/mask/imaskHOC.js +0 -224
  361. package/lib/tabs/DropdownItems.js +0 -65
  362. package/lib/tabs/MenuItems.d.ts +0 -11
  363. package/lib/tabs/MenuItems.js +0 -76
  364. package/lib/treeview_old/Header.js +0 -28
  365. package/lib/treeview_old/Node.js +0 -88
  366. package/lib/treeview_old/index.js +0 -42
  367. package/lib/types-c2a0f035.d.ts +0 -50
package/lib/tabs/Panel.js CHANGED
@@ -1,82 +1,86 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
7
  var _react = _interopRequireWildcard(require("react"));
9
- var _tabHelpers = _interopRequireWildcard(require("./tabHelpers"));
8
+ var _tabHelpers = require("./tabHelpers");
10
9
  var _permissionValidations = require("../permissionValidations");
11
10
  var _noPermission = _interopRequireDefault(require("../noPermission"));
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- 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); }
14
- 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; }
15
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
20
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
- var observer = null;
22
- var Panel = function Panel(_ref) {
23
- var id = _ref.id,
24
- children = _ref.children,
25
- onEndReached = _ref.onEndReached,
26
- permissionAttr = _ref.permissionAttr,
27
- _ref$customClass = _ref.customClass,
28
- customClass = _ref$customClass === void 0 ? '' : _ref$customClass,
29
- _ref$onEndReachedThre = _ref.onEndReachedThreshold,
30
- onEndReachedThreshold = _ref$onEndReachedThre === void 0 ? 0.1 : _ref$onEndReachedThre;
31
- var _useContext = (0, _react.useContext)(_tabHelpers.default),
32
- selectedTabId = _useContext.selectedTabId,
33
- contentHeight = _useContext.contentHeight;
34
- var hidePanel = id !== selectedTabId ? 'hidepanel' : '';
35
- var style = {};
36
- var rootElementRef = (0, _react.useRef)(null);
37
- var observedElement = (0, _react.useRef)(null);
38
- /* usa uma referencia ao onEndReched pra evitar novas instancias do observer */
39
- var onEndReachedRef = (0, _react.useRef)(onEndReached);
40
- var _useState = (0, _react.useState)((0, _permissionValidations.actionsOnPermissionDenied)(_tabHelpers.onDeniedOptions, permissionAttr)),
41
- _useState2 = _slicedToArray(_useState, 1),
42
- onDenied = _useState2[0];
43
- var hideContent = onDenied.hideContent;
44
- if (contentHeight) style.height = contentHeight;
45
- var options = {
46
- root: rootElementRef.current,
47
- threshold: onEndReachedThreshold || 0
48
- };
49
- var scrollObserver = function scrollObserver(node) {
50
- // evitar criação de multiplos observers
51
- if (observer) observer.unobserve(node);
52
- observer = new IntersectionObserver(function (entries) {
53
- entries.forEach(function (en) {
54
- if (en.intersectionRatio > 0) {
55
- var _onEndReachedRef$curr;
56
- (_onEndReachedRef$curr = onEndReachedRef.current) === null || _onEndReachedRef$curr === void 0 ? void 0 : _onEndReachedRef$curr.call(onEndReachedRef);
11
+ var _useTabs = require("./useTabs");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ const Panel = props => {
16
+ const {
17
+ id,
18
+ children,
19
+ onEndReached,
20
+ permissionAttr,
21
+ customClass = '',
22
+ onEndReachedThreshold = 0.1,
23
+ style
24
+ } = props;
25
+ const {
26
+ selectedTabId
27
+ } = (0, _useTabs.useTabs)();
28
+ const hidePanel = id !== selectedTabId ? 'hidepanel' : '';
29
+ const rootElementRef = (0, _react.useRef)(null);
30
+ const [onDenied] = (0, _react.useState)((0, _permissionValidations.actionsOnPermissionDenied)(_tabHelpers.onDeniedOptions, permissionAttr));
31
+ const {
32
+ hideContent
33
+ } = onDenied;
34
+ const enableOnEndReached = (0, _react.useRef)(true);
35
+ const lastScrollHeight = (0, _react.useRef)(0);
36
+ const onScrollEndReached = (0, _react.useCallback)(async () => {
37
+ const element = rootElementRef.current;
38
+ if (element && onEndReached) {
39
+ const {
40
+ scrollTop,
41
+ scrollHeight,
42
+ clientHeight
43
+ } = element;
44
+ const scrollOffset = scrollHeight - clientHeight - scrollTop - 1;
45
+ const threshold = (0, _tabHelpers.getCurrentThreshold)(element, onEndReachedThreshold);
46
+ if (scrollOffset <= threshold && enableOnEndReached.current) {
47
+ enableOnEndReached.current = false;
48
+ await new Promise(resolve => {
49
+ resolve(onEndReached());
50
+ });
51
+ lastScrollHeight.current = scrollHeight;
52
+ }
53
+ }
54
+ }, [onEndReached, onEndReachedThreshold, rootElementRef.current, lastScrollHeight.current]);
55
+ (0, _react.useEffect)(() => {
56
+ let observer;
57
+ if (rootElementRef.current && onEndReached) {
58
+ observer = new ResizeObserver(() => {
59
+ const {
60
+ scrollHeight
61
+ } = rootElementRef.current;
62
+ if (scrollHeight !== lastScrollHeight.current) {
63
+ var _observer;
64
+ enableOnEndReached.current = true;
65
+ (_observer = observer) === null || _observer === void 0 ? void 0 : _observer.disconnect();
57
66
  }
58
- }, options);
59
- });
60
- observer.observe(node);
61
- };
62
-
63
- /* atualiza referencia caso a função mude */
64
- (0, _react.useEffect)(function () {
65
- onEndReachedRef.current = onEndReached;
66
- }, [onEndReached]);
67
- (0, _react.useEffect)(function () {
68
- if (observedElement.current && onEndReachedRef.current) {
69
- scrollObserver(observedElement.current);
67
+ });
68
+ observer.observe(rootElementRef.current);
69
+ rootElementRef.current.addEventListener('scroll', onScrollEndReached);
70
+ rootElementRef.current.addEventListener('resize', onScrollEndReached);
70
71
  }
71
- }, [observedElement]);
72
+ return () => {
73
+ var _rootElementRef$curre, _rootElementRef$curre2, _observer2;
74
+ (_rootElementRef$curre = rootElementRef.current) === null || _rootElementRef$curre === void 0 ? void 0 : _rootElementRef$curre.removeEventListener('scroll', onScrollEndReached);
75
+ (_rootElementRef$curre2 = rootElementRef.current) === null || _rootElementRef$curre2 === void 0 ? void 0 : _rootElementRef$curre2.removeEventListener('resize', onScrollEndReached);
76
+ (_observer2 = observer) === null || _observer2 === void 0 ? void 0 : _observer2.disconnect();
77
+ };
78
+ }, [onScrollEndReached]);
72
79
  return /*#__PURE__*/_react.default.createElement("div", {
73
80
  ref: rootElementRef,
74
81
  id: id,
75
- className: " ".concat(customClass, " panel ").concat(hidePanel),
82
+ className: "".concat(customClass, " panel ").concat(hidePanel),
76
83
  style: style
77
- }, hideContent ? /*#__PURE__*/_react.default.createElement(_noPermission.default, null) : children, !hideContent && onEndReached ? /*#__PURE__*/_react.default.createElement("div", {
78
- ref: observedElement
79
- }) : /*#__PURE__*/_react.default.createElement("noscript", null));
84
+ }, hideContent ? /*#__PURE__*/_react.default.createElement(_noPermission.default, null) : children);
80
85
  };
81
- var _default = Panel;
82
- exports.default = _default;
86
+ var _default = exports.default = Panel;
@@ -0,0 +1,12 @@
1
+ import React__default from 'react';
2
+ import { TabsContextType, TabsProviderProps } from './types.js';
3
+ import '../@types/Size.js';
4
+ import '../@types/Position.js';
5
+ import '../@types/PermissionAttr.js';
6
+ import '../@types/Icon.js';
7
+ import '../icons/helper.js';
8
+
9
+ declare const TabsContext: React__default.Context<TabsContextType>;
10
+ declare function TabsProvider({ children, tabs: tabsProp, container, selectedTab, onTabChange, onTabClose, tabsWidth: tabsWidthProp, firstTabIdent, }: TabsProviderProps): JSX.Element;
11
+
12
+ export { TabsContext, TabsProvider };
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TabsContext = void 0;
7
+ exports.TabsProvider = TabsProvider;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _lodash = _interopRequireDefault(require("lodash"));
10
+ var _tabHelpers = require("./tabHelpers");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ const TabsContext = exports.TabsContext = /*#__PURE__*/(0, _react.createContext)({});
15
+ function TabsProvider(_ref) {
16
+ var _menuRef$current$clie, _menuRef$current;
17
+ let {
18
+ children,
19
+ tabs: tabsProp,
20
+ container,
21
+ selectedTab = null,
22
+ onTabChange,
23
+ onTabClose,
24
+ tabsWidth: tabsWidthProp,
25
+ firstTabIdent = false
26
+ } = _ref;
27
+ const [selectedTabId, setSelectedTabId] = _react.default.useState(selectedTab);
28
+ const [containerWidth, setContainerWidth] = (0, _react.useState)(() => {
29
+ var _container$current$cl, _container$current;
30
+ return (_container$current$cl = (_container$current = container.current) === null || _container$current === void 0 ? void 0 : _container$current.clientWidth) !== null && _container$current$cl !== void 0 ? _container$current$cl : 0;
31
+ });
32
+ const [tabs, setTabs] = (0, _react.useState)((0, _tabHelpers.getTabs)(tabsProp));
33
+ const menuRef = (0, _react.useRef)(null);
34
+ const menuSize = ((_menuRef$current$clie = (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.clientWidth) !== null && _menuRef$current$clie !== void 0 ? _menuRef$current$clie : 0) - 38 - (firstTabIdent ? 15 : 0);
35
+ const tabsWidth = (0, _react.useMemo)(() => {
36
+ if (typeof tabsWidthProp === 'string') return tabsWidthProp === 'auto' ? 100 : parseInt(tabsWidthProp) || 100;
37
+ return tabsWidthProp;
38
+ }, [tabsWidthProp]);
39
+ const maxTabs = Math.round(menuSize / tabsWidth);
40
+ if (selectedTab && selectedTab !== selectedTabId) {
41
+ setSelectedTabId(selectedTab);
42
+ }
43
+ if (tabs.length > 0 && selectedTabId === null) {
44
+ var _tabs$;
45
+ setSelectedTabId((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.id);
46
+ }
47
+ const dropdownTabs = (0, _react.useMemo)(() => {
48
+ if (menuSize === 0) return [];
49
+ return tabs.slice(maxTabs);
50
+ }, [tabs, maxTabs, containerWidth]);
51
+ const menuTabs = (0, _react.useMemo)(() => {
52
+ return tabs.slice(0, maxTabs);
53
+ }, [tabs, maxTabs, containerWidth]);
54
+ const tabsCount = tabs.length;
55
+ const updateTabs = (0, _react.useCallback)(tabId => {
56
+ const tabInDropdownIndex = dropdownTabs.findIndex(tab => tab.id === tabId);
57
+ if (tabInDropdownIndex !== -1) {
58
+ const tabIndex = tabs.findIndex(tab => tab.id === tabId);
59
+ const tabInDropdown = dropdownTabs[tabInDropdownIndex];
60
+ setTabs(prevState => {
61
+ prevState.splice(tabIndex, 1);
62
+ return [tabInDropdown, ...prevState];
63
+ });
64
+ }
65
+ }, [setTabs, menuTabs, tabs, dropdownTabs]);
66
+ const selectTab = (0, _react.useCallback)(tabId => {
67
+ updateTabs(tabId);
68
+ setSelectedTabId(tabId);
69
+ if (onTabChange) {
70
+ onTabChange(tabId);
71
+ }
72
+ }, [onTabChange, setSelectedTabId, updateTabs]);
73
+ const removeTab = (0, _react.useCallback)(tabId => {
74
+ const tabIndex = tabs.findIndex(tab => tab.id === tabId);
75
+ const newSelectedTab = tabIndex === 0 ? tabs[tabIndex + 1] : tabs[tabIndex - 1];
76
+ if (selectedTabId === tabId) {
77
+ selectTab(newSelectedTab.id);
78
+ }
79
+ if (tabIndex !== -1) {
80
+ setTabs(prevState => {
81
+ prevState.splice(tabIndex, 1);
82
+ return prevState;
83
+ });
84
+ }
85
+ if (onTabClose) {
86
+ onTabClose(String(tabId));
87
+ }
88
+ }, [onTabClose, tabs, dropdownTabs, selectedTabId]);
89
+ const onResizeContainer = (0, _react.useCallback)(contentRect => {
90
+ setContainerWidth(contentRect.width);
91
+ }, [setContainerWidth]);
92
+ (0, _react.useEffect)(() => {
93
+ const newTabs = (0, _tabHelpers.getTabs)(tabsProp);
94
+ if (newTabs !== tabs) {
95
+ const includedTabs = _lodash.default.differenceBy(newTabs, tabs, 'id');
96
+ const excludedTabsIds = _lodash.default.differenceBy(tabs, newTabs, 'id').map(tab => tab.id);
97
+ setTabs(prevState => {
98
+ let currentTabs = prevState;
99
+ if (excludedTabsIds) {
100
+ currentTabs = currentTabs.filter(tab => !excludedTabsIds.includes(tab.id));
101
+ }
102
+ return [...currentTabs, ...includedTabs];
103
+ });
104
+ }
105
+ }, [tabsProp]);
106
+ (0, _react.useEffect)(() => {
107
+ const resizeObserver = new ResizeObserver(_ref2 => {
108
+ let [entry] = _ref2;
109
+ onResizeContainer(entry.contentRect);
110
+ });
111
+ if (container.current) resizeObserver.observe(container.current);
112
+ return () => {
113
+ resizeObserver.disconnect();
114
+ };
115
+ }, [container.current, onResizeContainer]);
116
+ return /*#__PURE__*/_react.default.createElement(TabsContext.Provider, {
117
+ value: {
118
+ tabs,
119
+ menuTabs,
120
+ dropdownTabs,
121
+ containerWidth,
122
+ tabsCount,
123
+ updateTabs,
124
+ selectTab,
125
+ selectedTabId,
126
+ removeTab,
127
+ menuRef
128
+ }
129
+ }, children);
130
+ }
@@ -7,6 +7,6 @@ import '../@types/PermissionAttr.js';
7
7
  import '../@types/Icon.js';
8
8
  import '../icons/helper.js';
9
9
 
10
- declare const Tabs: ({ toolbar, children, selectedTab, firstTabIdent, handlerTabClick, handlerCloseTab, style, tabMenuSize, tabMenuAlign, tabMenuPosition, customClassForToolBar, tabsWidthOnExceedCount, ...props }: ITabsPros) => JSX.Element;
10
+ declare const Tabs: ({ toolbar, toolBarRef, children, firstTabIdent, handlerTabClick, handlerCloseTab, style, tabMenuSize, tabMenuAlign, tabMenuPosition, customClassForToolBar, tabsWidth, ...props }: ITabsPros) => JSX.Element;
11
11
 
12
12
  export { Tabs as default };
package/lib/tabs/index.js CHANGED
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  Object.defineProperty(exports, "TabPanel", {
8
7
  enumerable: true,
9
- get: function get() {
8
+ get: function () {
10
9
  return _Panel.default;
11
10
  }
12
11
  });
@@ -14,236 +13,58 @@ exports.default = void 0;
14
13
  var _react = _interopRequireWildcard(require("react"));
15
14
  var _Menu = _interopRequireDefault(require("./Menu"));
16
15
  var _Panel = _interopRequireDefault(require("./Panel"));
17
- var _tabHelpers = _interopRequireWildcard(require("./tabHelpers"));
16
+ var _tabHelpers = require("./tabHelpers");
18
17
  require("../assets/styles/tabs.scss");
19
- var _excluded = ["toolbar", "children", "selectedTab", "firstTabIdent", "handlerTabClick", "handlerCloseTab", "style", "tabMenuSize", "tabMenuAlign", "tabMenuPosition", "customClassForToolBar", "tabsWidthOnExceedCount"];
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
- 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; }
23
- 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); }
24
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
25
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
26
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
27
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
28
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
29
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
30
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
31
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
32
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
33
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
34
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
35
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
36
- var DROPDOWN_WIDTH = 26;
37
- var Tabs = function Tabs(_ref) {
38
- var _panels$, _panels$$props;
39
- var toolbar = _ref.toolbar,
40
- children = _ref.children,
41
- selectedTab = _ref.selectedTab,
42
- firstTabIdent = _ref.firstTabIdent,
43
- handlerTabClick = _ref.handlerTabClick,
44
- handlerCloseTab = _ref.handlerCloseTab,
45
- _ref$style = _ref.style,
46
- style = _ref$style === void 0 ? {} : _ref$style,
47
- _ref$tabMenuSize = _ref.tabMenuSize,
48
- tabMenuSize = _ref$tabMenuSize === void 0 ? 'default' : _ref$tabMenuSize,
49
- _ref$tabMenuAlign = _ref.tabMenuAlign,
50
- tabMenuAlign = _ref$tabMenuAlign === void 0 ? 'left' : _ref$tabMenuAlign,
51
- _ref$tabMenuPosition = _ref.tabMenuPosition,
52
- tabMenuPosition = _ref$tabMenuPosition === void 0 ? 'top' : _ref$tabMenuPosition,
53
- _ref$customClassForTo = _ref.customClassForToolBar,
54
- customClassForToolBar = _ref$customClassForTo === void 0 ? '' : _ref$customClassForTo,
55
- _ref$tabsWidthOnExcee = _ref.tabsWidthOnExceedCount,
56
- tabsWidthOnExceedCount = _ref$tabsWidthOnExcee === void 0 ? 0 : _ref$tabsWidthOnExcee,
18
+ var _context = require("./context");
19
+ const _excluded = ["toolbar", "toolBarRef", "children", "firstTabIdent", "handlerTabClick", "handlerCloseTab", "style", "tabMenuSize", "tabMenuAlign", "tabMenuPosition", "customClassForToolBar", "tabsWidth"];
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
25
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
26
+ const Tabs = _ref => {
27
+ let {
28
+ toolbar,
29
+ toolBarRef,
30
+ children,
31
+ firstTabIdent,
32
+ handlerTabClick,
33
+ handlerCloseTab,
34
+ style = {},
35
+ tabMenuSize = 'default',
36
+ tabMenuAlign = 'left',
37
+ tabMenuPosition = 'top',
38
+ customClassForToolBar = '',
39
+ tabsWidth = 'auto'
40
+ } = _ref,
57
41
  props = _objectWithoutProperties(_ref, _excluded);
58
- var _useState = (0, _react.useState)((0, _tabHelpers.buildPanels)(children) || []),
59
- _useState2 = _slicedToArray(_useState, 2),
60
- panels = _useState2[0],
61
- setPanels = _useState2[1];
62
- var _useState3 = (0, _react.useState)([]),
63
- _useState4 = _slicedToArray(_useState3, 2),
64
- currentPanels = _useState4[0],
65
- setCurrentPanels = _useState4[1];
66
- var _useState5 = (0, _react.useState)([]),
67
- _useState6 = _slicedToArray(_useState5, 2),
68
- dropdownPanels = _useState6[0],
69
- setDropdownPanels = _useState6[1];
70
- var _useState7 = (0, _react.useState)(selectedTab || ((_panels$ = panels[0]) === null || _panels$ === void 0 ? void 0 : (_panels$$props = _panels$.props) === null || _panels$$props === void 0 ? void 0 : _panels$$props.id)),
71
- _useState8 = _slicedToArray(_useState7, 2),
72
- selectedTabId = _useState8[0],
73
- setSelectedTabId = _useState8[1];
74
- var _useState9 = (0, _react.useState)(''),
75
- _useState10 = _slicedToArray(_useState9, 1),
76
- customClass = _useState10[0];
77
- var _useState11 = (0, _react.useState)(0),
78
- _useState12 = _slicedToArray(_useState11, 2),
79
- contentHeight = _useState12[0],
80
- setContentHeight = _useState12[1];
81
- var _useState13 = (0, _react.useState)(0),
82
- _useState14 = _slicedToArray(_useState13, 2),
83
- tabsContentWidth = _useState14[0],
84
- setTabsContentWidth = _useState14[1];
85
- var _useState15 = (0, _react.useState)(false),
86
- _useState16 = _slicedToArray(_useState15, 2),
87
- hasMenuAttributes = _useState16[0],
88
- setHasMenuAttributes = _useState16[1];
89
- var _useState17 = (0, _react.useState)('auto'),
90
- _useState18 = _slicedToArray(_useState17, 2),
91
- tabWidth = _useState18[0],
92
- setTabWidth = _useState18[1];
93
- var componentRef = (0, _react.useRef)(null);
94
- var _menuRef = (0, _react.useRef)(null);
95
- var _toolBarRef = (0, _react.useRef)(null);
96
- var getTabListWidth = function getTabListWidth() {
97
- var _menuRef$current;
98
- var tabMenu = (_menuRef$current = _menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.children[0];
99
- var tabList = Array.from(tabMenu === null || tabMenu === void 0 ? void 0 : tabMenu.childNodes);
100
- var tabsListWidth = tabList.reduce(function (total, tab) {
101
- return total + tab.clientWidth;
102
- }, 0);
103
- return tabsListWidth;
104
- };
105
- var getMenuAttributes = function getMenuAttributes() {
106
- var _menuRef$current2;
107
- var menuSize = (_menuRef$current2 = _menuRef.current) === null || _menuRef$current2 === void 0 ? void 0 : _menuRef$current2.clientWidth;
108
- var toolbarSize = toolbar && _toolBarRef.current ? _toolBarRef.current.clientWidth : 0;
109
- var contentWidth = menuSize ? (toolbar ? menuSize - toolbarSize : menuSize) - DROPDOWN_WIDTH : 0;
110
- setTabsContentWidth(contentWidth);
111
- };
112
- var getTabsList = function getTabsList() {
113
- var tabsListWidth = getTabListWidth();
114
- var newDropdownPanels = _toConsumableArray(dropdownPanels);
115
- var newCurrentPanels = _toConsumableArray(panels);
116
- if (newDropdownPanels.length) {
117
- var newDropdownPanelsIds = newDropdownPanels.map(function (dd) {
118
- var _dd$props;
119
- return dd === null || dd === void 0 ? void 0 : (_dd$props = dd.props) === null || _dd$props === void 0 ? void 0 : _dd$props.id;
120
- });
121
- newCurrentPanels = newCurrentPanels.filter(function (tab) {
122
- return !newDropdownPanelsIds.includes(tab === null || tab === void 0 ? void 0 : tab.props.id);
123
- });
124
- }
125
- if (tabsListWidth > tabsContentWidth) {
126
- var lastPanel = newCurrentPanels[newCurrentPanels.length - 1];
127
- newDropdownPanels.push(lastPanel);
128
- newCurrentPanels.pop();
129
- if (tabsWidthOnExceedCount) setTabWidth(tabsWidthOnExceedCount);
130
- } else if (tabsListWidth + (tabsWidthOnExceedCount || 110) < tabsContentWidth && newDropdownPanels.length) {
131
- newCurrentPanels.push(newDropdownPanels[0]);
132
- newDropdownPanels.shift();
133
- }
134
- setCurrentPanels(newCurrentPanels);
135
- setDropdownPanels(newDropdownPanels);
136
- };
137
- var onMenuClick = function onMenuClick(tabId) {
138
- var includedInDropdown = dropdownPanels.filter(function (item) {
139
- var _item$props;
140
- return (item === null || item === void 0 ? void 0 : (_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.id) === tabId;
141
- });
142
- if (includedInDropdown.length > 0 && getTabListWidth() > 0) {
143
- var newDropdownPanels = dropdownPanels.filter(function (item) {
144
- var _item$props2;
145
- return (item === null || item === void 0 ? void 0 : (_item$props2 = item.props) === null || _item$props2 === void 0 ? void 0 : _item$props2.id) !== tabId;
146
- });
147
- var newPanels = panels.filter(function (item) {
148
- return (item === null || item === void 0 ? void 0 : item.props.id) !== tabId;
149
- });
150
- var newCurrentPanels = currentPanels.slice(0, -1);
151
- newDropdownPanels.push(currentPanels.pop());
152
- newPanels.unshift(includedInDropdown[0]);
153
- newCurrentPanels.unshift(includedInDropdown[0]);
154
- setPanels(newPanels);
155
- setDropdownPanels(newDropdownPanels);
156
- setCurrentPanels(newCurrentPanels);
157
- }
158
- if (handlerTabClick) handlerTabClick(tabId);
159
- setSelectedTabId(tabId);
160
- };
161
- var onRemovePanel = function onRemovePanel(closedPanelId) {
162
- var panelIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
163
- var fromDropdownPanels = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
164
- var newSelectedTabId = selectedTabId;
165
- var remainPanels;
166
- if (!fromDropdownPanels) {
167
- var _remainPanels;
168
- remainPanels = panels.filter(function (panel) {
169
- return (panel === null || panel === void 0 ? void 0 : panel.props.id) !== closedPanelId;
170
- });
171
- newSelectedTabId = selectedTabId === closedPanelId ? (_remainPanels = remainPanels[panelIndex - (panelIndex === 0 ? 0 : 1)]) === null || _remainPanels === void 0 ? void 0 : _remainPanels.props.id : selectedTabId;
172
- setSelectedTabId(newSelectedTabId);
173
- } else {
174
- remainPanels = dropdownPanels.filter(function (panel) {
175
- var _panel$props;
176
- return (panel === null || panel === void 0 ? void 0 : (_panel$props = panel.props) === null || _panel$props === void 0 ? void 0 : _panel$props.id) !== closedPanelId;
177
- });
178
- setDropdownPanels(remainPanels);
179
- }
180
- if (handlerCloseTab && newSelectedTabId) handlerCloseTab(closedPanelId, newSelectedTabId);
181
- };
182
- var onResize = function onResize() {
183
- if (componentRef.current && _menuRef.current) {
184
- setContentHeight(componentRef.current.offsetHeight - _menuRef.current.offsetHeight);
185
- if (!hasMenuAttributes && _menuRef.current && _menuRef.current.clientWidth > 0) {
186
- getMenuAttributes();
187
- setHasMenuAttributes(true);
188
- }
189
- }
190
- };
191
- var renderContent = function renderContent() {
192
- var menu = /*#__PURE__*/_react.default.createElement(_Menu.default, _extends({}, props, {
42
+ const containerRef = (0, _react.useRef)(null);
43
+ const content = (0, _react.useMemo)(() => {
44
+ const menu = /*#__PURE__*/_react.default.createElement(_Menu.default, {
193
45
  toolbar: toolbar,
194
- tabWidth: tabWidth,
195
- customClass: customClass,
46
+ tabWidth: tabsWidth,
47
+ customClassForToolBar: customClassForToolBar,
196
48
  tabMenuSize: tabMenuSize,
197
- handlerClick: onMenuClick,
198
49
  tabMenuAlign: tabMenuAlign,
199
- firstTabIdent: firstTabIdent,
200
- currentPanels: currentPanels,
201
- selectedTabId: selectedTabId,
202
- dropdownPanels: dropdownPanels,
203
- handlerRemovePanel: onRemovePanel,
204
- customClassForToolBar: customClassForToolBar,
205
- menuRef: function menuRef(ref) {
206
- _menuRef.current = ref;
207
- },
208
- toolBarRef: function toolBarRef(ref) {
209
- _toolBarRef.current = ref;
210
- }
211
- }));
212
- /*
213
- Change the order of elements depending of menus position
214
- */
50
+ firstTabIdent: firstTabIdent
51
+ });
215
52
  if (tabMenuPosition === 'top' || tabMenuPosition === 'left') {
216
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, menu, panels);
53
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, menu, children);
217
54
  }
218
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, panels, menu);
219
- };
220
- (0, _react.useEffect)(function () {
221
- onResize();
222
- window.addEventListener('resize', onResize);
223
- return function () {
224
- return window.removeEventListener('resize', onResize);
225
- };
226
- }, [_menuRef.current, tabMenuPosition]);
227
- (0, _react.useEffect)(function () {
228
- if (selectedTab) setSelectedTabId(selectedTab);
229
- if (children) setPanels((0, _tabHelpers.buildPanels)(children));
230
- }, [selectedTab, children]);
231
- (0, _react.useEffect)(function () {
232
- getTabsList();
233
- }, [panels.length, currentPanels.length, tabsContentWidth]);
234
- var contextValues = {
235
- selectedTabId: selectedTabId,
236
- contentHeight: contentHeight
237
- };
238
- return /*#__PURE__*/_react.default.createElement(_tabHelpers.default.Provider, {
239
- value: contextValues
240
- }, /*#__PURE__*/_react.default.createElement("div", {
241
- ref: function ref(_ref2) {
242
- componentRef.current = _ref2;
243
- },
55
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, children, menu);
56
+ }, [children, tabMenuPosition]);
57
+ return /*#__PURE__*/_react.default.createElement(_context.TabsProvider, _extends({
58
+ tabs: children,
59
+ container: containerRef,
60
+ onTabChange: handlerTabClick,
61
+ onTabClose: handlerCloseTab,
62
+ tabsWidth: tabsWidth,
63
+ firstTabIdent: firstTabIdent
64
+ }, props), /*#__PURE__*/_react.default.createElement("div", {
65
+ ref: containerRef,
244
66
  className: (0, _tabHelpers.tabsClass)(tabMenuPosition),
245
67
  style: style
246
- }, renderContent()));
68
+ }, content));
247
69
  };
248
- var _default = Tabs;
249
- exports.default = _default;
70
+ var _default = exports.default = Tabs;