flexlayout-react 0.8.11 → 0.8.13

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 (473) hide show
  1. package/README.md +16 -5
  2. package/declarations/Attribute.d.ts +25 -1
  3. package/declarations/AttributeDefinitions.d.ts +18 -1
  4. package/declarations/DockLocation.d.ts +22 -0
  5. package/declarations/I18nLabel.d.ts +2 -1
  6. package/declarations/Orientation.d.ts +4 -0
  7. package/declarations/Rect.d.ts +3 -0
  8. package/declarations/index.d.ts +1 -0
  9. package/declarations/model/BorderNode.d.ts +53 -0
  10. package/declarations/model/BorderSet.d.ts +28 -0
  11. package/declarations/model/IDraggable.d.ts +4 -0
  12. package/declarations/model/IDropTarget.d.ts +10 -0
  13. package/declarations/model/LayoutWindow.d.ts +16 -0
  14. package/declarations/model/Model.d.ts +55 -0
  15. package/declarations/model/Node.d.ts +61 -0
  16. package/declarations/model/RowNode.d.ts +67 -0
  17. package/declarations/model/TabNode.d.ts +79 -0
  18. package/declarations/model/TabSetNode.d.ts +60 -0
  19. package/declarations/model/Utils.d.ts +8 -0
  20. package/declarations/view/BorderButton.d.ts +13 -1
  21. package/declarations/view/BorderTab.d.ts +8 -0
  22. package/declarations/view/BorderTabSet.d.ts +10 -1
  23. package/declarations/view/DragContainer.d.ts +9 -1
  24. package/declarations/view/ErrorBoundary.d.ts +22 -1
  25. package/declarations/view/Icons.d.ts +1 -0
  26. package/declarations/view/Layout.d.ts +143 -1
  27. package/declarations/view/Overlay.d.ts +8 -1
  28. package/declarations/view/PopoutWindow.d.ts +14 -1
  29. package/declarations/view/PopupMenu.d.ts +12 -1
  30. package/declarations/view/Row.d.ts +9 -1
  31. package/declarations/view/Splitter.d.ts +14 -1
  32. package/declarations/view/Tab.d.ts +11 -1
  33. package/declarations/view/TabButton.d.ts +11 -1
  34. package/declarations/view/TabButtonStamp.d.ts +9 -1
  35. package/declarations/view/TabOverflowHook.d.ts +16 -1
  36. package/declarations/view/TabSet.d.ts +9 -1
  37. package/declarations/view/Utils.d.ts +13 -0
  38. package/lib/index.js +6410 -22
  39. package/package.json +34 -26
  40. package/ChangeLog.txt +0 -370
  41. package/declarations/DragDrop.d.ts +0 -15
  42. package/declarations/PopupMenu.d.ts +0 -1
  43. package/declarations/model/SplitterNode.d.ts +0 -5
  44. package/declarations/model/WindowLayout.d.ts +0 -24
  45. package/declarations/src/Attribute.d.ts +0 -1
  46. package/declarations/src/AttributeDefinitions.d.ts +0 -1
  47. package/declarations/src/DockLocation.d.ts +0 -12
  48. package/declarations/src/DropInfo.d.ts +0 -12
  49. package/declarations/src/I18nLabel.d.ts +0 -10
  50. package/declarations/src/Orientation.d.ts +0 -7
  51. package/declarations/src/PopupMenu.d.ts +0 -1
  52. package/declarations/src/Rect.d.ts +0 -31
  53. package/declarations/src/Types.d.ts +0 -92
  54. package/declarations/src/index.d.ts +0 -20
  55. package/declarations/src/model/Action.d.ts +0 -5
  56. package/declarations/src/model/Actions.d.ts +0 -110
  57. package/declarations/src/model/BorderNode.d.ts +0 -28
  58. package/declarations/src/model/BorderSet.d.ts +0 -3
  59. package/declarations/src/model/ICloseType.d.ts +0 -5
  60. package/declarations/src/model/IDraggable.d.ts +0 -2
  61. package/declarations/src/model/IDropTarget.d.ts +0 -2
  62. package/declarations/src/model/IJsonModel.d.ts +0 -153
  63. package/declarations/src/model/Model.d.ts +0 -98
  64. package/declarations/src/model/Node.d.ts +0 -16
  65. package/declarations/src/model/RowNode.d.ts +0 -11
  66. package/declarations/src/model/TabNode.d.ts +0 -36
  67. package/declarations/src/model/TabSetNode.d.ts +0 -37
  68. package/declarations/src/model/Utils.d.ts +0 -1
  69. package/declarations/src/view/BorderButton.d.ts +0 -1
  70. package/declarations/src/view/BorderTab.d.ts +0 -2
  71. package/declarations/src/view/BorderTabSet.d.ts +0 -1
  72. package/declarations/src/view/DragContainer.d.ts +0 -1
  73. package/declarations/src/view/ErrorBoundary.d.ts +0 -1
  74. package/declarations/src/view/FloatingWindow.d.ts +0 -1
  75. package/declarations/src/view/Icons.d.ts +0 -7
  76. package/declarations/src/view/Layout.d.ts +0 -113
  77. package/declarations/src/view/Overlay.d.ts +0 -1
  78. package/declarations/src/view/PopupMenu.d.ts +0 -1
  79. package/declarations/src/view/Row.d.ts +0 -1
  80. package/declarations/src/view/Splitter.d.ts +0 -1
  81. package/declarations/src/view/Tab.d.ts +0 -1
  82. package/declarations/src/view/TabButton.d.ts +0 -1
  83. package/declarations/src/view/TabButtonStamp.d.ts +0 -1
  84. package/declarations/src/view/TabOverflowHook.d.ts +0 -1
  85. package/declarations/src/view/TabSet.d.ts +0 -1
  86. package/declarations/src/view/Utils.d.ts +0 -4
  87. package/declarations/view/ExtendedResizeObserver.d.ts +0 -23
  88. package/declarations/view/FloatingWindow.d.ts +0 -1
  89. package/declarations/view/FloatingWindowTab.d.ts +0 -1
  90. package/declarations/view/TabFloating.d.ts +0 -1
  91. package/dist/flexlayout.js +0 -610
  92. package/dist/flexlayout_min.js +0 -2
  93. package/dist/flexlayout_min.js.LICENSE.txt +0 -29
  94. package/dist/src/Attribute.js +0 -43
  95. package/dist/src/Attribute.js.map +0 -1
  96. package/dist/src/AttributeDefinitions.js +0 -132
  97. package/dist/src/AttributeDefinitions.js.map +0 -1
  98. package/dist/src/DockLocation.js +0 -121
  99. package/dist/src/DockLocation.js.map +0 -1
  100. package/dist/src/DropInfo.js +0 -10
  101. package/dist/src/DropInfo.js.map +0 -1
  102. package/dist/src/I18nLabel.js +0 -14
  103. package/dist/src/I18nLabel.js.map +0 -1
  104. package/dist/src/Orientation.js +0 -23
  105. package/dist/src/Orientation.js.map +0 -1
  106. package/dist/src/Rect.js +0 -111
  107. package/dist/src/Rect.js.map +0 -1
  108. package/dist/src/Types.js +0 -95
  109. package/dist/src/Types.js.map +0 -1
  110. package/dist/src/index.js +0 -22
  111. package/dist/src/index.js.map +0 -1
  112. package/dist/src/model/Action.js +0 -7
  113. package/dist/src/model/Action.js.map +0 -1
  114. package/dist/src/model/Actions.js +0 -170
  115. package/dist/src/model/Actions.js.map +0 -1
  116. package/dist/src/model/BorderNode.js +0 -390
  117. package/dist/src/model/BorderNode.js.map +0 -1
  118. package/dist/src/model/BorderSet.js +0 -67
  119. package/dist/src/model/BorderSet.js.map +0 -1
  120. package/dist/src/model/ICloseType.js +0 -7
  121. package/dist/src/model/ICloseType.js.map +0 -1
  122. package/dist/src/model/IDraggable.js +0 -2
  123. package/dist/src/model/IDraggable.js.map +0 -1
  124. package/dist/src/model/IDropTarget.js +0 -2
  125. package/dist/src/model/IDropTarget.js.map +0 -1
  126. package/dist/src/model/IJsonModel.js +0 -2
  127. package/dist/src/model/IJsonModel.js.map +0 -1
  128. package/dist/src/model/LayoutWindow.js +0 -81
  129. package/dist/src/model/LayoutWindow.js.map +0 -1
  130. package/dist/src/model/Model.js +0 -608
  131. package/dist/src/model/Model.js.map +0 -1
  132. package/dist/src/model/Node.js +0 -218
  133. package/dist/src/model/Node.js.map +0 -1
  134. package/dist/src/model/RowNode.js +0 -492
  135. package/dist/src/model/RowNode.js.map +0 -1
  136. package/dist/src/model/TabNode.js +0 -293
  137. package/dist/src/model/TabNode.js.map +0 -1
  138. package/dist/src/model/TabSetNode.js +0 -469
  139. package/dist/src/model/TabSetNode.js.map +0 -1
  140. package/dist/src/model/Utils.js +0 -48
  141. package/dist/src/model/Utils.js.map +0 -1
  142. package/dist/src/view/BorderButton.js +0 -126
  143. package/dist/src/view/BorderButton.js.map +0 -1
  144. package/dist/src/view/BorderTab.js +0 -44
  145. package/dist/src/view/BorderTab.js.map +0 -1
  146. package/dist/src/view/BorderTabSet.js +0 -138
  147. package/dist/src/view/BorderTabSet.js.map +0 -1
  148. package/dist/src/view/DragContainer.js +0 -16
  149. package/dist/src/view/DragContainer.js.map +0 -1
  150. package/dist/src/view/ErrorBoundary.js +0 -24
  151. package/dist/src/view/ErrorBoundary.js.map +0 -1
  152. package/dist/src/view/Icons.js +0 -29
  153. package/dist/src/view/Icons.js.map +0 -1
  154. package/dist/src/view/Layout.js +0 -881
  155. package/dist/src/view/Layout.js.map +0 -1
  156. package/dist/src/view/Overlay.js +0 -9
  157. package/dist/src/view/Overlay.js.map +0 -1
  158. package/dist/src/view/PopoutWindow.js +0 -129
  159. package/dist/src/view/PopoutWindow.js.map +0 -1
  160. package/dist/src/view/PopupMenu.js +0 -89
  161. package/dist/src/view/PopupMenu.js.map +0 -1
  162. package/dist/src/view/Row.js +0 -46
  163. package/dist/src/view/Row.js.map +0 -1
  164. package/dist/src/view/SizeTracker.js +0 -12
  165. package/dist/src/view/SizeTracker.js.map +0 -1
  166. package/dist/src/view/Splitter.js +0 -192
  167. package/dist/src/view/Splitter.js.map +0 -1
  168. package/dist/src/view/Tab.js +0 -91
  169. package/dist/src/view/Tab.js.map +0 -1
  170. package/dist/src/view/TabButton.js +0 -124
  171. package/dist/src/view/TabButton.js.map +0 -1
  172. package/dist/src/view/TabButtonStamp.js +0 -15
  173. package/dist/src/view/TabButtonStamp.js.map +0 -1
  174. package/dist/src/view/TabOverflowHook.js +0 -266
  175. package/dist/src/view/TabOverflowHook.js.map +0 -1
  176. package/dist/src/view/TabSet.js +0 -256
  177. package/dist/src/view/TabSet.js.map +0 -1
  178. package/dist/src/view/Utils.js +0 -110
  179. package/dist/src/view/Utils.js.map +0 -1
  180. package/lib/Attribute.js +0 -43
  181. package/lib/Attribute.js.map +0 -1
  182. package/lib/AttributeDefinitions.js +0 -132
  183. package/lib/AttributeDefinitions.js.map +0 -1
  184. package/lib/DockLocation.js +0 -121
  185. package/lib/DockLocation.js.map +0 -1
  186. package/lib/DropInfo.js +0 -10
  187. package/lib/DropInfo.js.map +0 -1
  188. package/lib/I18nLabel.js +0 -14
  189. package/lib/I18nLabel.js.map +0 -1
  190. package/lib/Orientation.js +0 -23
  191. package/lib/Orientation.js.map +0 -1
  192. package/lib/Rect.js +0 -111
  193. package/lib/Rect.js.map +0 -1
  194. package/lib/Types.js +0 -95
  195. package/lib/Types.js.map +0 -1
  196. package/lib/index.js.map +0 -1
  197. package/lib/model/Action.js +0 -7
  198. package/lib/model/Action.js.map +0 -1
  199. package/lib/model/Actions.js +0 -170
  200. package/lib/model/Actions.js.map +0 -1
  201. package/lib/model/BorderNode.js +0 -390
  202. package/lib/model/BorderNode.js.map +0 -1
  203. package/lib/model/BorderSet.js +0 -67
  204. package/lib/model/BorderSet.js.map +0 -1
  205. package/lib/model/ICloseType.js +0 -7
  206. package/lib/model/ICloseType.js.map +0 -1
  207. package/lib/model/IDraggable.js +0 -2
  208. package/lib/model/IDraggable.js.map +0 -1
  209. package/lib/model/IDropTarget.js +0 -2
  210. package/lib/model/IDropTarget.js.map +0 -1
  211. package/lib/model/IJsonModel.js +0 -2
  212. package/lib/model/IJsonModel.js.map +0 -1
  213. package/lib/model/LayoutWindow.js +0 -81
  214. package/lib/model/LayoutWindow.js.map +0 -1
  215. package/lib/model/Model.js +0 -608
  216. package/lib/model/Model.js.map +0 -1
  217. package/lib/model/Node.js +0 -218
  218. package/lib/model/Node.js.map +0 -1
  219. package/lib/model/RowNode.js +0 -492
  220. package/lib/model/RowNode.js.map +0 -1
  221. package/lib/model/TabNode.js +0 -293
  222. package/lib/model/TabNode.js.map +0 -1
  223. package/lib/model/TabSetNode.js +0 -469
  224. package/lib/model/TabSetNode.js.map +0 -1
  225. package/lib/model/Utils.js +0 -48
  226. package/lib/model/Utils.js.map +0 -1
  227. package/lib/view/BorderButton.js +0 -126
  228. package/lib/view/BorderButton.js.map +0 -1
  229. package/lib/view/BorderTab.js +0 -56
  230. package/lib/view/BorderTab.js.map +0 -1
  231. package/lib/view/BorderTabSet.js +0 -138
  232. package/lib/view/BorderTabSet.js.map +0 -1
  233. package/lib/view/DragContainer.js +0 -16
  234. package/lib/view/DragContainer.js.map +0 -1
  235. package/lib/view/ErrorBoundary.js +0 -24
  236. package/lib/view/ErrorBoundary.js.map +0 -1
  237. package/lib/view/Icons.js +0 -29
  238. package/lib/view/Icons.js.map +0 -1
  239. package/lib/view/Layout.js +0 -881
  240. package/lib/view/Layout.js.map +0 -1
  241. package/lib/view/Overlay.js +0 -9
  242. package/lib/view/Overlay.js.map +0 -1
  243. package/lib/view/PopoutWindow.js +0 -129
  244. package/lib/view/PopoutWindow.js.map +0 -1
  245. package/lib/view/PopupMenu.js +0 -89
  246. package/lib/view/PopupMenu.js.map +0 -1
  247. package/lib/view/Row.js +0 -46
  248. package/lib/view/Row.js.map +0 -1
  249. package/lib/view/SizeTracker.js +0 -12
  250. package/lib/view/SizeTracker.js.map +0 -1
  251. package/lib/view/Splitter.js +0 -197
  252. package/lib/view/Splitter.js.map +0 -1
  253. package/lib/view/Tab.js +0 -91
  254. package/lib/view/Tab.js.map +0 -1
  255. package/lib/view/TabButton.js +0 -124
  256. package/lib/view/TabButton.js.map +0 -1
  257. package/lib/view/TabButtonStamp.js +0 -15
  258. package/lib/view/TabButtonStamp.js.map +0 -1
  259. package/lib/view/TabOverflowHook.js +0 -266
  260. package/lib/view/TabOverflowHook.js.map +0 -1
  261. package/lib/view/TabSet.js +0 -269
  262. package/lib/view/TabSet.js.map +0 -1
  263. package/lib/view/Utils.js +0 -110
  264. package/lib/view/Utils.js.map +0 -1
  265. package/playwright-report/data/01f8ff379b7b7c06b0f8dbd65cbd55e95f8ca470.zip +0 -0
  266. package/playwright-report/data/02a706b995d751dee8ac0429e29eafb796a23f96.zip +0 -0
  267. package/playwright-report/data/04468c5a7304bad1acbe32d3376bfc5038e172d9.zip +0 -0
  268. package/playwright-report/data/04ffe14721deea0c6402bb96c78055475f6cd687.zip +0 -0
  269. package/playwright-report/data/07e1bb8bd6407ceafa7a1051839d398f34b41a52.zip +0 -0
  270. package/playwright-report/data/0d17b99e2ddd975da4868f295b370a9fc9b55993.zip +0 -0
  271. package/playwright-report/data/108805618d29c7800d55d7dd8da36829fec366bd.zip +0 -0
  272. package/playwright-report/data/1271fd2bc76809c25b62351f4321b396e745a199.zip +0 -0
  273. package/playwright-report/data/16bd316f5e3e9ad6c9dc2a6a0388f3425c1a61d9.zip +0 -0
  274. package/playwright-report/data/1a1b06cebe59d981e21198164093230b0a1704fd.zip +0 -0
  275. package/playwright-report/data/1b3b6bba4aca415bc586b2a0abb18410af26fbf1.zip +0 -0
  276. package/playwright-report/data/1ce927369a55edf14ec99e0029d1a342cb0fcfa4.zip +0 -0
  277. package/playwright-report/data/20a694648a90f0a805a4397b73699142e5dd50c1.zip +0 -0
  278. package/playwright-report/data/211f1c8fc3f5d052d935906201f29a1e42a2fbd8.zip +0 -0
  279. package/playwright-report/data/2176124681e769fbba593a272e67331fd69e56ef.zip +0 -0
  280. package/playwright-report/data/2487db6273b09acd9a62a9ecfa8f1e411cc769df.zip +0 -0
  281. package/playwright-report/data/25abefed6606e15cac6dc83e3ea4e85896233020.zip +0 -0
  282. package/playwright-report/data/2752051b8593d432be1a623813f2dbee043dc959.zip +0 -0
  283. package/playwright-report/data/2d72001a7f57a11282fe741ca22501b34f7576a2.zip +0 -0
  284. package/playwright-report/data/308de4d252afe1db5aeda783ea3eaf09368aa812.zip +0 -0
  285. package/playwright-report/data/30f265807a34ee9bb2ddd931970be6f572a42ffe.zip +0 -0
  286. package/playwright-report/data/326599ace543d3340403f5eaa0f28ef73f7d3cfc.zip +0 -0
  287. package/playwright-report/data/3662fcf1839c6bb164e1aceea5e25b410bae6286.zip +0 -0
  288. package/playwright-report/data/38cdebbb090386af04f96f13bf45b2a23feb6cf5.zip +0 -0
  289. package/playwright-report/data/3b45c7876ca7a4208061f69fa0cce9f9e619557c.zip +0 -0
  290. package/playwright-report/data/3c6115f8ff03527f3b888e8c6626d086146bb961.zip +0 -0
  291. package/playwright-report/data/3e976a69f9bc188048c96969507a28fc5411da40.zip +0 -0
  292. package/playwright-report/data/420bd6c0ed97c53e6ee5108c11c337690ed9dd71.zip +0 -0
  293. package/playwright-report/data/424c925f1d020f7918c5b1d4e93a3aff4ffd0d35.zip +0 -0
  294. package/playwright-report/data/4459657c233583f0bb5f541ba2a56d14fc04324f.zip +0 -0
  295. package/playwright-report/data/45dbca16424f69b6af3f201fd918186e66e6a921.zip +0 -0
  296. package/playwright-report/data/4c7242437d15e34066b69d5f3a71e21f436d81bb.zip +0 -0
  297. package/playwright-report/data/56f84e2288e6485b68f0f78f79af97016d066eea.zip +0 -0
  298. package/playwright-report/data/679d4cfcb398dd2d19703be59bbf1de72f73fa3e.zip +0 -0
  299. package/playwright-report/data/686279f3ccdca1213fe91a9901f1ca469a41db4b.zip +0 -0
  300. package/playwright-report/data/69403980b98daeb052c732f3d984b7ccc51022aa.zip +0 -0
  301. package/playwright-report/data/6d91e10cd5dc95944881ea0f875bf0e531c63164.zip +0 -0
  302. package/playwright-report/data/6f362695f59905c3acdcafb6eeacfa4b068bc030.zip +0 -0
  303. package/playwright-report/data/71dd5897288168b0f7fb2e187f2b543e880733b1.zip +0 -0
  304. package/playwright-report/data/7540a41a9c123cffc1750447ccb69d9fb8cc8ba5.zip +0 -0
  305. package/playwright-report/data/78f8483a26c47ca761f43b1f142a9fb9d001b27e.zip +0 -0
  306. package/playwright-report/data/7e8bd5ba547094dcf303d450853b2f74f41749b2.zip +0 -0
  307. package/playwright-report/data/7fbec8e63ea2ee1702a94fe4d837067192e661f0.zip +0 -0
  308. package/playwright-report/data/87f2ea42a46cbd21813358d7d6e31d9999fca953.zip +0 -0
  309. package/playwright-report/data/8db527a1f9b753036cf63bb4afc96a765007fe82.zip +0 -0
  310. package/playwright-report/data/8e5ccd4bd56f3843f4e788c5e9842165221c2748.zip +0 -0
  311. package/playwright-report/data/8fc12e2795e02ee2ad773ec7be25f94b6ca697ed.zip +0 -0
  312. package/playwright-report/data/9d10ab1649ded4751d19014847e110b0b03ad126.zip +0 -0
  313. package/playwright-report/data/ab82c3994c6614fa6873fc92fd44ca78cb45f9d6.zip +0 -0
  314. package/playwright-report/data/ac554655d509fe64199a053e715def4ce4bbd618.zip +0 -0
  315. package/playwright-report/data/ad8e5a0cec5ec3369478099a58b7652c0dd636f1.zip +0 -0
  316. package/playwright-report/data/ae30baf5dea2dc0dd2ca87ffa08afb936b27fef1.zip +0 -0
  317. package/playwright-report/data/bc7631ffd4df693573a3233ec403a1f9cbcb00a9.zip +0 -0
  318. package/playwright-report/data/bcfe71e7532702969ecdde584a294907ed21525e.zip +0 -0
  319. package/playwright-report/data/bf020e09e20d0cd6e1b8aa82153e84f9d40c7f74.zip +0 -0
  320. package/playwright-report/data/c3452f499f82ef644c3d314626d3d9c762ff5c20.zip +0 -0
  321. package/playwright-report/data/c5dfbb00ea0965a4214f02cde22245958bb31c86.zip +0 -0
  322. package/playwright-report/data/c716ede7c5174d8a83653a6862605eca04783bad.zip +0 -0
  323. package/playwright-report/data/c95ca5869740edf6d1d627d120aa9ba26b1d3415.zip +0 -0
  324. package/playwright-report/data/cc17390169d327b4dfc2a9b3a8279e74ff975b1d.zip +0 -0
  325. package/playwright-report/data/d0ff6b9f342d792119f1513cc53c9f315a56251b.zip +0 -0
  326. package/playwright-report/data/d26377153bff611b5ba5a1148fc8858f7bb2cb7b.zip +0 -0
  327. package/playwright-report/data/dc0608de1b624a691f2f393bf450fc01591076ef.zip +0 -0
  328. package/playwright-report/data/dee4c585c248f4827601afbde02d3732761bdd8b.zip +0 -0
  329. package/playwright-report/data/e4cdfceef70735028de78f94f7e07a1e65fa317d.zip +0 -0
  330. package/playwright-report/data/e64d89424643af3f746a091f7567db49b0b45f3c.zip +0 -0
  331. package/playwright-report/data/e70483c7d13bb871f5c5b4aa54149172d58bf0c0.zip +0 -0
  332. package/playwright-report/data/e8333b653df262d800ee7b5329503b975d420e87.zip +0 -0
  333. package/playwright-report/data/ed1bd19a957a6165ba73a644af4959590b23eed9.zip +0 -0
  334. package/playwright-report/data/f35cf046cdf897abd96f318f79443407e58b8f0b.zip +0 -0
  335. package/playwright-report/data/f8793a7c69b939ac07422cf41aac45ebe4a86908.zip +0 -0
  336. package/playwright-report/data/fb2a383b96839380e90e0137363a574e665aed38.zip +0 -0
  337. package/playwright-report/data/fede8e774c66e329bdac055d6d67e73aa75b14fc.zip +0 -0
  338. package/playwright-report/index.html +0 -71
  339. package/playwright-report/trace/assets/codeMirrorModule-DpJ-EmBQ.js +0 -24
  340. package/playwright-report/trace/assets/defaultSettingsView-DTenqiGw.js +0 -259
  341. package/playwright-report/trace/codeMirrorModule.C3UTv-Ge.css +0 -1
  342. package/playwright-report/trace/codicon.DCmgc-ay.ttf +0 -0
  343. package/playwright-report/trace/defaultSettingsView.5fN5lw10.css +0 -1
  344. package/playwright-report/trace/index.CFOW-Ezb.css +0 -1
  345. package/playwright-report/trace/index.CUq7VgrV.js +0 -2
  346. package/playwright-report/trace/index.html +0 -43
  347. package/playwright-report/trace/playwright-logo.svg +0 -9
  348. package/playwright-report/trace/snapshot.html +0 -21
  349. package/playwright-report/trace/sw.bundle.js +0 -3
  350. package/playwright-report/trace/uiMode.BatfzHMG.css +0 -1
  351. package/playwright-report/trace/uiMode.CHJSAD7F.js +0 -5
  352. package/playwright-report/trace/uiMode.html +0 -17
  353. package/playwright-report/trace/xtermModule.Beg8tuEN.css +0 -32
  354. package/playwright.config.ts +0 -79
  355. package/screenshots/PlaywrightUI.png +0 -0
  356. package/src/Attribute.ts +0 -64
  357. package/src/AttributeDefinitions.ts +0 -144
  358. package/src/DockLocation.ts +0 -133
  359. package/src/DropInfo.ts +0 -20
  360. package/src/I18nLabel.ts +0 -12
  361. package/src/Orientation.ts +0 -28
  362. package/src/Rect.ts +0 -147
  363. package/src/Types.ts +0 -112
  364. package/src/index.ts +0 -23
  365. package/src/model/Action.ts +0 -9
  366. package/src/model/Actions.ts +0 -188
  367. package/src/model/BorderNode.ts +0 -458
  368. package/src/model/BorderSet.ts +0 -87
  369. package/src/model/ICloseType.ts +0 -5
  370. package/src/model/IDraggable.ts +0 -7
  371. package/src/model/IDropTarget.ts +0 -14
  372. package/src/model/IJsonModel.ts +0 -967
  373. package/src/model/LayoutWindow.ts +0 -119
  374. package/src/model/Model.ts +0 -704
  375. package/src/model/Node.ts +0 -280
  376. package/src/model/RowNode.ts +0 -559
  377. package/src/model/TabNode.ts +0 -424
  378. package/src/model/TabSetNode.ts +0 -592
  379. package/src/model/Utils.ts +0 -52
  380. package/src/view/BorderButton.tsx +0 -201
  381. package/src/view/BorderTab.tsx +0 -81
  382. package/src/view/BorderTabSet.tsx +0 -259
  383. package/src/view/DragContainer.tsx +0 -32
  384. package/src/view/ErrorBoundary.tsx +0 -42
  385. package/src/view/Icons.tsx +0 -57
  386. package/src/view/Layout.tsx +0 -1334
  387. package/src/view/Overlay.tsx +0 -21
  388. package/src/view/PopoutWindow.tsx +0 -152
  389. package/src/view/PopupMenu.tsx +0 -156
  390. package/src/view/Row.tsx +0 -68
  391. package/src/view/SizeTracker.tsx +0 -20
  392. package/src/view/Splitter.tsx +0 -262
  393. package/src/view/Tab.tsx +0 -128
  394. package/src/view/TabButton.tsx +0 -200
  395. package/src/view/TabButtonStamp.tsx +0 -42
  396. package/src/view/TabOverflowHook.tsx +0 -305
  397. package/src/view/TabSet.tsx +0 -475
  398. package/src/view/Utils.tsx +0 -135
  399. package/test-results/view-Add-methods-add-to-active-tabset-chromium/trace.zip +0 -0
  400. package/test-results/view-Add-methods-drag-to-border-chromium/trace.zip +0 -0
  401. package/test-results/view-Add-methods-drag-to-tabset-chromium/trace.zip +0 -0
  402. package/test-results/view-Delete-methods-delete-all-tabs-chromium/trace.zip +0 -0
  403. package/test-results/view-Delete-methods-delete-tab-chromium/trace.zip +0 -0
  404. package/test-results/view-Extended-App-onRenderTab-chromium/trace.zip +0 -0
  405. package/test-results/view-Extended-App-onRenderTab-in-border-chromium/trace.zip +0 -0
  406. package/test-results/view-Extended-App-onRenderTabSet-chromium/trace.zip +0 -0
  407. package/test-results/view-Extended-App-onRenderTabSet-for-border-chromium/trace.zip +0 -0
  408. package/test-results/view-Extended-App-onRenderTabSet-sticky-buttons-chromium/trace.zip +0 -0
  409. package/test-results/view-Extended-layout2-borders-autohide-left-chromium/trace.zip +0 -0
  410. package/test-results/view-Extended-layout2-borders-autohide-top-chromium/trace.zip +0 -0
  411. package/test-results/view-Extended-layout2-check-border-bottom-min-size-chromium/trace.zip +0 -0
  412. package/test-results/view-Extended-layout2-check-border-left-min-size-chromium/trace.zip +0 -0
  413. package/test-results/view-Extended-layout2-check-border-right-min-size-chromium/trace.zip +0 -0
  414. package/test-results/view-Extended-layout2-check-border-top-min-size-chromium/trace.zip +0 -0
  415. package/test-results/view-Extended-layout2-check-tabset-min-size-chromium/trace.zip +0 -0
  416. package/test-results/view-Extended-layout2-tabset-close-chromium/trace.zip +0 -0
  417. package/test-results/view-Maximize-methods-maximize-tabset-using-double-click-chromium/trace.zip +0 -0
  418. package/test-results/view-Maximize-methods-maximize-tabset-using-max-button-chromium/trace.zip +0 -0
  419. package/test-results/view-Others-click-on-tab-button-causes-tabset-activate-chromium/trace.zip +0 -0
  420. package/test-results/view-Others-click-on-tab-contents-causes-tabset-activate-chromium/trace.zip +0 -0
  421. package/test-results/view-Others-click-on-tabstrip-causes-tabset-activate-chromium/trace.zip +0 -0
  422. package/test-results/view-Others-rename-tab-cancelled-with-esc-chromium/trace.zip +0 -0
  423. package/test-results/view-Others-rename-tab-chromium/trace.zip +0 -0
  424. package/test-results/view-Overflow-menu-show-menu-chromium/trace.zip +0 -0
  425. package/test-results/view-Splitters-horizontal--5a358-ter-to-bottom-edge-and-back-chromium/trace.zip +0 -0
  426. package/test-results/view-Splitters-horizontal--f02d2-litter-to-top-edge-and-back-chromium/trace.zip +0 -0
  427. package/test-results/view-Splitters-horizontal-resizes-with-hsplitter-chromium/trace.zip +0 -0
  428. package/test-results/view-Splitters-vsplitter-chromium/trace.zip +0 -0
  429. package/test-results/view-Splitters-vsplitter-to-edge-chromium/trace.zip +0 -0
  430. package/test-results/view-Splitters-vsplitter-to-edge-left-chromium/trace.zip +0 -0
  431. package/test-results/view-borders-border-bottom-to-tab-chromium/trace.zip +0 -0
  432. package/test-results/view-borders-border-left-to-tab-chromium/trace.zip +0 -0
  433. package/test-results/view-borders-border-right-to-tab-chromium/trace.zip +0 -0
  434. package/test-results/view-borders-border-top-to-tab-chromium/trace.zip +0 -0
  435. package/test-results/view-borders-move-tab-in-border-bottom-chromium/trace.zip +0 -0
  436. package/test-results/view-borders-move-tab-in-border-left-chromium/trace.zip +0 -0
  437. package/test-results/view-borders-move-tab-in-border-right-chromium/trace.zip +0 -0
  438. package/test-results/view-borders-move-tab-in-border-top-chromium/trace.zip +0 -0
  439. package/test-results/view-borders-tab-to-border-bottom-chromium/trace.zip +0 -0
  440. package/test-results/view-borders-tab-to-border-left-chromium/trace.zip +0 -0
  441. package/test-results/view-borders-tab-to-border-right-chromium/trace.zip +0 -0
  442. package/test-results/view-borders-tab-to-border-top-chromium/trace.zip +0 -0
  443. package/test-results/view-borders-tab-to-open-border-bottom-center-chromium/trace.zip +0 -0
  444. package/test-results/view-borders-tab-to-open-border-bottom-chromium/trace.zip +0 -0
  445. package/test-results/view-borders-tab-to-open-border-left-center-chromium/trace.zip +0 -0
  446. package/test-results/view-borders-tab-to-open-border-left-chromium/trace.zip +0 -0
  447. package/test-results/view-borders-tab-to-open-border-right-center-chromium/trace.zip +0 -0
  448. package/test-results/view-borders-tab-to-open-border-right-chromium/trace.zip +0 -0
  449. package/test-results/view-borders-tab-to-open-border-top-center-chromium/trace.zip +0 -0
  450. package/test-results/view-borders-tab-to-open-border-top-chromium/trace.zip +0 -0
  451. package/test-results/view-drag-tests-two-tabs-tab-to-edge-chromium/trace.zip +0 -0
  452. package/test-results/view-drag-tests-two-tabs-tab-to-tab-bottom-chromium/trace.zip +0 -0
  453. package/test-results/view-drag-tests-two-tabs-tab-to-tab-center-chromium/trace.zip +0 -0
  454. package/test-results/view-drag-tests-two-tabs-tab-to-tab-left-chromium/trace.zip +0 -0
  455. package/test-results/view-drag-tests-two-tabs-tab-to-tab-right-chromium/trace.zip +0 -0
  456. package/test-results/view-drag-tests-two-tabs-tab-to-tab-top-chromium/trace.zip +0 -0
  457. package/test-results/view-tab-can-have-icon-chromium/trace.zip +0 -0
  458. package/test-results/view-three-tabs-move-tab-in-tabstrip-chromium/trace.zip +0 -0
  459. package/test-results/view-three-tabs-move-tabstrip-chromium/trace.zip +0 -0
  460. package/test-results/view-three-tabs-row-to-column-chromium/trace.zip +0 -0
  461. package/test-results/view-three-tabs-row-to-single-tabset-chromium/trace.zip +0 -0
  462. package/test-results/view-three-tabs-tab-to-edge-bottom-chromium/trace.zip +0 -0
  463. package/test-results/view-three-tabs-tab-to-edge-left-chromium/trace.zip +0 -0
  464. package/test-results/view-three-tabs-tab-to-edge-right-chromium/trace.zip +0 -0
  465. package/test-results/view-three-tabs-tab-to-edge-top-chromium/trace.zip +0 -0
  466. package/test-results/view-three-tabs-tab-to-tab-bottom-chromium/trace.zip +0 -0
  467. package/test-results/view-three-tabs-tab-to-tab-center-chromium/trace.zip +0 -0
  468. package/test-results/view-three-tabs-tab-to-tab-left-chromium/trace.zip +0 -0
  469. package/test-results/view-three-tabs-tab-to-tab-right-chromium/trace.zip +0 -0
  470. package/test-results/view-three-tabs-tab-to-tab-top-chromium/trace.zip +0 -0
  471. package/test-results/view-three-tabs-tab-to-tabset-chromium/trace.zip +0 -0
  472. package/tests-playwright/helpers.ts +0 -124
  473. package/tests-playwright/view.spec.ts +0 -911
@@ -1,911 +0,0 @@
1
- import { test, expect, Page, Locator } from '@playwright/test';
2
- import { describe } from 'node:test';
3
- import { checkBorderTab, checkTab, drag, dragSplitter, dragToEdge, findAllTabSets, findPath, findTabButton, Location } from './helpers';
4
- import { CLASSES } from '../src/Types';
5
-
6
- /*
7
-
8
- Key elements have data-layout-path attributes:
9
-
10
- /ts0 - the first tabset in the root row
11
- /ts1 - the second tabset in the root row
12
- /ts1/tabstrip - the second tabsets tabstrip
13
- /ts1/header - the second tabsets header
14
- /c2/ts0 - the first tabset in the column at position 2 in the root row
15
- /s0 - the first splitter in the root row (the one after the first tabset/column)
16
- /ts1/t2 - the third tab (the tab content) in the second tabset in the root row
17
- /ts1/tb2 - the third tab button (the tab button in the tabstrip) in the second tabset in the root row
18
- /border/top/t1
19
- /border/top/tb1
20
- ...
21
-
22
- */
23
-
24
- test.describe('drag tests two tabs', () => {
25
- test.beforeEach(async ({ page }) => {
26
- await page.goto('http://localhost:8080/examples/demo?layout=test_two_tabs');
27
- await expect(page).toHaveTitle(/FlexLayout Demo/);
28
- await page.getByRole('button', { name: 'Reload' }).click();
29
-
30
- const tabSets = await findAllTabSets(page);
31
- expect(await tabSets.count()).toEqual(2);
32
- });
33
-
34
- test('tab to tab center', async ({ page }) => {
35
- const from = await findTabButton(page, '/ts0', 0);
36
- const to = await findPath(page, '/ts1/t0');
37
- await drag(page, from, to, Location.CENTER); // Drag to the center of the destination tabset
38
-
39
- const tabSets = await findAllTabSets(page);
40
- expect(await tabSets.count()).toBe(1);
41
-
42
- await checkTab(page, '/ts0', 0, false, 'Two');
43
- await checkTab(page, '/ts0', 1, true, 'One');
44
- });
45
-
46
- test('tab to tab top', async ({ page }) => {
47
- const from = await findTabButton(page, '/ts0', 0);
48
- const to = await findPath(page, '/ts1/t0');
49
- await drag(page, from, to, Location.TOP); // Drag to the top of the destination tabset
50
-
51
- const tabSets = await findAllTabSets(page);
52
- expect(await tabSets.count()).toBe(2);
53
-
54
- await checkTab(page, '/c0/ts0', 0, true, 'One');
55
- await checkTab(page, '/c0/ts1', 0, true, 'Two');
56
- });
57
-
58
- test('tab to tab bottom', async ({ page }) => {
59
- const from = await findTabButton(page, '/ts0', 0);
60
- const to = await findPath(page, '/ts1/t0');
61
- await drag(page, from, to, Location.BOTTOM); // Drag to the bottom of the destination tabset
62
-
63
- const tabSets = await findAllTabSets(page);
64
- expect(await tabSets.count()).toBe(2);
65
-
66
- await checkTab(page, '/c0/ts0', 0, true, 'Two');
67
- await checkTab(page, '/c0/ts1', 0, true, 'One');
68
- });
69
-
70
- test('tab to tab left', async ({ page }) => {
71
- const from = await findTabButton(page, '/ts0', 0);
72
- const to = await findPath(page, '/ts1/t0');
73
- await drag(page, from, to, Location.LEFT); // Drag to the left of the destination tabset
74
-
75
- const tabSets = await findAllTabSets(page);
76
- expect(await tabSets.count()).toBe(2);
77
-
78
- await checkTab(page, '/ts0', 0, true, 'One');
79
- await checkTab(page, '/ts1', 0, true, 'Two');
80
- });
81
-
82
- test('tab to tab right', async ({ page }) => {
83
- const from = await findTabButton(page, '/ts0', 0);
84
- const to = await findPath(page, '/ts1/t0');
85
- await drag(page, from, to, Location.RIGHT); // Drag to the right of the destination tabset
86
-
87
- const tabSets = await findAllTabSets(page);
88
- expect(await tabSets.count()).toBe(2);
89
-
90
- await checkTab(page, '/ts0', 0, true, 'Two');
91
- await checkTab(page, '/ts1', 0, true, 'One');
92
- });
93
-
94
- test('tab to edge', async ({ page }) => {
95
- const from = await findTabButton(page, '/ts0', 0);
96
- await dragToEdge(page, from, 2); // Drag to the edge at index 2
97
-
98
- await checkTab(page, '/c0/ts0', 0, true, 'Two');
99
- await checkTab(page, '/c0/ts1', 0, true, 'One');
100
- });
101
- });
102
-
103
- test.describe('three tabs', () => {
104
- test.beforeEach(async ({ page }) => {
105
- await page.goto('http://localhost:8080/examples/demo?layout=test_three_tabs');
106
- await expect(page).toHaveTitle(/FlexLayout Demo/);
107
- await expect(findAllTabSets(page)).toHaveCount(3);
108
- // store "from" locator
109
- // page.locator('.flexlayout__tab_button_content', { hasText: 'One' }).as('from');
110
- });
111
-
112
- test('tab to tabset', async ({ page }) => {
113
- const from = findTabButton(page, '/ts0', 0);
114
- const to = findPath(page, '/ts1/tabstrip');
115
-
116
- await drag(page, from, to, Location.CENTER);
117
- await expect(findAllTabSets(page)).toHaveCount(2);
118
-
119
- await checkTab(page, '/ts0', 0, false, 'Two');
120
- await checkTab(page, '/ts0', 1, true, 'One');
121
- await checkTab(page, '/ts1', 0, true, 'Three');
122
- });
123
-
124
- test('tab to tab center', async ({ page }) => {
125
- const from = findTabButton(page, '/ts0', 0);
126
- const to = findPath(page, '/ts1/t0');
127
-
128
- await drag(page, from, to, Location.CENTER);
129
- await expect(findAllTabSets(page)).toHaveCount(2);
130
-
131
- await checkTab(page, '/ts0', 0, false, 'Two');
132
- await checkTab(page, '/ts0', 1, true, 'One');
133
- await checkTab(page, '/ts1', 0, true, 'Three');
134
- });
135
-
136
- test('tab to tab top', async ({ page }) => {
137
- const from = findTabButton(page, '/ts0', 0);
138
- const to = findPath(page, '/ts1/t0');
139
-
140
- await drag(page, from, to, Location.TOP);
141
- await expect(findAllTabSets(page)).toHaveCount(3);
142
-
143
- await checkTab(page, '/c0/ts0', 0, true, 'One');
144
- await checkTab(page, '/c0/ts1', 0, true, 'Two');
145
- await checkTab(page, '/ts1', 0, true, 'Three');
146
- });
147
-
148
- test('tab to tab bottom', async ({ page }) => {
149
- const from = findTabButton(page, '/ts0', 0);
150
- const to = findPath(page, '/ts1/t0');
151
-
152
- await drag(page, from, to, Location.BOTTOM);
153
- await expect(findAllTabSets(page)).toHaveCount(3);
154
-
155
- await checkTab(page, '/c0/r0/ts0', 0, true, 'Two');
156
- await checkTab(page, '/c0/r0/ts1', 0, true, 'Three');
157
- await checkTab(page, '/c0/ts1', 0, true, 'One');
158
- });
159
-
160
- test('tab to tab left', async ({ page }) => {
161
- const from = findTabButton(page, '/ts0', 0);
162
- const to = findPath(page, '/ts1/t0');
163
-
164
- await drag(page, from, to, Location.LEFT);
165
- await expect(findAllTabSets(page)).toHaveCount(3);
166
-
167
- await checkTab(page, '/ts0', 0, true, 'One');
168
- await checkTab(page, '/ts1', 0, true, 'Two');
169
- await checkTab(page, '/ts2', 0, true, 'Three');
170
- });
171
-
172
- test('tab to tab right', async ({ page }) => {
173
- const from = findTabButton(page, '/ts0', 0);
174
- const to = findPath(page, '/ts1/t0');
175
- await drag(page, from, to, Location.RIGHT);
176
-
177
- const tabsets = findAllTabSets(page);
178
- await expect(tabsets).toHaveCount(3);
179
-
180
- await checkTab(page, '/ts0', 0, true, 'Two');
181
- await checkTab(page, '/ts1', 0, true, 'One');
182
- await checkTab(page, '/ts2', 0, true, 'Three');
183
- });
184
-
185
- test('tab to edge top', async ({ page }) => {
186
- const from = findTabButton(page, '/ts0', 0);
187
- await dragToEdge(page, from, 0);
188
-
189
- await checkTab(page, '/c0/ts0', 0, true, 'One');
190
- await checkTab(page, '/c0/r1/ts0', 0, true, 'Two');
191
- await checkTab(page, '/c0/r1/ts1', 0, true, 'Three');
192
- });
193
-
194
- test('tab to edge left', async ({ page }) => {
195
- const from = findTabButton(page, '/ts0', 0);
196
- await dragToEdge(page, from, 1);
197
-
198
- await checkTab(page, '/ts0', 0, true, 'One');
199
- await checkTab(page, '/ts1', 0, true, 'Two');
200
- await checkTab(page, '/ts2', 0, true, 'Three');
201
- });
202
-
203
- test('tab to edge bottom', async ({ page }) => {
204
- const from = findTabButton(page, '/ts0', 0);
205
- await dragToEdge(page, from, 2);
206
-
207
- await checkTab(page, '/c0/r0/ts0', 0, true, 'Two');
208
- await checkTab(page, '/c0/r0/ts1', 0, true, 'Three');
209
- await checkTab(page, '/c0/ts1', 0, true, 'One');
210
- });
211
-
212
- test('tab to edge right', async ({ page }) => {
213
- const from = findTabButton(page, '/ts0', 0);
214
- await dragToEdge(page, from, 3);
215
-
216
- await checkTab(page, '/ts0', 0, true, 'Two');
217
- await checkTab(page, '/ts1', 0, true, 'Three');
218
- await checkTab(page, '/ts2', 0, true, 'One');
219
- });
220
-
221
- test('row to column', async ({ page }) => {
222
- const from = findTabButton(page, '/ts0', 0);
223
- const to = findPath(page, '/ts2/t0');
224
- await drag(page, from, to, Location.BOTTOM);
225
-
226
- const rowFrom = findTabButton(page, '/ts0', 0);
227
- const rowTo = findPath(page, '/c1/ts0/t0');
228
- await drag(page, rowFrom, rowTo, Location.BOTTOM);
229
-
230
- const tabsets = findAllTabSets(page);
231
- await expect(tabsets).toHaveCount(3);
232
-
233
- await checkTab(page, '/c0/ts0', 0, true, 'Three');
234
- await checkTab(page, '/c0/ts1', 0, true, 'Two');
235
- await checkTab(page, '/c0/ts2', 0, true, 'One');
236
- });
237
-
238
- test('row to single tabset', async ({ page }) => {
239
- const from = findTabButton(page, '/ts0', 0);
240
- const to = findPath(page, '/ts2/t0');
241
- await drag(page, from, to, Location.CENTER);
242
-
243
- const rowFrom = findTabButton(page, '/ts0', 0);
244
- const rowTo = findPath(page, '/ts1/t1');
245
- await drag(page, rowFrom, rowTo, Location.CENTER);
246
-
247
- const tabsets = findAllTabSets(page);
248
- await expect(tabsets).toHaveCount(1);
249
-
250
- await checkTab(page, '/ts0', 0, false, 'Three');
251
- await checkTab(page, '/ts0', 1, false, 'One');
252
- await checkTab(page, '/ts0', 2, true, 'Two');
253
- });
254
-
255
- test('move tab in tabstrip', async ({ page }) => {
256
- const from = findTabButton(page, '/ts0', 0);
257
- const to = findPath(page, '/ts2/t0');
258
- await drag(page, from, to, Location.CENTER);
259
-
260
- const rowFrom = findTabButton(page, '/ts0', 0);
261
- const rowTo = findPath(page, '/ts1/t1');
262
- await drag(page, rowFrom, rowTo, Location.CENTER);
263
-
264
- await checkTab(page, '/ts0', 0, false, 'Three');
265
- await checkTab(page, '/ts0', 1, false, 'One');
266
- await checkTab(page, '/ts0', 2, true, 'Two');
267
-
268
- const leftFrom = findTabButton(page, '/ts0', 2);
269
- const leftTo = findTabButton(page, '/ts0', 0);
270
- await drag(page, leftFrom, leftTo, Location.LEFT);
271
-
272
- await checkTab(page, '/ts0', 0, true, 'Two');
273
- await checkTab(page, '/ts0', 1, false, 'Three');
274
- await checkTab(page, '/ts0', 2, false, 'One');
275
- });
276
-
277
- test('move tabstrip', async ({ page }) => {
278
- const from = findPath(page, '/ts2/tabstrip');
279
- const to = findPath(page, '/ts0/t0');
280
- await drag(page, from, to, Location.CENTER);
281
-
282
- await checkTab(page, '/ts0', 0, true, 'One');
283
- await checkTab(page, '/ts0', 1, false, 'Three');
284
- await checkTab(page, '/ts1', 0, true, 'Two');
285
-
286
- const stripFrom = findPath(page, '/ts0/tabstrip');
287
- const stripTo = findPath(page, '/ts1/tabstrip');
288
- await drag(page, stripFrom, stripTo, Location.CENTER);
289
-
290
- await checkTab(page, '/ts0', 0, true, 'Two');
291
- await checkTab(page, '/ts0', 1, false, 'One');
292
- await checkTab(page, '/ts0', 2, false, 'Three');
293
- });
294
-
295
- });
296
-
297
- test.describe('borders', () => {
298
- test.beforeEach(async ({ page }) => {
299
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_borders');
300
- await expect(findAllTabSets(page)).toHaveCount(3);
301
- });
302
-
303
- const borderToTabTest = async (page, border: string, tabtext: string, index: number) => {
304
- const from = await findTabButton(page, border, 0);
305
- const to = await findPath(page, '/ts0/t0');
306
- await drag(page, from, to, Location.CENTER);
307
- await expect(findAllTabSets(page)).toHaveCount(3);
308
- await checkTab(page, '/ts0', 0, false, 'One');
309
- await checkTab(page, '/ts0', index, true, tabtext);
310
- };
311
-
312
- test('border top to tab', async ({ page }) => {
313
- await borderToTabTest(page, '/border/top', 'top1', 1);
314
- });
315
-
316
- test('border bottom to tab', async ({ page }) => {
317
- await borderToTabTest(page, '/border/bottom', 'bottom1', 1);
318
- });
319
-
320
- test('border left to tab', async ({ page }) => {
321
- await borderToTabTest(page, '/border/left', 'left1', 1);
322
- });
323
-
324
- test('border right to tab', async ({ page }) => {
325
- await borderToTabTest(page, '/border/right', 'right1', 1);
326
- });
327
-
328
- const tabToBorderTest = async (page, border: string, tabtext: string, index: number) => {
329
- const from = await findTabButton(page, '/ts0', 0);
330
- const to = await findTabButton(page, border, 0);
331
- await drag(page, from, to, Location.CENTER);
332
- await expect(findAllTabSets(page)).toHaveCount(2);
333
- await checkBorderTab(page, border, 0, false, tabtext);
334
- await checkBorderTab(page, border, index, false, 'One');
335
- };
336
-
337
- test('tab to border top', async ({ page }) => {
338
- await tabToBorderTest(page, '/border/top', 'One', 0);
339
- });
340
-
341
- test('tab to border bottom', async ({ page }) => {
342
- await tabToBorderTest(page, '/border/bottom', 'One', 0);
343
- });
344
-
345
- test('tab to border left', async ({ page }) => {
346
- await tabToBorderTest(page, '/border/left', 'One', 0);
347
- });
348
-
349
- test('tab to border right', async ({ page }) => {
350
- await tabToBorderTest(page, '/border/right', 'One', 0);
351
- });
352
-
353
- const openTabTest = async (page, border: string, tabtext: string, index: number) => {
354
- await (await findTabButton(page, border, 0)).click();
355
- const from = await findTabButton(page, '/ts0', 0);
356
- const to = await findPath(page, border);
357
- await drag(page, from, to, Location.CENTER);
358
- await expect(findAllTabSets(page)).toHaveCount(2);
359
- await checkBorderTab(page, border, 0, false, tabtext);
360
- await checkBorderTab(page, border, index, true, 'One');
361
- };
362
-
363
- test('tab to open border top', async ({ page }) => {
364
- await openTabTest(page, '/border/top', 'top1', 1);
365
- });
366
-
367
- test('tab to open border bottom', async ({ page }) => {
368
- await openTabTest(page, '/border/bottom', 'bottom1', 1);
369
- });
370
-
371
- test('tab to open border left', async ({ page }) => {
372
- await openTabTest(page, '/border/left', 'left1', 1);
373
- });
374
-
375
- test('tab to open border right', async ({ page }) => {
376
- await openTabTest(page, '/border/right', 'right1', 1);
377
- });
378
-
379
- const openTabCenterTest = async (page, border: string, tabtext: string, index: number) => {
380
- await (await findTabButton(page, border, 0)).click();
381
- const from = await findTabButton(page, '/ts0', 0);
382
- const to = await findPath(page, `${border}/t0`);
383
- await drag(page, from, to, Location.CENTER);
384
- await expect(findAllTabSets(page)).toHaveCount(2);
385
- await checkBorderTab(page, border, 0, false, tabtext);
386
- await checkBorderTab(page, border, index, true, 'One');
387
- };
388
-
389
- test('tab to open border top center', async ({ page }) => {
390
- await openTabCenterTest(page, '/border/top', 'top1', 1);
391
- });
392
-
393
- test('tab to open border bottom center', async ({ page }) => {
394
- await openTabCenterTest(page, '/border/bottom', 'bottom1', 1);
395
- });
396
-
397
- test('tab to open border left center', async ({ page }) => {
398
- await openTabCenterTest(page, '/border/left', 'left1', 1);
399
- });
400
-
401
- test('tab to open border right center', async ({ page }) => {
402
- await openTabCenterTest(page, '/border/right', 'right1', 1);
403
- });
404
-
405
- const inBorderTabMoveTest = async (page, border: string, tabtext: string, index: number) => {
406
- const from = await findTabButton(page, '/ts0', 0);
407
- const to = await findPath(page, border);
408
- await drag(page, from, to, Location.CENTER);
409
- await expect(findAllTabSets(page)).toHaveCount(2);
410
- // await checkBorderTab(page, border, 0, false, tabtext);
411
- await checkBorderTab(page, border, index, false, tabtext);
412
-
413
- const from2 = await findTabButton(page, border, 0);
414
- // const to2 = await findTabButton(page, border, index);
415
- await drag(page, from2, to, Location.CENTER);
416
- await checkBorderTab(page, border, 0, false, tabtext);
417
- };
418
-
419
- test('move tab in border top', async ({ page }) => {
420
- await inBorderTabMoveTest(page, '/border/top', 'One', 1);
421
- });
422
-
423
- test('move tab in border bottom', async ({ page }) => {
424
- await inBorderTabMoveTest(page, '/border/bottom', 'One', 1);
425
- });
426
-
427
- test('move tab in border left', async ({ page }) => {
428
- await inBorderTabMoveTest(page, '/border/left', 'One', 1);
429
- });
430
-
431
- test('move tab in border right', async ({ page }) => {
432
- await inBorderTabMoveTest(page, '/border/right', 'One', 1);
433
- });
434
- });
435
-
436
- test.describe('Overflow menu', () => {
437
- test.beforeEach(async ({ page }) => {
438
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_borders');
439
-
440
- await findPath(page, '/ts0/tabstrip').click();
441
- await page.locator('[data-id=add-active]').click();
442
- await page.locator('[data-id=add-active]').click();
443
- });
444
-
445
- test('show menu', async ({ page }) => {
446
- await expect(findPath(page, '/ts0/button/overflow')).not.toBeVisible();
447
-
448
- const from = findPath(page, '/s0');
449
-
450
- // Drag the splitter to left edge
451
- await dragSplitter(page, from, false, -1000);
452
-
453
- // Then drag it back 150px
454
- await dragSplitter(page, from, false, 150);
455
-
456
- await checkTab(page, '/ts0', 2, true, 'Text2');
457
- await expect(findPath(page, '/ts0/t0')).not.toBeVisible(); // tab 0 should not be visible
458
-
459
- await expect(findPath(page, '/ts0/button/overflow')).toBeVisible();
460
- await findPath(page, '/ts0/button/overflow').click();
461
- await expect(findPath(page, '/popup-menu')).toBeVisible();
462
-
463
- await findPath(page, '/popup-menu/tb0').click();
464
-
465
- await expect(findPath(page, '/ts0/t2')).not.toBeVisible(); // tab 2 should now not be visible
466
- await checkTab(page, '/ts0', 0, true, 'One');
467
-
468
- // expand the tabset so overflow disappears
469
- await dragSplitter(page, from, false, 300);
470
- await expect(findPath(page, '/ts0/button/overflow')).not.toBeVisible();
471
- });
472
- });
473
-
474
- test.describe('Add methods', () => {
475
- test.beforeEach(async ({ page }) => {
476
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_borders');
477
- await expect(await findAllTabSets(page)).toHaveCount(3);
478
- });
479
-
480
- test('drag to tabset', async ({ page }) => {
481
- const from = page.locator('[data-id=add-drag]');
482
- const to = await findPath(page, '/ts1/tabstrip');
483
- await drag(page, from, to, Location.CENTER);
484
- await expect(await findAllTabSets(page)).toHaveCount(3);
485
- await checkTab(page, '/ts1', 0, false, 'Two');
486
- await checkTab(page, '/ts1', 1, true, 'Text1');
487
- });
488
-
489
- test('drag to border', async ({ page }) => {
490
- const from = page.locator('[data-id=add-drag]');
491
- const to = await findPath(page, '/border/right');
492
- await drag(page, from, to, Location.CENTER);
493
- await expect(await findAllTabSets(page)).toHaveCount(3);
494
- await checkBorderTab(page, '/border/right', 0, false, 'right1');
495
- await checkBorderTab(page, '/border/right', 1, false, 'Text1');
496
- });
497
-
498
- // test('add to tabset with id #1', async ({ page }) => {
499
- // await page.locator('[data-id=add-byId]').click();
500
- // await expect(await findAllTabSets(page)).toHaveCount(3);
501
- // await checkTab(page, '/ts1', 0, false, 'Two');
502
- // await checkTab(page, '/ts1', 1, true, 'Text1');
503
- // });
504
-
505
- test('add to active tabset', async ({ page }) => {
506
- const tabstrip = await findPath(page, '/ts1/tabstrip');
507
- await tabstrip.click();
508
- await page.locator('[data-id=add-active]').click();
509
- await expect(await findAllTabSets(page)).toHaveCount(3);
510
- await checkTab(page, '/ts1', 0, false, 'Two');
511
- await checkTab(page, '/ts1', 1, true, 'Text1');
512
- });
513
- });
514
-
515
- test.describe('Delete methods', () => {
516
- test.beforeEach(async ({ page }) => {
517
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_borders');
518
- await expect(await findAllTabSets(page)).toHaveCount(3);
519
- });
520
-
521
- test('delete tab', async ({ page }) => {
522
- const closeButton = await findPath(page, '/ts1/tb0/button/close');
523
- await closeButton.click();
524
- await expect(await findAllTabSets(page)).toHaveCount(2);
525
- await checkTab(page, '/ts0', 0, true, 'One');
526
- await checkTab(page, '/ts1', 0, true, 'Three');
527
- });
528
-
529
- test('delete all tabs', async ({ page }) => {
530
- await (await findPath(page, '/ts1/tb0/button/close')).click();
531
- await (await findPath(page, '/ts1/tb0/button/close')).click();
532
- await (await findPath(page, '/ts0/tb0/button/close')).click();
533
- await expect(await findAllTabSets(page)).toHaveCount(1);
534
- const tab = await findPath(page, '/ts1/tb0');
535
- await expect(tab).not.toBeVisible();
536
- });
537
-
538
- // test('delete tab in border', async ({ page }) => {
539
- // await checkBorderTab(page, '/border/bottom', 0, false, 'bottom1');
540
- // const closeButton = await findPath(page, '/border/bottom/tb0/button/close');
541
- // await closeButton.click({ force: true });
542
- // await checkBorderTab(page, '/border/bottom', 0, false, 'bottom2');
543
- // });
544
- });
545
-
546
- test.describe('Splitters', () => {
547
- test.beforeEach(async ({ page }) => {
548
- await page.goto('http://localhost:8080/examples/demo?layout=test_two_tabs');
549
- await expect(page).toHaveTitle(/FlexLayout Demo/);
550
- });
551
-
552
- test('vsplitter', async ({ page }) => {
553
- const from = findPath(page, '/s0');
554
- await dragSplitter(page, from, false, 100); // right 100px
555
-
556
- const e1 = findPath(page, '/ts1');
557
- const e2 = findPath(page, '/ts0');
558
-
559
- const w1 = (await e1.boundingBox())?.width ?? 0;
560
- const w2 = (await e2.boundingBox())?.width ?? 0;
561
-
562
- expect(w2 - w1).toBeGreaterThan(99);
563
- });
564
-
565
- test('vsplitter to edge', async ({ page }) => {
566
- const from = findPath(page, '/s0');
567
- await dragSplitter(page, from, false, 1000); // to right edge
568
- await dragSplitter(page, from, false, -100); // 100px back
569
-
570
- const e1 = findPath(page, '/ts1');
571
- const w1 = (await e1.boundingBox())?.width ?? 0;
572
-
573
- expect(Math.abs(w1 - 100)).toBeLessThan(2);
574
- });
575
-
576
- test('vsplitter to edge left', async ({ page }) => {
577
- const from = findPath(page, '/s0');
578
- await dragSplitter(page, from, false, -1000); // to left edge
579
- await dragSplitter(page, from, false, 100); // 100px back
580
-
581
- const e1 = findPath(page, '/ts0');
582
- const w1 = (await e1.boundingBox())?.width ?? 0;
583
-
584
- expect(Math.abs(w1 - 100)).toBeLessThan(2);
585
- });
586
-
587
- test.describe('horizontal', () => {
588
- test.beforeEach(async ({ page }) => {
589
- // Setting up the initial state before each test
590
- const from = findTabButton(page, '/ts0', 0);
591
- const to = findPath(page, '/ts1/t0');
592
- await drag(page, from, to, Location.BOTTOM);
593
- const tabsets = findAllTabSets(page);
594
- await expect(tabsets).toHaveCount(2);
595
-
596
- await checkTab(page, '/c0/ts0', 0, true, 'Two');
597
- await checkTab(page, '/c0/ts1', 0, true, 'One');
598
- });
599
-
600
- test('resizes with hsplitter', async ({ page }) => {
601
- const from = findPath(page, '/c0/s0');
602
- await dragSplitter(page, from, true, 100); // down 100px
603
-
604
- const e1 = findPath(page, '/c0/ts1');
605
- const e2 = findPath(page, '/c0/ts0');
606
-
607
- const h1 = (await e1.boundingBox())?.height ?? 0;
608
- const h2 = (await e2.boundingBox())?.height ?? 0;
609
-
610
- expect(h2 - h1).toBeGreaterThan(99);
611
- });
612
-
613
- test('moves hsplitter to bottom edge and back', async ({ page }) => {
614
- const from = findPath(page, '/c0/s0');
615
- await dragSplitter(page, from, true, 1000); // to bottom edge
616
- await dragSplitter(page, from, true, -100); // 100px back
617
-
618
- const e1 = findPath(page, '/c0/ts1');
619
- const h1 = (await e1.boundingBox())?.height ?? 0;
620
-
621
- expect(Math.abs(h1 - 130)).toBeLessThan(10);
622
- });
623
-
624
- test('moves hsplitter to top edge and back', async ({ page }) => {
625
- const from = findPath(page, '/c0/s0');
626
- await dragSplitter(page, from, true, -1000); // to top edge
627
- await dragSplitter(page, from, true, 100); // 100px back
628
-
629
- const e1 = findPath(page, '/c0/ts0');
630
- const h1 = (await e1.boundingBox())?.height ?? 0;
631
-
632
- expect(Math.abs(h1 - 130)).toBeLessThan(10);
633
- });
634
- });
635
- });
636
-
637
-
638
- test.describe('Maximize methods', () => {
639
- test.beforeEach(async ({ page }) => {
640
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_borders');
641
- await expect(await findAllTabSets(page)).toHaveCount(3);
642
- });
643
-
644
- test('maximize tabset using max button', async ({ page }) => {
645
- await findPath(page, '/ts1/button/max').click();
646
- await expect(findPath(page, '/ts0')).toBeHidden();
647
- await expect(findPath(page, '/ts1')).toBeVisible();
648
- await expect(findPath(page, '/ts2')).toBeHidden();
649
-
650
- await findPath(page, '/ts1/button/max').click();
651
- await expect(findPath(page, '/ts0')).toBeVisible();
652
- await expect(findPath(page, '/ts1')).toBeVisible();
653
- await expect(findPath(page, '/ts2')).toBeVisible();
654
- });
655
-
656
- test('maximize tabset using double click', async ({ page }) => {
657
- await findPath(page, '/ts1/tabstrip').dblclick();
658
- await expect(findPath(page, '/ts0')).toBeHidden();
659
- await expect(findPath(page, '/ts1')).toBeVisible();
660
- await expect(findPath(page, '/ts2')).toBeHidden();
661
-
662
- await findPath(page, '/ts1/button/max').click();
663
- await expect(findPath(page, '/ts0')).toBeVisible();
664
- await expect(findPath(page, '/ts1')).toBeVisible();
665
- await expect(findPath(page, '/ts2')).toBeVisible();
666
- });
667
- });
668
-
669
- test.describe('Others', () => {
670
- test.beforeEach(async ({ page }) => {
671
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_borders');
672
- await expect(await findAllTabSets(page)).toHaveCount(3);
673
- });
674
-
675
- test('rename tab', async ({ page }) => {
676
- await findPath(page, "/ts1/tb0").dblclick();
677
- const textbox = await findPath(page, "/ts1/tb0/textbox");
678
- await expect(textbox).toBeVisible();
679
- await expect(textbox).toHaveValue('Two');
680
- await textbox.type('Renamed');
681
- await textbox.press('Enter');
682
- await checkTab(page, "/ts1", 0, true, "Renamed");
683
- });
684
-
685
- test('rename tab cancelled with esc', async ({ page }) => {
686
- await findPath(page, "/ts1/tb0").dblclick();
687
- const textbox = await findPath(page, "/ts1/tb0/textbox");
688
- await expect(textbox).toBeVisible();
689
- await textbox.type('Renamed');
690
- await textbox.press('Escape');
691
- await checkTab(page, "/ts1", 0, true, "Two");
692
- });
693
-
694
- test('click on tab contents causes tabset activate', async ({ page }) => {
695
- await findPath(page, "/ts1/t0").click();
696
- await expect(findPath(page, "/ts0/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
697
- await expect(findPath(page, "/ts1/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
698
- await expect(findPath(page, "/ts2/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
699
-
700
- await findPath(page, "/ts0/t0").click();
701
- await expect(findPath(page, "/ts0/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
702
- await expect(findPath(page, "/ts1/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
703
- await expect(findPath(page, "/ts2/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
704
-
705
- await findPath(page, "/ts2/t0").click();
706
- await expect(findPath(page, "/ts0/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
707
- await expect(findPath(page, "/ts1/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
708
- await expect(findPath(page, "/ts2/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
709
- });
710
-
711
- test('click on tab button causes tabset activate', async ({ page }) => {
712
- await findPath(page, "/ts1/tb0").click();
713
- await expect(findPath(page, "/ts0/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
714
- await expect(findPath(page, "/ts1/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
715
- await expect(findPath(page, "/ts2/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
716
-
717
- await findPath(page, "/ts0/tb0").click();
718
- await expect(findPath(page, "/ts0/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
719
- await expect(findPath(page, "/ts1/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
720
- await expect(findPath(page, "/ts2/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
721
-
722
- await findPath(page, "/ts2/tb0").click();
723
- await expect(findPath(page, "/ts0/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
724
- await expect(findPath(page, "/ts1/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
725
- await expect(findPath(page, "/ts2/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
726
- });
727
-
728
- test('click on tabstrip causes tabset activate', async ({ page }) => {
729
- await findPath(page, "/ts1/tabstrip").click();
730
- await expect(findPath(page, "/ts0/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
731
- await expect(findPath(page, "/ts1/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
732
- await expect(findPath(page, "/ts2/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
733
-
734
- await findPath(page, "/ts0/tabstrip").click();
735
- await expect(findPath(page, "/ts0/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
736
- await expect(findPath(page, "/ts1/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
737
- await expect(findPath(page, "/ts2/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
738
-
739
- await findPath(page, "/ts2/tabstrip").click();
740
- await expect(findPath(page, "/ts0/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
741
- await expect(findPath(page, "/ts1/tabstrip")).not.toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
742
- await expect(findPath(page, "/ts2/tabstrip")).toHaveClass(new RegExp(CLASSES.FLEXLAYOUT__TABSET_SELECTED));
743
- });
744
-
745
- });
746
-
747
-
748
- test('tab can have icon', async ({ page }) => {
749
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_onRenderTab');
750
- await expect(await findAllTabSets(page)).toHaveCount(3);
751
- const tabButtonLeading = await findPath(page, "/ts1/tb0").locator(`.${CLASSES.FLEXLAYOUT__TAB_BUTTON_LEADING} img`);
752
- await expect(tabButtonLeading).toHaveAttribute('src', 'images/settings.svg');
753
- });
754
-
755
- test.describe('Extended App', () => {
756
- test.beforeEach(async ({ page }) => {
757
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_onRenderTab');
758
- await expect(await findAllTabSets(page)).toHaveCount(3);
759
- });
760
-
761
- test('onRenderTab', async ({ page }) => {
762
- const tabButton = findPath(page, '/ts1/tb0')
763
- .locator(`.${CLASSES.FLEXLAYOUT__TAB_BUTTON_LEADING}`)
764
- .locator('img');
765
-
766
- await expect(tabButton).toHaveAttribute('src', 'images/settings.svg');
767
-
768
- const secondImg = findPath(page, '/ts1/tb0').locator('img').nth(1);
769
- await expect(secondImg).toHaveAttribute('src', 'images/folder.svg');
770
- });
771
-
772
- test('onRenderTab in border', async ({ page }) => {
773
- const borderButton = findPath(page, '/border/top/tb0')
774
- .locator(`.${CLASSES.FLEXLAYOUT__BORDER_BUTTON_LEADING}`)
775
- .locator('img');
776
-
777
- await expect(borderButton).toHaveAttribute('src', 'images/settings.svg');
778
-
779
- const secondImg = findPath(page, '/ts1/tb0').locator('img').nth(1);
780
- await expect(secondImg).toHaveAttribute('src', 'images/folder.svg');
781
- });
782
-
783
- test('onRenderTabSet', async ({ page }) => {
784
- const toolbar = findPath(page, '/ts1/tabstrip')
785
- .locator(`.${CLASSES.FLEXLAYOUT__TAB_TOOLBAR}`);
786
-
787
- await expect(toolbar.locator('img').nth(0)).toHaveAttribute('src', 'images/folder.svg');
788
- await expect(toolbar.locator('img').nth(1)).toHaveAttribute('src', 'images/settings.svg');
789
- });
790
-
791
- test('onRenderTabSet sticky buttons', async ({ page }) => {
792
- const stickyToolbar = findPath(page, '/ts2/tabstrip')
793
- .locator(`.${CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER}`);
794
-
795
- await expect(stickyToolbar.locator('img').nth(0)).toHaveAttribute('src', 'images/add.svg');
796
- });
797
-
798
- test('onRenderTabSet for border', async ({ page }) => {
799
- const borderToolbar = findPath(page, '/border/top')
800
- .locator(`.${CLASSES.FLEXLAYOUT__BORDER_TOOLBAR}`);
801
-
802
- await expect(borderToolbar.locator('img').nth(0)).toHaveAttribute('src', 'images/folder.svg');
803
- await expect(borderToolbar.locator('img').nth(1)).toHaveAttribute('src', 'images/settings.svg');
804
- });
805
- });
806
-
807
-
808
-
809
- test.describe('Extended layout2', () => {
810
- test.beforeEach(async ({ page }) => {
811
- await page.goto('http://localhost:8080/examples/demo?layout=test_with_min_size');
812
- await expect(await findAllTabSets(page)).toHaveCount(4);
813
- });
814
-
815
- test('check tabset min size', async ({ page }) => {
816
- let from = findPath(page, '/s0');
817
- await dragSplitter(page, from, false, -1000);
818
- let ts0 = findPath(page, '/ts0');
819
- const w1 = await ts0.boundingBox();
820
- expect(Math.abs(w1!.width - 100)).toBeLessThan(2);
821
-
822
- from = findPath(page, '/s1');
823
- await dragSplitter(page, from, false, 1000);
824
- const ts0c2 = findPath(page, '/c2/ts0');
825
- const w2 = await ts0c2.boundingBox();
826
- expect(Math.abs(w2!.width - 100)).toBeLessThan(2);
827
-
828
- from = findPath(page, '/c2/s0');
829
- await dragSplitter(page, from, true, -1000);
830
- const ts0c2height = findPath(page, '/c2/ts0');
831
- const h1 = await ts0c2height.boundingBox();
832
- expect(Math.abs(h1!.height - 130)).toBeLessThan(10);
833
-
834
- from = findPath(page, '/c2/s0');
835
- await dragSplitter(page, from, true, 1000);
836
- const ts1 = findPath(page, '/c2/ts1');
837
- const h2 = await ts1.boundingBox();
838
- expect(Math.abs(h2!.height - 130)).toBeLessThan(10);
839
- });
840
-
841
- test('check border top min size', async ({ page }) => {
842
- await findPath(page, '/border/top/tb0').click();
843
- const from = findPath(page, '/border/top/s-1');
844
- await dragSplitter(page, from, true, -1000);
845
- const t0 = findPath(page, '/border/top/t0');
846
- const h1 = await t0.boundingBox();
847
- expect(Math.abs(h1!.height - 100)).toBeLessThan(2);
848
- });
849
-
850
- test('check border bottom min size', async ({ page }) => {
851
- await findPath(page, '/border/bottom/tb0').click();
852
- const from = findPath(page, '/border/bottom/s-1');
853
- await dragSplitter(page, from, true, 1000);
854
- const t0 = findPath(page, '/border/bottom/t0');
855
- const h1 = await t0.boundingBox();
856
- expect(Math.abs(h1!.height - 100)).toBeLessThan(2);
857
- });
858
-
859
- test('check border left min size', async ({ page }) => {
860
- await findPath(page, '/border/left/tb0').click();
861
- const from = findPath(page, '/border/left/s-1');
862
- await dragSplitter(page, from, false, -1000);
863
- const t0 = findPath(page, '/border/left/t0');
864
- const w1 = await t0.boundingBox();
865
- expect(Math.abs(w1!.width - 100)).toBeLessThan(2);
866
- });
867
-
868
- test('check border right min size', async ({ page }) => {
869
- await findPath(page, '/border/right/tb0').click();
870
- const from = findPath(page, '/border/right/s-1');
871
- await dragSplitter(page, from, false, 1000);
872
- const t0 = findPath(page, '/border/right/t0');
873
- const w1 = await t0.boundingBox();
874
- expect(Math.abs(w1!.width - 100)).toBeLessThan(2);
875
- });
876
-
877
- test('tabset close', async ({ page }) => {
878
- await expect(findPath(page, '/ts0')).toBeVisible();
879
- await expect(findPath(page, '/ts1')).toBeVisible();
880
- await expect(findPath(page, '/ts2')).not.toBeVisible();
881
-
882
- await findPath(page, '/c2/ts0/button/close').click();
883
-
884
- await expect(findPath(page, '/c2/ts0')).not.toBeVisible();
885
- await expect(findPath(page, '/ts0')).toBeVisible();
886
- await expect(findPath(page, '/ts1')).toBeVisible();
887
- await expect(findPath(page, '/ts2')).toBeVisible();
888
- });
889
-
890
- test('borders autohide top', async ({ page }) => {
891
- await findPath(page, '/border/top/tb0').hover();
892
- await findPath(page, '/border/top/tb0/button/close').click();
893
- await expect(findPath(page, '/border/top')).not.toBeVisible();
894
-
895
- const from = findTabButton(page, '/ts0', 0);
896
- const to = findTabButton(page, '/ts0', 0);
897
- await drag(page, from, to, Location.TOP);
898
- await expect(findPath(page, '/border/top')).toBeVisible();
899
- });
900
-
901
- test('borders autohide left', async ({ page }) => {
902
- await findPath(page, '/border/left/tb0').hover();
903
- await findPath(page, '/border/left/tb0/button/close').click();
904
- await expect(findPath(page, '/border/left')).not.toBeVisible();
905
-
906
- const from = findTabButton(page, '/ts0', 0);
907
- const to = findTabButton(page, '/ts0', 0);
908
- await drag(page, from, to, Location.LEFTEDGE);
909
- await expect(findPath(page, '/border/left')).toBeVisible();
910
- });
911
- });